Alors aujourd'hui, au travail, la direction se présente au hasard et me demande de donner un cours intensif sur l'utilisation de Linux à un groupe d'ingénieurs. Apparemment, ils ont eu vent de ma dissension de Microsoft (en raison de problèmes de confidentialité et de sécurité liés à Win 10) et maintenant je suis le "spécialiste" résident pour tout ce qui concerne * nix.
Après avoir expliqué au groupe la beauté de la simplicité de Linux, des questions se posent sur les autorisations de fichiers. J'explique chmod
et la syntaxe octale utilisateur-groupe-monde pour l'attribution d'autorisations.
Ensuite, passons au bit setuid / setgid / sticky - je démontre avec un exemple simple tel que chmod 2755 somefile.txt
et souligne que le bit setgid est maintenant activé. Pour effacer ce bit, je publie chmod 0755
, mais à mon grand désarroi, le bit setgid persiste. Quoi?? Je sais que j'ai déjà utilisé cette syntaxe pour effacer les bits persistants (mais probablement il y a une décennie). C'était assez embarrassant de constater que cela ne fonctionnait pas juste après que j'ai expliqué à quel point le design était élégant.
Quoi qu'il en soit, je leur ai aussi montré la g+s
et g-s
sténographie alternatif et découvert que g-s
SAVIEZ travail.
Après la présentation, je pensais avoir trouvé un bogue avec chmod
, mais après avoir examiné la man
page, j'ai constaté que le problème était "inhérent au projet", car une note explicite chmod
peut être utilisée pour définir les drapeaux collants, mais pas pour les effacer. .
POURQUOI la possibilité chmod
d'effacer les bits collants à l'aide de la notation octale a-t-elle été supprimée? J'ai cherché sur Google et j'ai trouvé des gens qui disaient que le zéro au début était "déroutant" et devrait être omis. Vraiment? Par cette logique, on pourrait aussi bien dire qu'il est illégal pour des octets (par exemple, du code ASCII) de contenir des bits "0" en tête, car ils sont "déroutants". Les personnes qui trouvent le zéro non significatif déroutant peuvent utiliser la notation symbolique. Les personnes souhaitant utiliser la notation octale devraient pouvoir utiliser octal.
Pourquoi a-t-on été chmod
paralysé pour ne pas supporter la notation octale pour effacer les bits collants?