Ändern Sie das Benutzerkennwort, indem Sie ein neues Kennwort als Hash in einem Skript angeben

8

Derzeit wird an einer Bereitstellung einer großen Anzahl von Macs gearbeitet, für die ich das Kennwort für ein Administratorkonto festlegen möchte, ohne das Kennwort als Klartext in das Skript einzufügen. Gibt es eine Möglichkeit, einen Hash des Kennworts für dscl / passwd bereitzustellen?

pberlijn
quelle

Antworten:

3

Ja, Sie können das Kennwort ändern, indem Sie einem Skript einen Hash zuweisen. Dies funktioniert ab 10.7 (bis mindestens 10.9.1).

  1. Sie benötigen den Hash, auf den Sie ihn setzen möchten. Der einfachste Weg, dies zu tun, ist ein Konto mit dem gewünschten Passwort zu erstellen und den Hash zu lesen. Der Hash wird /var/db/dslocal/nodes/Default/users/[username].plistim ShadowHashDataFeld gespeichert

  2. Erstellen Sie den Benutzer wie gewohnt (mit dscl), aber legen Sie das Kennwort nicht mit dscl fest, sondern verwenden Sie den Befehl defaults.

Beispiel für Benutzer namens '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"
Ryan Horrisberger
quelle
0

Vor vielen Jahren mischte ich mich in einige UNIX-Systeme ein, in denen der Passwort-Hash in / etc / passwd oder optional in / etc / shadow gespeichert war.

Ich habe ein wenig gesucht und zwei Artikel gefunden, die beschreiben, wie die Passwort-Hashes unter OS X gespeichert werden:

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

In dem Artikel von 2011 heißt es:

Jeder Benutzer hat eine eigene Schattendatei, wobei jede Schattendatei unter einer .plist-Datei gespeichert ist, die sich in / var / db / dslocal / nodes / Default / users / befindet.

In den beiden Artikeln geht es darum, die Kennwörter zu knacken, anstatt neue festzulegen. Sie enthalten jedoch möglicherweise einige nützliche Informationen.

Dann habe ich eine Google-Suche durchgeführt dscl set ShadowHashData. Der erste Treffer war dieses "Payload-freie Paket zum Erstellen eines Benutzers auf einem 10.7-System" -Python-Skript:

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

Dieses Skript scheint aufzurufen dscl -create, gefolgt von dscacheutil -flushcachedem Schreiben einiger Daten /var/db/dslocal/nodes/Default/users/%s.plist.

Ich habe mir das Drehbuch nicht so genau angesehen, aber vielleicht gibt es Ihnen einen Ausgangspunkt?

Ashley
quelle