De quelles autorisations a-t-on besoin pour exécuter la commande chmod, chown sur un dossier / élément?

9

J'ai toujours exécuté des commandes chmod / chown en tant qu'utilisateur sudo. Mais aujourd'hui, je me suis demandé si je n'utilisais pas sudo, de quelles autorisations ai-je besoin pour réellement exécuter la chmod/chowncommande sur un dossier / fichier? J'ai essayé de googler la question, mais rien ne s'est produit qui répond spécifiquement à cette question.

Maxim Koretskyi
la source

Réponses:

18

Sous Linux:

chown : "Seul un processus privilégié (Linux: un avec la CAP_CHOWN capacité) peut changer le propriétaire d'un fichier." (Source: chown (2)) Le moyen le plus simple d'être un tel processus est d'être géré par root. Voir explain_chownpour savoir pourquoi un chownéchec particulier a échoué. Voyez capabilitiescomment donner aux processus des capacités autres que l'exécution en tant que root.

chmod : propriétaire du fichier ou rootpeut modifier les autorisations, ainsi que d'autres processus ayant la CAP_FOWNERcapacité. (La source)

chgrp : "Le propriétaire d'un fichier peut changer le groupe du fichier en n'importe quel groupe dont ce propriétaire est membre. Un processus privilégié (Linux: avec CAP_CHOWN) peut changer le groupe arbitrairement." (chown (2))

cxw
la source
1
Linux a commencé à implémenter des capacités vers 2004, mais la proposition POSIX correspondante a déjà été retirée en 1997. Si vous utilisez un système d'exploitation moderne comme Solaris, vous devez PRIV_FILE_CHOWNafficher tous les fichiers locaux et PRIV_FILE_CHOWN_SELFafficher les fichiers locaux qui vous appartiennent. BTW: Un système d'exploitation qui permet de récupérer des fichiers distants à partir de NFS peut être considéré comme un risque de sécurité. Sur HP-UX, tout utilisateur régulier peut afficher ses fichiers, ce qui est également considéré comme un risque pour la sécurité.
schily
PS la proposition de capacité POSIX a été retirée car elle ne gère que les privilèges entre un utilisateur régulier et l'utilisateur root historique. Solaris possède deux fois plus de privilèges fins que Linux et permet de supprimer des privilèges comme par exemple fork () et exec ().
schily
Notez que sous Linux, lorsqu'il n'est pas privilégié, vous pouvez chownles fichiers que vous possédez, mais seulement la partie gid (à l'un des groupes dont vous êtes membre). Je peux le faire chown stephane:other-group myfile(ou chown :other-group) tant que je suis membre de other-group.
Stéphane Chazelas
Et la chgrpcommande? Pouvez-vous ajouter des explications à cela?
Maxim Koretskyi
@ StéphaneChazelas, merci, sur la base de votre réponse, je suppose qu'un propriétaire peut fonctionner avec succès chgrpsans être un utilisateur privilégié?
Maxim Koretskyi