˜ Libre-Fan ˜

Root et Sudo

Ce ne sont pas des barbares...
27 juillet 2005 - Dernière mise à jour : 11 octobre 2006
 

La base de Linux et des systèmes Unix est la séparation des comptes entre un administrateur qui peut tout faire et un utilisateur qui est restreint à son répertoire personnel.

Question de sécurité du sytème. Mais Linux est aussi très souple — vous pouvez tout faire, avec prudence, en sachant ce que vous faites.


Au sommaire :

Root, utilisateur et sudo : les bases
Root et Sudo sous Ubuntu
Root et Sudo : suite

Root, utilisateur et sudo : les bases

- Traditionnellement, lors de l’installation d’une distribution de Linux, on crée au moins deux comptes :

- Une même personne, qui est alors l’administrateur du système, peut créer plusieurs comptes dits « utilisateurs » pour différentes personnes partageant le même ordinateur ou un réseau d’ordinateurs.

- Il est vivement conseillé de créer autant de comptes qu’il y a d’utilisateurs. Linux est vraiment fait pour le partage d’un ordinateur ou de plusieurs ordinateurs (liés en un réseau). Ainsi, chaque utilisateur dispose de son propre répertoire indépendant et protégé qui, par défaut, n’est accessible qu’à lui-même et bien sûr au root. Ainsi l’utilisateur tuxou ne peut aller supprimer ou modifier les fichiers de l’utilisateur zozo. Tuxou peut faire aussi toutes les modifications dans Gnome (sur son bureau : menus, couleurs, polices, images) sans importuner zozo qui, lui, est libre d’en faire à sa tête.

Une même personne peut être à la fois l’administrateur et l’utilisateur ; cela ne change rien : les deux comptes sont séparés par leur nom, parfois par leur mot de passe et leurs fonctions.

Ni zozo ni tuxou ne peuvent installer de logiciels pour l’ensemble du système mais ils peuvent (contrairement à M$Windows et à Mac OS X dans certains cas) installer tous les logiciels qu’ils veulent dans leur répertoire respectif — installation de fichier .tar.gz. — mais l’installation par Apt ou Synaptic leur est inaccessible. Ces logiciels ne seront ainsi accessibles que par l’utilisateur qui les a installés puisqu’ils sont installés dans le répertoire d’un utilisateur précis.

Une même personne qui a installé la distribution Linux ou quelqu’un à qui la personne qui a installé Linux a donné le mot de passe de root peut aussi utiliser le compte root, et deux comptes utilisateurs ou plus. Elle peut décider que « tuxounet » est le compte qu’elle utilise pour surfer sur le Web, « tuxou » son compte pour toutes les autres opérations (écrire un roman, créer un site en local, hors connexion, dessiner, etc.).

- La séparation des comptes est un gage de sécurité :

- Comment un utilisateur peut-il devenir « Superutilisateur » ?

tuxou@Debian:~$

Après ce passage en mode root, l’invite a changé sur la fenêtre de la console ; la voici :

root@Debian:/home/tuxou #

Pour quitter le mode root et revenir au mode simple utilisateur ne pouvant démolir que son répertoire /home/tuxou, tuxou tape exit.

Si vous avez utilisé des CDs-Live comme Kaella ou Knoppix, votre compte est créé par défaut sous le nom de « knoppix », sans mot de passe. Voir dernière partie pour les détails.

- Explications complètes des invites :

Root et Sudo sous Ubuntu

- Si vous avez installé Ubuntu ou une variante (Kubuntu, Xubuntu, Ubuntu Lite), il ne vous a pas été demandé de créer un compte root et un compte d’utilisateur mais seulement un compte d’utilisateur avec un mot de passe.

Le mot de passe du premier utilisateur sera également celui du Superutilisateur. Donc, il n’y a pas deux comptes visibles (un root, un utilisateur) mais un seul par défaut (vous pouvez évidemment rajouter autant de comptes que vous voulez).

- En revanche, il y a deux modes, mode Superutilisateur ou root et mode utilisateur et deux manières de passer en mode Superutilisateur (sudo et gksudo ou kdesu).

NB : L’utilisation de gksudo et de kdesu devrait être valable pour toutes les distributions Linux si vous avez Gnome ou KDE comme environnement graphique ou si votre environnement utilise GTK, comme Xfce (environnement graphique de Xubuntu).

- Exemple détaillé avec sudo

— Pour passer en mode Superutilisateur sous Ubuntu, tuxou tape sudo après l’invite et avant la commande ; voici un exemple et le résultat :

