L'utilisation de chown pour changer le propriétaire du groupe d'un répertoire n'est pas autorisée… Pourquoi?

10

J'essaie d'exécuter chownsur un répertoire qui a les autorisations et les propriétaires suivants:

drwxrwxr-x 2 justin devs  4096 Jan  1 20:42 test

J'essaie simplement d'exécuter ce qui suit en tant justinqu'utilisateur:

chown justin:nginx test

Donc, en gros, changez simplement le propriétaire du groupe en nginx, mais je reçois:

chown: changing ownership of `test/': Operation not permitted

Des idées?

Justin
la source

Réponses:

15

Tout d'abord, utilisez la chgrpcommande au lieu de chown et cela fonctionnera.

Dans le cas de l'utilisation de chown ..... Pour des raisons de sécurité dans la plupart des contextes Linux, tout changement de propriétaire est limité à l'utilisateur root même si vous êtes marqué comme propriétaire du fichier, du répertoire, etc. Dans un cas, cela vise à empêcher les utilisateurs d'échapper aux quotas en définissant les bits d'autorisation de fichier sur 777 et en modifiant la propriété d'un fichier par un autre utilisateur inconnu et en consommant leur quota.

Ainsi, l'utilisation de la chowncommande dans un contexte utilisateur, en particulier lorsque la propriété ne change pas, ne doit pas être utilisée uniquement pour modifier le groupe d'un fichier.

REMARQUE: vous devez être membre du groupe dans lequel vous essayez de modifier le fichier. Cela peut être vérifié par id -a. Si vous n'êtes pas dans le groupe, vous obtiendrez ce message même si vous êtes le propriétaire du fichier.

mdpc
la source
1
Même chose avec chgrp nginx test, opération non autorisée.
Justin
Si vous exécutez la commande chgrp en tant que propriétaire de l'inode, cela devrait fonctionner. Votre système de fichiers est-il monté en lecture seule?
mdpc
Non ne fonctionne pas. Voici un cas de test:$ mkdir test $ chgrp nginx test/ chgrp: changing group of test/: Operation not permitted $ ll total 4 drwxrwxr-x 2 justin justin 4096 Jan 1 21:18 test
Justin
1
J'ai compris .... vous ne pouvez pas changer la propriété d'un groupe auquel vous n'êtes pas autorisé à appartenir. Vérifiez id -aque le groupe dans lequel vous essayez de modifier le fichier est à votre disposition.
mdpc
1
oui, c'est la solution.
mdpc
4

Vous devez faire partie du groupe pour pouvoir changer la propriété actuelle du groupe en. Vous pouvez modifier le /etc/groupsfichier en tant que root pour vous assurer que l'utilisateur justin fait partie du groupe nginx. Après avoir apporté des modifications au groupe, vous devez vous reconnecter au système pour le rendre effectif ou pour passer au groupe sans redémarrage / déconnexion, vous pouvez utiliser cmd newgrp nginx.

Vous devriez maintenant pouvoir changer le groupe du fichier ou du dossier avec cmd en chgrp nginx testtant qu'utilisateur justin.

Cloudmeteor
la source