Le rôle de root

Gazette Linux n°99 — février 2004 -->

par Rick Mann (Copyright © 2004) exemple email CHEZ exemple POINT com

traduction par Fatima Louidadi (tous droits réservés) louidadi POINT fatima CHEZ gmail POINT com


Dans des articles récents j'ai traité le démarrage et l'arrêt d'un système. Maintenant je vais aborder les problèmes d'administration lorsque le système est actif. Il s'agit dans un premier temps de comprendre l'utilisateur root et les droits des utilisateurs.

Unix-comme les systèmes d'exploitation dont Linux est un exemple d'utilisateur multiple Cela veut dire que plus d'une personne identifiée par un nom d'utilisateur et un mot de passe, peuvent utiliser le système informatique. Ce qui implique ici que toutes ces personnes peuvent utiliser utiliser le système en même temps. Bien que ce soit un concept intéressant, la pièce importante de ce puzzle sur laquelle je veux écrire ici a à voir avec la propriété des fichiers et leurs droits d'accès. Chaque fichier stocké sur le système a un propriétaire. Il appartient aussi à un groupe, mais je vais faire l'impasse sur cette information pour le moment. A chaque fichier est aussi associé un ensemble de droits. Ces permissions restreigne l'accès en lecture et en écriture pour certaine personne, qui peut l'exécuter en tant que programme et d'autres droits associés.

Les propriétaires peuvent être de simples utilisateurs--une personne qui a un id et un mot de passe pair sur le système, ils peuvent être l'un des quelques comptes spéciaux ou le seul comptes vraiment spécial. Les comptes spéciaux sont généralement associés à certains services que le système peut effectuer pour l'un des utilisateurs. Un excellent exemple est le service d'impression qui vous permet d'indiquer au système que vous voulez imprimer un fichier. Bien que vous n'avez pas les droits nécessaires pour imprimer votre fichier, les programmes de service d'impression prennent en compte votre requête et s'assurent qu'elle sera traitée.

Ce compte très spécial est celui du super-utilisateur. Le nom de login est toujours root et le numéro d'utilisateur qui lui est associé est toujours 0. Cet utilisateur est autorisé à contourner l'ensemble du système d'autorisation. Autrement dit, root peut changer les propriétaires et l'accès des fichiers qui ne lui appartiennent pas. Sans restriction, le pouvoir du root peut facilement être utilisé pour détruire un système. Cela peut être involontaire ( juste une personne étant autorisé à se connecter en tant que root en tapant une mauvaise commande) ou intentionnel (une personne dont le but est de pirater le système).

Il existe certains cas où vous aurez besoin d'autoriser un utilisateur lambda à faire certaines choses que seul l'utilisateur root peut faire. Par exemple, les informations sur le compte d'un utilisateur sont stockées dans le fichier /etc/passwd et, habituellement, /etc/shadow. Vous détruiriez la sécurité du système si vous autorisez quiconque à utiliser un éditeur de texte et à faire des changements sur ces fichiers. Cependant, vous voulez permettre à un utilisateur de changer ses propres mots de passe.

Cette fonction est mise en oeuvre grâce à une méthode très puissante qui permet d'exécuter certains programmes comme s'ils étaient exécutés par l'utilisateur root. J'ai dit plus tôt qu'il y avait d'autres droits associés à un fichier. L'un de ces droits est appelé le bit de changement d'identité. Si ce bit est activé alors, lorsque ce fichier (programme) est exécuté, il est lancé comme si c'était le propriétaire du fichier qui l'exécutait. Si vous tapez la commande suivante

ls -l /usr/bin/passwd

vous verrez quelque chose comme ceci

-rwsr-xr-x 3 root shadow 77204 2003-09-23 17:24 /usr/bin/passwd

Le mot root indique que le fichier appartient à l'utilisateur root. Le quatrième caractère de la ligne, s indique que le bit suid est activé. Ainsi, quand un utilisateur ordinaire exécute cette commande, elle est exécutée comme si c'était l'utilisateur root qui l'avait lancée.

Ce que le système fait est de ce fier à ce programme pour ne pas faire n'importe quoi de mal. En retour le programme vérifie l'entrée de l'utilisateur et lui permet seulement de changer ses mots de passe. De plus il peut ajouter d'autres restrictions sur ce que l'utilisateur fait. Par exemple, il peut exiger que le mot de passe doit posséder au moins un certain nombre de caractères, ne doit pas être dans le dictionnaire et doit au moins contenir un caractère non alphabétique.

Il est temps d'un avertissement. Même si vous avez un accès root au système, en d'autres termes vous avez le mot de passe de l'utilisateur root, ce n'est jamais une bonne idée d'effectuer une tâche ordinaire en tant que root. C'est comme avoir en permanence une arme chargée entre vos mains. Une erreur très simple pourrait détruire un système complet. Par exemple, une commande de huit caractères pourrait tout effacer du volume de stockage du système informatique.

Si vous envisagez de vous connecter en tant que Harry ou quiconque autre, faire certaines tâches, vous connectez en tant que root et faire le nécessaire sur le système, revenir à Harry et ainsi de suite, vous serez soulagé d'apprendre qu'il existe un raccourci. Ce raccourci est la commande su. La commande su désigne l'utilisateur de substitution. Si vous êtes déjà connecté au système, vous pouvez utiliser su pour changer l'identité de votre utilisateur en une autre connexion valide. La seule contrainte est que vous devez entrer le mot de passe de cet utilisateur.

Par défaut, su suppose que vous voulez devenir l'utilisateur root. En d'autres mots, si vous tapez simplement

su

et que vous entrez le mot de passe de root sur l'invite de mot de passe, vous deviendrez l'utilisateur root. Vous pourrez ensuite exécuter les tâches réservées à root et, une fois que vous avez fini, il vous suffit d'entrer la commande exit pour redevenir vous-même.

Un cas très fréquent où vous voudrez peut-être le faire est lorsque vous compilez et installez un nouveau logiciel. Vous pouvez décompresser les fichiers sources (généralement avec la commande tar), éventuellement exécuter le script de configuration et ensuite taper la commande make pour créer les nouveaux programmes. Si la commande make s'exécute sans erreur, vous devriez avoir des programmes prêts à être installés. L'installation est généralement effectuée en tapant la commande make install qui enregistre les fichiers du programme à l'endroit standard. Cet emplacement peut seulement être défini par root. La séquence suivante fera l'installation

su
[enter the root password]
make install
exit

Comme toujours, il y a beaucoup plus de choses à dire concernant ce sujet. Ces informations devraient vous mettre sur la voie d'une meilleure compréhension sur la façon de devenir un bon administrateur système.


Rick Mann

Rick Mann a été programmeur C et travaille sur des systèmes d'exploitation conformes à POSIX depuis 12 ans


Adaptation française de la Gazette Linux

L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux

Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.

Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site http://www.traduc.org/Gazette_Linux

Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.