tuxou@ubuntu:~$ sudo cp /etc/apt/sources.list . [valider]
Password:     [valider]

- Exemple avec gksudo

tuxou@ubuntu:~$ gksudo gedit /etc/apt/sources.list [valider]
Password:     [valider]

- Le mode sudo a des pouvoirs limités, ce qui est un garde-fou. Dans certains cas très rares, il sera cependant nécessaire de passer en console root. Voici comment accéder à une console root, sous Ubuntu et Xubuntu Dapper (6.06) : Commande sudo -s à taper dans la console, ce qui vous donne l’invite suivante root@ubuntu:~#. Le répertoire en cours est celui de tuxou.

Ubuntu a fait le choix de sudo pour que les utilisateurs n’aient pas la tentation d’aller sur un compte root sans se rendre compte que c’est une zone dangereuse. Par exemple, il ne faut jamais surfer sur le compte root car le système entier est ouvert. En mode root vous risquez de détruire des répertoires entiers.

Au moins, en tapant sudo vous avez conscience de devenir l’administrateur et au pire un quart d’heure plus tard vous n’êtes plus qu’un simple utilisateur. De même, lorsque vous lancez des applications que seul le root peut utiliser, comme Synaptic par exemple (pour installer facilement de nouveaux logiciels ou de nouvelles versions de logiciels déjà installés), une petite boîte (popup window) surgit, vous demandant votre mot de passe. Mais ne lancez pas non plus Firefox avec sudo — ce serait curieux puisque l’icône vous tend les bras, si l’on peut dire, et là c’est vous comme simple utilisateur qui lancez Firefox d’un clic de souris.

Ubuntu conseille de changer souvent le mot de passe de l’utilisateur qui a accès au sudo.

Venant de Libranet avec un compte et un mot de passe root, ainsi qu’un compte utilisateur, j’ai été d’abord assez mal à l’aise avec sudo qui me demande mon mot de passe d’utilisateur (mais on s’habitue rapidement). Il est évidemment plus facile de se souvenir d’un mot de passe que de deux mais il faut s’habituer à penser que ce sudo est aussi fiable que le traditionnel root.

Pendant les 15 mns qu’il reste actif, ce sudo, que pourrait-il se passer ? Pour quitter le mode superutilisateur avant la fin du quart d’heure, vous pouvez taper : sudo -k.

Dernier point : sudo est un Superutilisateur limité par rapport à root ; pour certaines tâches il faut passer par le Root Terminal (voir menu « Applications » > « Système ») qui vous demande votre mot de passe et affiche cette invite dans la console : root@linux:/home/tuxou #

- Donner à un autre utilisateur l’accès à sudo

Le compte créé lors de l’installation d’Ubuntu a bien sûr accès à sudo. Si vous créez un nouveua compte, ce ne sera pas le cas. Évitez de toucher au fichier /etc/sudoers. il suffit de ajouter le nouvel utilisateur au group « admin ». Imaginons que le compte de votre nouvel utullisateur s’apelle « zozo ; voici la commande à taper :»

sudo adduser zozo admin

Vous pouvez aussi passer par l’application graphique : Menu « Applications » > « Système » > « Utilisateurs et groupes » (pour quelque chose d’approchant) mais c’est beaucoup moins rapide !

- Plus d’informations sur la page « RootSudo » du Wiki d’Ubuntu (en) ou la page en français « sudo :generalites » d’Ubuntu-fr.

Root et Sudo : suite

- De manière conventionnelle, quelque que soit la manière de passer en mode root, on indique dans la documentation sur Linux le mode nécessaire pour exécuter telle ou telle commande, par les signes $ et #.

— Exemple

$ cd /opt
$ ls 
# rm -rf /opt/firefox/

Selon votre distribution, vous passerez en mode root par la commande su, ou sudo ou encore gksudo dans la console, ou par une console Root ou encore, dans quelques cas, en tapant sudo -s dans une console.

Sudo n’a pas tout à fait autant de pouvoirs que root. Dans quelques très rares cas, il est nécessaire d’ouvrir une console de Superutilisateur dans une distribution de style « sudo » voire de quitter le compte utilisateur et d’ouvrir une session root.

- Même si ovus avez accès au mode root par la commande traditionnelle su, vous n’êtes pas censés passer votre temps dans le compte root. Si vous devez faire une opération qui nécessite l’intervention de l’administrateur, vous tapez su dans une console, vous validez, vous tapez le mot de passe (celui-ci n’apparaît pas, même pas sous la forme d’****) ; quand vous avez fini, vous tapez exit pour sortir du mode root et retourner comme simple utilisateur avec des droits restreints.

