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 chmodet 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.txtet 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+set g-ssténographie alternatif et découvert que g-sSAVIEZ travail.
Après la présentation, je pensais avoir trouvé un bogue avec chmod, mais après avoir examiné la manpage, j'ai constaté que le problème était "inhérent au projet", car une note explicite chmodpeut être utilisée pour définir les drapeaux collants, mais pas pour les effacer. .
POURQUOI la possibilité chmodd'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é chmodparalysé pour ne pas supporter la notation octale pour effacer les bits collants?