• [^] # Re: Pas tout seul

    Posté par . En réponse au message Pourquoi mount nécessite-t-elle d'être lancée avec l'uid 0?. Évalué à 4.

    Au fait, j'ai soudain un doute en te relisant : On rappelle que l'utilisateur ayant l'ID 0 est le root, tout simplement.

    Dans l'absolu, on pourrait aussi changer le nom de login du root même si c'est une mauvaise idée, mais l'utilisateur ayant l'identifiant nul reste la définition du super-utilisateur, à tous les niveaux du noyau.

    Il est utile de rappeler également que — en principe — la philosophie UNIX est « tout est fichier ». Il y a donc d'un côté le super-utilisateur qui a tous les pouvoirs (Dieu sur Terre) et, de l'autre, les utilisateurs ordinaires. Par le biais des bits setuid dans un certaine mesure et surtout des différents droits d'accès, notamment sur les fichiers spéciaux, on peut gérer les privilèges accordés aux différents utilisateurs de façon simple et unifiée, sans que cela fasse l'objet de niveaux prédéterminés comme on en trouvait sous Windows à l'époque (avec les powerusers, admin, etc.).

    Ça veut dire que d'une part, tout ce qui peut tourner dans l'espace d'un processus sans avoir la possibilité de perturber ceux des autres utilisateurs peut s'exécuter en mode non privilégié. Autrement, il faudra avoir le droit de le faire.

    Ça signifie aussi que « root » n'est pas un utilisateur ordinaire : même l'administrateur d'un site ou celui de sa propre machine ne travaille jamais en root. Il utilise un compte ordinaire auquel il accorde quelques droits pour le travail au quotidien et ne passe root que ponctuellement lorsque c'est nécessaire.

    Le bit setuid est également un bon moyen de faire passer automatiquement un processus en root (ou autre identité) tout en limitant ce privilège à l'exécutable de la commande lancée : ça va être le cas de passwd, par exemple, puisque c'est nécessaire pour pouvoir modifier le fichier central lorsque l'on change de mot de passe. C'est également le cas de mount, qui permet à tout un chacun de monter à loisir ce qui se trouve déjà dans /etc/fstab, pourvu que la ligne concernée soit munie de l'attribut "user" ou "users".