- Sudo, au contraire, est utilisé dans les versions Live des distributions comme Knoppix ou Kaella puisque vous ne pouvez pas créer de compte indépendant de celui que le CD-Live vous attribue d’office : knoppix, dans ce cas précis.

Sudo, sous Kaella ou Knoppix ne vous demande pas de mot de passe. Si vous voulez, par exemple, rétrécir une partition Windows avant d’installer Kaella ou autre, vous pouvez utiliser Qtparted mais vous ne pouvez pas le faire comme simple utilisateur. Vous devez taper dans la console le mot « sudo » suivi de la commande, « qtparted » : voici ce que donne la console :

knoppix@1[knoppix]$ sudo qtparted

knoppix@1[knoppix]$ : cette partie s’affiche lorsqu’on lance une console sous Kaella : c’est « l’invite ». On tape la commande à la suite de l’invite.

Si vous voulez installer Kaella ou Knoppix sur votre disque dur, vous taperez à la suite de l’invite :

sudo knoppix-installer

- Il existe parfois un terminal en mode Superutilisateur qui se trouve, parfois aussi, au fin fond d’un menu (c’est le cas dans KDE) ou parfois dans le menu ou sous-menu « Outils système ». Fouillez bien.

- Une distribution comme Ubuntu a choisi de ne pas créer de compte root et utilise sudo pour que l’utilisateur puisse accéder aux tâches de l’administrateur. À l’installation, Ubuntu crée un compte utilisateur dont le mot de passe sera aussi celui du root — c’est vous, bien sûr, qui choisissez votre nom d’utilisateur et votre mot de passe. Voir la partie consacrée à Ubuntu.

- Il est aussi possible d’utiliser sudo sous Debian : Il faut modifier le fichier /etc/sudoers avec la commande visudo :

# visudo

