Si chown peut changer de groupe, pourquoi chgrp a-t-il été créé?
23
Il y a donc ce chownqui vous permet de changer le propriétaire et le groupe de fichiers et / ou de répertoires. Mais il y a aussi chgrpce qui ne fait que changer le groupe. Pourquoi a été chgrpcréé? N'est-ce pas redondant?
chowninitialement ne pouvait pas définir le groupe. Plus tard, certaines implémentations l'ont ajouté comme chown user.group, d'autres chown user:groupjusqu'à ce qu'il soit finalement normalisé (c'est moi qui souligne):
La méthode 4.3 BSD de spécification du propriétaire et du groupe a été incluse dans ce volume de POSIX.1-2008 car:
Dans certains cas, la condition de fin souhaitée n'a pas pu être atteinte à l'aide des utilitaires chgrp et chown (qui n'ont modifié que l'ID utilisateur). (Si le propriétaire actuel n'est pas membre du groupe souhaité et que le propriétaire souhaité n'est pas membre du groupe actuel, la fonction chown () peut échouer à moins que le propriétaire et le groupe ne soient modifiés en même temps.)
Même s'ils pouvaient être modifiés indépendamment, dans les cas où les deux sont modifiés, il y a une pénalité de performance de 100% causée par l'obligation d'appeler les deux utilitaires.
Même maintenant, chown :groupne changer que le groupe n'est ni portable ni standard.
chown user:(pour affecter le groupe principal de la userdans la base de données utilisateur) n'est pas standard non plus.
@dayuloli, merci pour la modification, mais je n'ai pas inclus cette section de la spécification parce que je ne la comprends pas
Stéphane Chazelas
Bonne question! A voté!
dayuloli
Ravi de voir que: groupe et utilisateur: ont été mentionnés comme non standard. Beaucoup de gens ici vérifient uniquement ce que fait leur fournisseur local et cela n'est pas utile dans un portail UNIX générique.
Réponses:
chown
initialement ne pouvait pas définir le groupe. Plus tard, certaines implémentations l'ont ajouté commechown user.group
, d'autreschown user:group
jusqu'à ce qu'il soit finalement normalisé (c'est moi qui souligne):Même maintenant,
chown :group
ne changer que le groupe n'est ni portable ni standard.chown user:
(pour affecter le groupe principal de lauser
dans la base de données utilisateur) n'est pas standard non plus.la source