Root

Bruno Patri bruno.patri at gmail.com
Jeu 20 Nov 13:49:23 UTC 2008


Le Thursday 20 November 2008 11:37:43 Séb, vous avez écrit :

> Salut,
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:::
[...]

Oui, la connexion avec l'utilisateur root (ou l'UID 0) n'est pas possible car 
il n'y a pas de mot de passe pour root ou plutôt car ce mot de passe est 
indéchiffrable.

> 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!

La commande su, qui signifie « Substitute User » (changer d'utilisateur) 
marche parfaitement sur UbUntu comme sur toute distribution Linux. Il suffit 
de faire :

su nom_utilisateur

pour s'en rendre compte. Si la commande su est invoquée sans nom d'utilisateur 
en argument, c'est alors root (en fait l'UID 0) qui sera utilisé ; pour la 
raison invoqué plus haut, cela ne marche pas sous Ubuntu.


> 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!

Même chose pour sudo. De nombreuses documentations erronées (y compris celle 
d'Ubuntu) affirment que sudo signifie « Super User DO » alors que cela 
signifie en réalité « Substitute User DO ». Le fonctionnement est tout à fait 
similaire à la commande su. Voir les pages de manuel des deux commandes.

La particularités de sudo est d'utiliser le fichier de configuration sudoers. 
C'est lui qui permet en réalité à un utilisateur ou à un groupe d'utilisateur 
de se substituer à root. 



> 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 !..?

Faire sudo su me paraît aberrant compte tenu de la similarité de ces deux 
commandes. Si je veux me placer dans un shell en tant que root je tape :

sudo -s

> "sudo" = exécuter une commande en tant que root

non pas forcément

> "su" = devenir root (ou n'importe quel utilisateur -non désactivé-
> d'ailleurs)

oui, tout comme sudo


-- 
Bruno




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