8 votes

Modifier le mot de passe de l'utilisateur en fournissant le nouveau mot de passe sous forme de hachage dans un script.

Je travaille actuellement sur un déploiement d'un grand nombre de Mac, sur lesquels je souhaite définir le mot de passe d'un compte administrateur sans mettre le mot de passe en clair dans le script. Existe-t-il un moyen de fournir un hachage du mot de passe à dscl/passwd ?

3voto

Ryan Horrisberger Points 523

Oui, vous pouvez modifier le mot de passe en fournissant un hachage à un script. Cela fonctionne à partir de la version 10.7 (au moins jusqu'à la version 10.9.1).

  1. Vous avez besoin du hash que vous voulez lui attribuer. Le plus simple est de créer un compte avec le mot de passe souhaité et de lire le hachage. Le hachage est stocké dans /var/db/dslocal/nodes/Default/users/[username].plist dans le ShadowHashData champ

  2. Créez l'utilisateur de la manière standard (en utilisant dscl) mais ne définissez pas le mot de passe à l'aide de dscl, utilisez plutôt la commande defaults.

Exemple pour un utilisateur appelé "lana" :

#!/bin/bash

#hash to set obtained from: 
#defaults read /var/db/dslocal/nodes/Default/users/lana.plist ShadowHashData
pw_hash='(<10145341 4c544544 ...really long...2d534841>)'

#needs to be unique
$uid=510

#gid of an existing group
$gid=510

dscl . -create /Users/lana
dscl . -create /Users/lana UserShell /bin/bash
dscl . -create /Users/lana RealName "Lana May"
dscl . -create /Users/lana UniqueID $uid
dscl . -create /Users/lana PrimaryGroupID $gid
dscl . -create /Users/lana NFSHomeDirectory /Users/lana
dscl . -merge /Groups/admin GroupMembership lana
defaults write "/var/db/dslocal/nodes/Default/users/lana.plist" ShadowHashData "$pw_hash"

0voto

Ashley Points 4027

Il y a de nombreuses années, je me suis occupé de certains systèmes UNIX où le hachage du mot de passe était stocké dans /etc/passwd, ou éventuellement /etc/shadow.

J'ai fait quelques recherches et j'ai trouvé deux articles décrivant la manière dont les hachages de mots de passe sont stockés sous OS X :

http://www.defenceindepth.net/2009/12/cracking-os-x-passwords.html http://www.defenceindepth.net/2011/09/cracking-os-x-lion-passwords.html

L'article de 2011 dit :

Chaque utilisateur possède son propre fichier d'ombre, chaque fichier d'ombre étant stocké dans un fichier .plist situé dans /var/db/dslocal/nodes/Default/users/.

Les deux articles traitent du déchiffrage des mots de passe, plutôt que de la création de nouveaux mots de passe, mais ils peuvent vous fournir des informations utiles.

J'ai ensuite effectué une recherche sur Google pour dscl set ShadowHashData . Le premier résultat était ce "Payload free package to create a user on a 10.7 system" Python script :

https://gist.github.com/rustymyers/1242589

Ce script semble appeler dscl -create , suivi de dscacheutil -flushcache suivi de l'écriture de certaines données dans /var/db/dslocal/nodes/Default/users/%s.plist .

Je n'ai pas étudié le script en profondeur, mais il pourrait peut-être vous donner un point de départ ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X