Root

Séb seb.bubuntu at gmail.com
Jeu 20 Nov 10:37:43 GMT 2008


Michel Leunen wrote:
> Laurent Besson a écrit :
> 
>> Faux !
>> Qu'on ne sache pas quel mot de passe mettre ne montre aucunement que root 
>> n'est pas défini !
>>
>> Preuve :
>> $ sudo su
>> tapez votre mot de passe
>> Vous avez un prompte #, qui montre d'ailleur que root est défini, mais avec un 
>> mot de passe inconnu
> 
> 
> Bon, je veux bien qu'on ergote sur le sens des mots mais tu préfères que 
> je dises que, sous Ubuntu, root est caché ou enfoui sous une couche de 
> je ne sais quoi pour qu'on ne doive pas y accéder ou que sais-je encore.
> Je préfère dire que, par défaut, il n'est pas défini. C'est plus 
> compréhensible à mon avis.
> 

Salut,

Quelques précisions sur le compte root (même si l'article cité par
Christophe résume assez bien les choses)... histoire de mettre
(j'espère!) les choses au clair.
Le compte root existe bel et bien par défaut sous Ubuntu (d'ailleurs, je
ne connais pas de distros où ca ne serait pas le cas!).

Explications via un retour aux sources...
Sous Ubuntu (entre autres), les mots de passe sont stockés dans le
fichier '/etc/shadow'. Pour des raisons évidentes de sécurité, ce
fichier n'est accessible que par root et les mots de passes sont cryptés.
A chaque utilisateur défini, il correspond donc une ligne dans ce
fichier. Et l'utilisateur root, même s'il est particulier, ne fait pas
exception à la règle!
Dans son cas, la ligne ressemble à la suivante:
root:!:123456:0:99999:7:::

Je ne rentre pas dans les détails de la ligne (les plus curieux peuvent
faire 'man shadow'), ce qui est important est la partie 'root:!:', qui
correspond au login de l'utilisateur ('root') et à son mot de passe
('!'). '!' n'est évidemment pas le mot de passe mais est un caractère
spécial (avec "*") pour signifier qu'il n'est pas possible à
l'utilisateur de se connecter directement (i.e. via une authentification
du mot de passe).

La commande "su", qui requiert la connection directe au compte root, ne
peut donc pas fonctionner par défaut sous Ubuntu. Au passage, Cela n'a
donc rien à voir avec le fait "qu'on ne sache pas quel mot de passe
mettre"... puisqu'on vient de voir qu'il n'y en avait pas!

En revanche, la commande sudo permet à certains utilisateurs désignés
(dont le premier utilisateur créé) d'exécuter des commandes avec les
droits de "root" (et c'est là qu'est toute la nuance!)... il n'y a donc
pas de connection directe au compte root! C'est pourquoi la commande
sudo marche!

Quid alors du "sudo su" qui donne accès au compte root malgré tout?
C'est juste que "sudo su" n'utilise simplement pas de connection directe
au compte root !..?
"sudo" = exécuter une commande en tant que root
"su" = devenir root (ou n'importe quel utilisateur -non désactivé-
d'ailleurs)

soit "sudo su" = fais comme si j'étais root et deviens root
Or le compte root a le privilège de se connecter en tant que n'importe
quel autre utilisateur (y compris root) sans avoir besoin de
s'authentifier avec un mot de passe; les privilèges de root (acquis via
la commande "sudo") permettent donc se connecter au compte root même si
celui-ci est , a priori, inactif! car seule la connection directe à
l'utilisateur root (via l'authentifiaction du mot de passe) est inactivée.
Il ne s'agit donc pas, non plus, d'un compte "fantoche".


Mais alors la commande "sudo" est une faille de sécurité?! n'importe qui
peut utiliser cette commande pour faire ce qu'il veut avec les droits root?!
Non, car, premièrement seuls certains utilisateurs (cf "man sudoers")
ont accès à la commande "sudo": par défaut, sous Ubuntu, il n'y que root
et les utilisateurs appartenant au groupe "admin". toujours, par défaut,
le premier utilisateur (créé lors de l'installation) fait partie de ce
groupe et peut donc utiliser "sudo"... La logique étant que la personne
qui fait l'installation est considérée comme "digne de confiance".
Deuxièmement, la commande "sudo" demande toujours son mot de passe à
l'utilisateur qui l'exécute (si, évidemment celui-ci a le droit de
l'utiliser): un inconnu, même connecté sous la session d'un
"administrateur", ne peut donc pas chambouler le système s'il ne connait
pas le mot de passe de l'utilisateur dont il a piqué le siège pendant
son absence.
Il en va de même avec les autres alter ego de "sudo": "gksudo",
"sudoedit", "visudo"...

Voilà, j'espère avoir été clair...

Séb




Plus d'informations sur la liste de diffusion ubuntu-fr