Il sufit de coller le morceau suivant ou de décommenter les lignes qui ici sont désactivés (= supprimez le signe # devant les lignes qui, ici, n’en ont pas) :

# User privilege specification
root    ALL=(ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Pour vous déplacer dans le fichier, touches de direction, touche Origine et fin pour se déplacer dans une ligne. Pour quitter sans enregistrer vos modifications : touche Ctrl + X, pour les enregistrer Ctrl + O (ça marche avec les minuscules, en principe).

Coller ? voyez Copier-coller à la molette

- Lors de l’installation de certains logiciels, il est important de réfléchir à cette séparation entre le mode utilisateur et le mode root.

Prenons le cas des Mozilla : vous profitez de Firefox pré-installé dans votre distribution Linux : vous lancez Firefox la première fois et un profil est créé par défaut dans votre compte personnel (dans notre exemple, /home/tuxou/.mozilla). Ce répertoire est caché par défaut (sécurité) mais peut être affiché par vous si nécessaire.

Plus tard, quand vous mettez à jour Firefox avec Apt ou Synaptic, (en mode root) votre profil dans votre répertoire personnel est conservé.

Imaginons que vous installiez Firefox à partir des fichiers binaires comme il est expliqué dans Installer des logiciels sous forme de « paquets ». Vous l’installez en mode root dans /usr/local ou dans /opt pour que d’autres utilisateurs puissent en profiter.

Après l’installation, il est conseillé de rester en mode root pour lancer Firefox la première fois (autrement il manquera des fichiers, ainsi (à adapter selon le répertoire d’installation) :

# /opt/firefox/firefox

Sous Ubuntu il ne faut pas utiliser la commande sudo ni gksudo mais passer en root ainsi : sudo -s

Vous quittez le mode root en tapant exit et vous lancez Firefox comme simple utilisateur : en cliquant sur une icône si elle existe ou en tapant dans une console comme simple utilisateur :

$/opt/firefox/firefox

Votre profil est alors créé et vous pouvez naviguer sur le Web.

Vous voyez dans cet exemple qu’un même répertoire /opt/firefox est accessible au Superutilisateur et à l’utilisateur mais pas avec les mêmes permissions. Le simple utilisateur ne peut qu’« exécuter » le fichier /opt/firefox/firefox, c’est-à-dire lancer l’application Firefox mais pas « écrire » (= modifier, supprimer des fichiers) dans le répertoire /opt/ ni dans le répertoire /opt/firefox/.

NB : Console et ligne de commande sont communs aux systèmes Unix mais il y a des variantes.

Consultez si besoin le « Glo(u)ssaire cum Commentaires ».

Vous trouverez davantage de liens précisément dans « Liens vers Mozilla, le Libre, les menaces ».

Répondre à cet article

Votre email n'est pas crypté -- remplacez l'arobase par le mot (at) pour éviter que les robots spammeurs ne le récupèrent. Exemple fictif : zozo(at)ploof.net

Forum

  • Root et Sudo
    30 décembre 2006, par kortenberg

    pour executer une seul commande root avec su, il y a l’option -c. L’avantage que j’y trouve c’est l’employe du mot de passe root et non celui de l’utilisateur.

    voici ce que ça donne :

    kort@porty:~$ su -c whoami
    Password:
    root
    kort@porty:~$
  • Root et Sudo
    27 mars 2006
    Je cherche comment donner les droits de root à un utilisateur .. je m’explique : j’ai installé mythtv sur une ubuntu breezy et donc il a créé un utilisateur automatiquement auquel je voudrais lui donner les droits de superutilisateur pour que je puisse tout faite sous ce nouveau utilisateur... merci infiniment par avance !
    • Root et Sudo
      28 mars 2006, par libre fan

      Si ce mythtv requiert un compte utilisateur différent du compte utilisateur créé par Ubuntu mors de son installation (celle d’Ubuntu), on peut permettre à ce compte d’avoir accès au sudo.

      Mais il ne faut jamais essayer de donner à un compte utilisateur tous les pouvoirs de root. Seulement quand c’est nécessaire, l’utilsateur peut passer en root par sudo.

      Si cela est bien clair, alors il faut créer un nouveau compte (ça doit se trouver quelque part dans le menu Système) et lui accorder l’accès au sudo. Là aussi ça doit se trouver dans la gestion des comptes ou des utilisateurs. Je ne suis malheureusement pas sur Ubuntu en ce moment, donc je ne peux pas vérifier. Je rajouterai des infos à cet article la semaine prochaine (pas de connexion à l’internet en ce moment chez moi).

      • Root et Sudo
        31 mars 2006

        Merci à toi pour la réponse ...

        J’ai trouvé ici : http://doc.ubuntu-fr.org/applications/sudo ?s=sudo+root cette commande :

        sudo adduser admin

        ou : Système> Administration > Utilisateurs et groupes ... puis cocher l’option donnant les tâches d’administration à l’utilisateur en question.

        • Root et Sudo
          31 mars 2006

          Je crectifie la syntaxe de la commande :

          sudo adduser mythtv admin

          avec : mythtv=l’utilisateur en question.

  • Root et Sudo
    24 novembre 2005

    bonjour,

    quelques lignes à replacer : premier chapitre, 6ème paragraphe,6ème sous-paragraphe :"puis la console..." semble avoir été oubliées lors des corrections car devraient se situer plus haut :-)).

    un article sur les droits et permissions ,les répertoires et fichiers impliqués, comment et quand les modifier lors d’une installation d’un programme...serait bien utile. exemple type : j’installe firestarter avec synaptic (ubuntu 5.04) et à chaque démarrage je dois taper le mot de passe. je fais donc la manipulation indiquée par le wiki (utilisateur ALL=NOPASSWD /usr/sbin/firestarter ....) mais de temps à autre , le système me redemande le mot de passe, et je ne peux pas intervenir directement sur les prpriétés du fichier de firestarter même aprés avoir ouvert celui en console superutilisateur ! why ? JWH

    • Root et Sudo
      24 novembre 2005, par libre fan

      Merci pour la relecture, jwh !

      Pour le § commençant par « Puis la console... », j’ai rajouté quelques mots pour le rendre plus clair mais il est bien à sa place. Et du coup j’ai retrouvé des tas de coquilles.

      Pour les permissions de Firestarter : ça ressemble un peu, on dirait, à l’applet Réseau (menu Système > Administration) : qui demande le mot de passe à chaque démarrage et pour activer la connection réseau par ethernet (c’est pratique de ne pas être connectés sans arrêt).

      Ne peux-tu pas inscrire l’utilisateur dans le groupe qui peut utiliser Firefstarter ? Mais avant, il faut réfléchir : le parfeu protège tout le système et il est donc logique que ce soit le Superutilsateur qui y ait accès et non le simple utilisateur. À suivre !

      J’ai installé Guarddog sur un portable sur un réseau mais il lui manque de la configuration, alors il ne fonctionne pas encore...

      • Root et Sudo
        24 novembre 2005
        ok, j’ai rajouté mon nom d’utilisateur dans visudo et firestarter se lance maintenant au démarrage, ce que je voulais puisque avec mon modem ethernet DSL-300T (D-Link) la connexion est "always on". Au plaisir, JWH :-)))