OVH Cloud OVH Cloud

Perte de l'administrateur

21 réponses
Avatar
mpasdepointbenatia
Bonjour,


A la suite d'un tripatouillage dans Netinfo, (essai de changement du nom
du compte) un copain maladroit se retrouve avec un utilisateur unique
standard. Du coup, on ne peut plus ajouter de compte, ni redemarer le
disque dystème, etc.. (pas d'utilisateur administrateur)

Comment faire pour se sortir de cette mélasse ?

Merci

Marc

10 réponses

1 2 3
Avatar
mpasdepointbenatia
Laurent Pertois wrote:

Démarrage en single-user :
[...]

Pour être plus propre, on peut l'ajouter dans les groupes appserveradm
et appserverusr.


Merci Laurent,
Message verrouillé, imprimé et archivé !

Bonnes fêtes,

Marc

Avatar
laurent.pertois
M. Benatia wrote:

Message verrouillé, imprimé et archivé !


Attention, j'en garantis la validité en 10.4.x, certainement en 10.3.x,
avant, pour le groupe admin, oui, pour les deux autres, non. Pour la
suite, je ne peux rien dire.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
mpasdepointbenatia
Laurent Pertois wrote:

Attention, j'en garantis la validité en 10.4.x,


Utilisé ce matin en 10.4.X : impeccable !

Tant qu'a abuser : comment changer le nom du home (pas le nom abrégé, le
nom de la petite maison (dans la prairie des pommes :-))).


Merci encore

Marc

Avatar
laurent.pertois
M. Benatia wrote:

Laurent Pertois wrote:

Attention, j'en garantis la validité en 10.4.x,


Utilisé ce matin en 10.4.X : impeccable !

Tant qu'a abuser : comment changer le nom du home (pas le nom abrégé, le
nom de la petite maison (dans la prairie des pommes :-))).


Ben, il faut changer l'attribut home, toujours en single-user :

# nicl -raw /var/db/netinfo/local.nidb -create /users/NOM_ABREGE_USER
home /Users/NOUVEAU_HOME

ensuite, il faut réellement renommer le dossier :

# mv /Users/ANCIEN_HOME /Users/NOUVEAU_HOME

Pas testé mais ça doit fonctionner et, comdab', je ne garantis rien en
cas d'erreurs de copie.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.


Avatar
Nicolas.MICHEL
M. Benatia wrote:

Nicolas MICHEL wrote:


Tu fais du reste bien de me le demander, ça t'évitera de paniquer en
voyant la petite musique de bienvennue.




Donc, pas besoin de mettre un CD d'install ?


Non, pas besoins.


--
Nicolas


Avatar
Nicolas.MICHEL
Laurent Pertois wrote:

M. Benatia wrote:

Tant qu'a abuser : comment changer le nom du home (pas le nom abrégé, le
nom de la petite maison (dans la prairie des pommes :-))).


Ben, il faut changer l'attribut home, toujours en single-user :

# nicl -raw /var/db/netinfo/local.nidb -create /users/NOM_ABREGE_USER
home /Users/NOUVEAU_HOME

ensuite, il faut réellement renommer le dossier :

# mv /Users/ANCIEN_HOME /Users/NOUVEAU_HOME

Pas testé mais ça doit fonctionner et, comdab', je ne garantis rien en
cas d'erreurs de copie.



A ce sujet, le seul truc qui fait que j'ai pas étudié cette méthode,
c'est que je ne sais pas comment ajouter le mot de passe à cet
utilisateur ... une idée ?

--
Nicolas


Avatar
laurent.pertois
Nicolas MICHEL wrote:

A ce sujet, le seul truc qui fait que j'ai pas étudié cette méthode,
c'est que je ne sais pas comment ajouter le mot de passe à cet
utilisateur ... une idée ?


En single user le mot de passe n'étant plus dans NetInfo, tu n'as qu'à
recopier un fichier de mot de passe créé sur une machine dans
/var/db/shadow/hash avec comme nom le GUID de l'utilisateur.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
Nicolas.MICHEL
Laurent Pertois wrote:

Nicolas MICHEL wrote:

A ce sujet, le seul truc qui fait que j'ai pas étudié cette méthode,
c'est que je ne sais pas comment ajouter le mot de passe à cet
utilisateur ... une idée ?


En single user le mot de passe n'étant plus dans NetInfo, tu n'as qu'à
recopier un fichier de mot de passe créé sur une machine dans
/var/db/shadow/hash avec comme nom le GUID de l'utilisateur.


c'est donc là que ça se cache ?
Merci :)

Donc en fait le nom du fichier dans /var/db/shadow/hash (à coucher
dehors) coresponds au champ generateduid dans netinfo...

Pour le test, j'ai fait ceci :

id_titi=$(nicl . -read /users/titi generateduid |cut -f 2 -d" ")
id_toto=$(nicl . -read /users/toto generateduid |cut -f 2 -d" ")
cat /var/db/shadow/hash/$id_titi > /var/db/shadow/hash/$id_toto

et en effêt, toto se retrouve avec le mot de passe de titi.

