Maintenant que la poussière de l'événement est retombée > je reviens dans ce fil pour faire part d'une constatation curieuse concernant le mot-de-passe de l'utilisateur
root.
Cet utilisateur
existe parce qu'un fichier
root.plist existe dans la base de donnée
Open Directory -->
/private/var/db/dslocal/nodes/Defaut/users/root.plist. Dans ce fichier qui est sa carte d'identité logique > il y a une clé intituée
passwd (mot-de-passe).
Si l'on passe la commande de lecture de la chaîne (valeur) associée à cette clé :
Bloc de code:
sudo defaults read /private/var/db/dslocal/nodes/Default/users/root.plist passwd
on obtient par défaut (par exemple après un
clean install) l'affichage :
- donc un astérisque
* simple.
Que signifie cette valeur pour le mot-de-passe
root ?
----------
Pour le savoir > je me suis livré à plusieurs explorations que je décris -->
je passe la commande :
et je choisis
root comme mot-de-passe pour l'utilisateur
root.
En repassant la commande informative :
Bloc de code:
sudo defaults read /private/var/db/dslocal/nodes/Default/users/root.plist passwd
j'obtiens le nouvel affichage :
- soit 8 astérisques
********
J'enchaîne dans le
Terminal une commande :
en renseignant
root comme mot-de-passe et j'obtiens :
Bloc de code:
To restore System Flavour (Apple UI), type 'restoreui' at the prompt.
MacBook Pro:~ root#
- j'ai donc bien
changé de
shell et je suis loggé actuellement dans celui de
root#.
Je teste un déverrouillage du panneau
Utilisateurs et groupes des
Préférences Système : ça
marche aussi à condition de répéter le login dans
2 fenêtres successives d'authentification.
Il y a bien une icône
Autre à l'écran
LoginWindow permettant de se logger dans une session graphique du dossier de compte
/private/var/root.
Je note que les
mêmes effets s'ensuivent > si j'utilise la commande :
Bloc de code:
dsenableroot -u toto -p toto -r root
(où
toto est un admin à mot-de-passe
toto) à la place de la commande
passwd.
Je passe à présent la commande :
Bloc de code:
dsenableroot -d -u toto -p toto
où l'option
-d (comme
disable) "désactive" ( ! ) l'utilisateur
root.
En repassant une commande :
Bloc de code:
sudo defaults read /private/var/db/dslocal/nodes/Default/users/root.plist passwd
on obtient l'affichage :
- donc un astérisque
* simple.
L'icône
Autre de login n'est plus affichée au
LoginWindow.
Par contre > une commande :
(avec renseignement de
root comme mot-de-passe) - continue d'être validée et je passe en
shell root#.
De même > je garde la possibilité de
déverrouiller des panneaux des
Préférences Système avec le mot-de-passe
root pour l'utilisateur
root.
----------
Que faut-il conclure de ces brèves manipulations ?
- que "
désactiver" (
disable) l'utilisateur
root bien sûr ne supprime pas son existence (fichier
root.plist) > mais
ne supprime pas du tout le mot-de-passe qui lui a été défini > et donc sa capacité à se logger dans un
shell root# > ou encore de déverrouiller des panneaux des
Préférences Système > donc : son "activité" en général. Mais
une seule et unique chose : la
capacité pour
root de
se logger dans une session graphique sur son dossier de compte /private/var/root. Ce > par retrait de l'icône
Autre au
LoginWindow (et quand bien même - à supposer cette icône affichée parce qu'il y aurait des utilisateurs masqués la requérant pour se logger --> je présume que le mot-de-passe
root ne serait pas accepté - je n'ai pas testé).
- que le symbole
astérisque unique (
*) inscrit comme valeur de la clé
passwd dans le fichier
root.plist ne signifie
pas : "
absence de mot-de-passe root" > mais "
mot-de-passe non reconnu comme mot-de-passe d'ouverture de session graphique". Il ne s'agit donc
pas d'un
retrait du mot-de-passe > mais d'une
soustraction au mot-de-passe de
root de la fonction : "
mot-de-passe d'ouverture de session root". La "
désactivation" de
root n'est donc que la
désactivation d'une fonction "ouverture de session" pour le
mot-de-passe persistant de
root.
- quand donc la valeur associée au
passwd dans le fichier
root.plist après une
clean install est :
- donc un astérisque
* simple
cela doit alors s'interpréter ainsi :
root possède un mot-de-passe auquel manque seule la fonction : "
ouverture de session graphique" - mot-de-passe
existant que personne (au sens des utilisateurs humains)
ne connaît.
Définir un mot-de-passe pour
root équivaut donc à
changer le mot-de-passe inconnu par défaut à une
valeur connue de tel utilisateur > ce qui a l'effet collatéral d'
activer aussi la fonction : "
ouverture de session" de ce mot-de-passe connu. Enchaîner par une "
désactivation" de
root > équivaut alors à
soustraire au mot-de-passe désormais connu de
root, mot-de-passe qui continue de
valoir, la simple
fonction : "ouverture de session graphique".