Opération chown non autorisée pour root

21

J'essaie de chown le propriétaire d'un fichier à root, mais je ne peux pas. Je fais ça en tant que root. Je reçois le message suivant:

chown: changing ownership of `ps': Operation not permitted
Peter Stuifzand
la source
Une sortie ls -lha et lsattr aiderait la solution :)
drAlberT

Réponses:

45

L'attribut immuable peut être défini sur le fichier. Supprimez-le avec chattr -i

Cian
la source
8
C'était un. Mais merci pour le signe de tête dans la bonne direction.
Peter Stuifzand
Merci, comment puis-je définir à nouveau un attribut immuable?
Zim3r
chattr + i <fichier>
Cian
chattr: Inappropriate ioctl for device while reading flags on
andilabs
8

Plusieurs solutions existent, certaines d'entre elles:

  • vous avez un système de fichiers ne vous permet pas par exemple. uid: gid, par exemple: FAT
  • le lecteur a été monté en lecture seule
  • SELinux ou d'autres responsables de la sécurité s'appliquent
  • le système de fichiers est défini en mode lecture seule (xfs_freeze, par exemple)
  • le fichier a le drapeau immuable défini (man chattr)
asdmin
la source
Le système de fichiers est ext3, monté en lecture-écriture, pas de SELinux.
Peter Stuifzand
Il est également possible que le fichier se trouve sur un système de fichiers NFS, monté root_squash, bien que peu probable compte tenu du fichier.
Cian
3

Marrant. Avez-vous vérifié les journaux système (/ var / log / messages, / var / log / syslog, sortie de dmesg) pour tout indice?

Raisons possibles:

  • Vous utilisez un Linux à sécurité renforcée, tel que SELinux . Ces restrictions imposent même ce que root peut faire.
  • Le fichier se trouve sur un système de fichiers qui ne prend pas en charge la propriété des fichiers, tel que (V) FAT. Selon les options de montage, chmod / chown vous donnera des erreurs.
sleske
la source
3

Essaye ça:

[root @ root] # chattr -ais / bin / ls

après avoir changé la propriété et le groupe à la racine.

Lucas Kauffman
la source
2

J'ai eu le même problème.

$ chattr -V -i dir
chattr 1.41.12 (17-May-2010)
Flags of dir set as s----a---------

Ce qui n'était pas suffisant. J'ai donc ajouté le 'sa'

$ chattr -V -ais dir
chattr 1.41.12 (17-May-2010)
Flags of dir set as ---------------
$ chown root dir
$

Problème résolu :)

Jesper Grann Laursen
la source
0

sur quel type de système de fichiers se trouve le fichier "ps" que vous essayez de représenter? Le fs est-il monté en ro (lecture seule)?

si vous parlez de / bin / ps, sur debian c'est toujours comme:

-rwxr-xr-x 1 root root 76132 2009-05-28 10:48 /bin/ps*
kargig
la source
Le problème est que mon système a été piraté et certains fichiers ont été remplacés. Maintenant, je veux les remplacer par les originaux mais je ne travaille pas.
Peter Stuifzand
9
Si votre système a été piraté, vous ne voulez pas remettre les fichiers. Vous n'avez aucun moyen de dire ce qui a été brisé et rien sur le système n'est digne de confiance. Essuyez et réinstallez à partir des sauvegardes.
Cian
1
Comme l'a dit Cian, si votre système a été piraté et qu'ils ont un accès root, ne remplacez pas les fichiers. Il peut toujours contenir un rootkit (presque) invisible qui détourne les appels système. Il peut toujours renifler des mots de passe, il peut encore avoir ouvert des portes dérobées dans vos services, et et et (nombre infini de choses possibles qu'une machine piratée peut contenir). La chose raisonnable à faire est d'éteindre la machine et d'étudier son contenu hors ligne, en plaçant le disque dans une autre boîte. Ne faites pas confiance à cette machine et ne remplacez aucun binaire, ils peuvent contenir des informations précieuses pour découvrir ce que fait le rootkit.
kargig
0

Chaque "supposition" faite par d'autres réponses est possible. Une astuce de débogage peut être de faire une séquence de la commande et d'examiner la sortie afin de voir quel est le vrai problème dans les appels système.

strace chown root /bin/ps 2>&1 | less 
drAlberT
la source