Bon, reste que sur une machine où on est en single user, c'est à dire
sans réseau en principes, si on a pas le mot de passe ça veux dire qu'on
vas devoir recopier les 1240 caractères du hack d'un user d'une autre
machine à la mano, pas terrible :/

Il doit certainement exister une commande pour générer ce hash ...
Mais j'ai cherché quelques minutes et j'ai pas trouvé. La flemme :)
Tant-pis, le rm /var/db/.AppleSetupDone me suffit.
--
Nicolas


Avatar
laurent.pertois
Nicolas MICHEL wrote:

En single user le mot de passe n'étant plus dans NetInfo, tu n'as qu'à
recopier un fichier de mot de passe créé sur une machine dans
/var/db/shadow/hash avec comme nom le GUID de l'utilisateur.


c'est donc là que ça se cache ?


Bah vi :)

Merci :)


De rien.

Donc en fait le nom du fichier dans /var/db/shadow/hash (à coucher
dehors) coresponds au champ generateduid dans netinfo...


Il n'est pas à coucher, c'est un UUID, c'est tout, c'est plus sûr que
toto et titi.

Pour le test, j'ai fait ceci :

id_titi=$(nicl . -read /users/titi generateduid |cut -f 2 -d" ")
id_toto=$(nicl . -read /users/toto generateduid |cut -f 2 -d" ")


niutil -readprop . /users/laurent generateduid

Ca va plus vite ;-)

cat /var/db/shadow/hash/$id_titi > /var/db/shadow/hash/$id_toto

et en effêt, toto se retrouve avec le mot de passe de titi.


Logique.

Bon, reste que sur une machine où on est en single user, c'est à dire
sans réseau en principes, si on a pas le mot de passe ça veux dire qu'on
vas devoir recopier les 1240 caractères du hack d'un user d'une autre
machine à la mano, pas terrible :/


Euh, non, déjà, si tu observes un compte standard, il y a plein de 0,
c'est parce que dans ce fichier sont stockés différents hash :

1-32 : NTLM
33-64 : LAN MANAGER (couplés au au NTLM on a le NT LAN MANAGER)
65-104 : OTP (One Time Pad, pas utilisé pas Mac OS X au jour
d'aujourd'hui)
105-168 : CRAM
169-216 : SSHA1 (celui utilisé pour les comptes Mac OS X v10.4, c'était
du SHA1 en 10.3)
217-1240 : Recoverable

J'avais fait un petit script pour découper le truc :

<http://lpertois.free.fr/mosx_scripts/decoupage.zip>



Il doit certainement exister une commande pour générer ce hash ...
Mais j'ai cherché quelques minutes et j'ai pas trouvé. La flemme :)


Spontanément j'aurais dit openssl ou slappasswd, mais en les essayant et
comparant à mon hash "officiel", je n'ai pas la même chose, c'est
embêtant.

Tant-pis, le rm /var/db/.AppleSetupDone me suffit.


Seulement pour l'utilisateur 501.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.


Avatar
Nicolas.MICHEL
Laurent Pertois wrote:

Nicolas MICHEL wrote:

Donc en fait le nom du fichier dans /var/db/shadow/hash (à coucher
dehors) coresponds au champ generateduid dans netinfo...


Il n'est pas à coucher, c'est un UUID, c'est tout, c'est plus sûr que
toto et titi.


Oui, si tu veux.
Reste que sur une même machine il n'y a pas plus de raison d'avoir 2x le
même "shortname" que 2x le même UUID. Après, en réseau, je ne dis pas.

Mais ce UUID est encore pire qu'un DN ldap et c'est peu dire.

Euh, non, déjà, si tu observes un compte standard, il y a plein de 0,
c'est parce que dans ce fichier sont stockés différents hash :

1-32 : NTLM
33-64 : LAN MANAGER (couplés au au NTLM on a le NT LAN MANAGER)
65-104 : OTP (One Time Pad, pas utilisé pas Mac OS X au jour
d'aujourd'hui)
105-168 : CRAM
169-216 : SSHA1 (celui utilisé pour les comptes Mac OS X v10.4, c'était
du SHA1 en 10.3)
217-1240 : Recoverable


Ok. C'est clair.

J'avais fait un petit script pour découper le truc :
<http://lpertois.free.fr/mosx_scripts/decoupage.zip>


Cool !
Bien commenté et lisible en plus ...
Merci :)
(classé dans mon ~/bin, bien au chaud au cas où)
Mais dis moi, quel est la raison de ce script ?
Est-ce à des fins éducatives ou as-tu des cas de figures où tu balances
les hash dans des commandes ?

Tant-pis, le rm /var/db/.AppleSetupDone me suffit.


Seulement pour l'utilisateur 501.


Non, il ajoute un utilisateur admin et en bonne logique,
si tu effaces .AppleSetupDone c'est que le 501 existe déjà, donc il
prendra au minimum le 502. Ensuite tu peux booter avec cet utilisateur
et faire un "sudo passwd user501" pour prendre la main sur l'utilisateur
501.


--
Nicolas


1 2 3