Cambia la password utente fornendo una nuova password come hash in uno script

7

Attualmente sto lavorando a una distribuzione di un gran numero di Mac, su cui voglio impostare la password per un account amministratore senza inserire la password in testo semplice nello script. C'è un modo per fornire un hash della password a dscl / passwd?

    
posta pberlijn 30.09.2013 - 10:59
fonte

2 risposte

3

Sì, puoi cambiare la password fornendo un hash a uno script. Funziona per 10.7 e versioni successive (almeno fino a 10.9.1).

  1. Hai bisogno dell'hash che desideri impostare. Il modo più semplice per farlo è creare un account con la password che desideri e leggere l'hash. L'hash è memorizzato in /var/db/dslocal/nodes/Default/users/[username].plist nel campo ShadowHashData

  2. Crea l'utente nel modo standard (usando dscl) ma non impostare la password usando dscl, invece usa il comando defaults.

Esempio per utente chiamato "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"
    
risposta data 01.02.2014 - 00:03
fonte
0

Molti anni fa, mi sono imbattuto in alcuni sistemi UNIX in cui l'hash della password era memorizzato in / etc / passwd, o facoltativamente / etc / shadow.

Ho fatto una piccola ricerca e ho trovato due articoli che descrivono come gli hash delle password sono memorizzati su OS X:

link link

L'articolo del 2011 dice:

Each user has their own shadow file, with each shadow file stored under a .plist file located in /var/db/dslocal/nodes/Default/users/

I due articoli riguardano il cracking delle password, piuttosto che l'impostazione di nuove, ma potrebbero fornire alcune informazioni utili per te.

Poi ho fatto una ricerca su Google per dscl set ShadowHashData . Il primo hit è stato questo "Pacchetto payload gratuito per creare un utente su un sistema 10.7" script Python:

link

Sembra che lo script chiami dscl -create , seguito da dscacheutil -flushcache , seguito dalla scrittura di alcuni dati in /var/db/dslocal/nodes/Default/users/%s.plist .

Non ho guardato la sceneggiatura in modo approfondito, ma potrebbe forse darti un punto di partenza?

    
risposta data 03.10.2013 - 23:11
fonte

Leggi altre domande sui tag