Cambie la contraseña del usuario proporcionando una nueva contraseña como hash en un script

7

Actualmente estoy trabajando en una implementación de una gran cantidad de Mac, en la que quiero configurar la contraseña de una cuenta de administrador sin colocar la contraseña en el script en texto sin formato. ¿Hay alguna forma de proporcionar un hash de la contraseña a dscl / passwd?

    
pregunta pberlijn 30.09.2013 - 10:59

2 respuestas

3

sí, puede cambiar la contraseña proporcionando un hash a un script. Esto funciona para 10.7 y versiones posteriores (hasta al menos 10.9.1).

  1. Necesitas el hash al que deseas configurarlo. La forma más sencilla de hacerlo es crear una cuenta con la contraseña que desea y leer el hash. El hash se almacena en /var/db/dslocal/nodes/Default/users/[username].plist en el campo ShadowHashData

  2. Cree al usuario de la manera estándar (usando dscl) pero no establezca la contraseña usando dscl, en su lugar use el comando predeterminado.

Ejemplo para el usuario llamado '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"
    
respondido por el Ryan Horrisberger 01.02.2014 - 00:03
0

Hace muchos años, me metí en algunos sistemas UNIX donde el hash de la contraseña estaba almacenado en / etc / passwd, u opcionalmente / etc / shadow.

Hice una pequeña búsqueda y encontré dos artículos que describen cómo se almacenan los hashes de contraseña en OS X:

enlace enlace

El artículo de 2011 dice:

  

Cada usuario tiene su propio archivo de sombra, con cada archivo de sombra almacenado en un archivo .plist ubicado en / var / db / dslocal / nodes / Default / users /

Los dos artículos tratan sobre descifrar las contraseñas, en lugar de establecer nuevas, pero pueden proporcionarte información útil.

Luego hice una búsqueda en Google para dscl set ShadowHashData . El primer éxito fue este "Paquete de carga gratuita para crear un usuario en un sistema 10.7" Script de Python:

enlace

Ese script parece llamar a dscl -create , seguido de dscacheutil -flushcache , seguido de escribir algunos datos en /var/db/dslocal/nodes/Default/users/%s.plist .

No he examinado el guión con mucha profundidad, pero ¿quizás podría darte un punto de partida?

    
respondido por el Ashley 03.10.2013 - 23:11

Lea otras preguntas en las etiquetas