Comenzando con Lion, hay un archivo shadow por usuario. Todos ellos están almacenados en /var/db/dslocal/nodes/Default/users
directorio y son accesibles solo por root. Por ejemplo:
$ ls -lah /var/db/dslocal/nodes/Default/users/
total 296
drwx------ 77 root wheel 2.6K Jul 27 20:30 .
drw------- 12 root wheel 408B Jul 27 20:30 ..
-rw------- 1 root wheel 4.0K Jul 27 20:30 Guest.plist
-rw------- 1 root wheel 260B Jul 27 20:17 _amavisd.plist
-rw------- 1 root wheel 254B Jul 27 20:17 _appleevents.plist
-rw------- 1 root wheel 261B Jul 27 20:17 _appowner.plist
-rw------- 1 root wheel 276B Jul 27 20:17 _appserver.plist
Además, esos son archivos de lista de propiedades binarias. La forma más fácil de verlos es usando plist
dominio. Por ejemplo:
$ plutil -p /var/db/dslocal/nodes/Default/users/root.plist
{
"smb_sid" => [
0 => "XXXX-XXXX"
]
"uid" => [
0 => "0"
]
"passwd" => [
0 => "XXYYXX"
]
}
Mac OS X no usa el estándar /etc/passwd y /etc/shadow. En su lugar, utiliza una base de datos. Solía haber una GUI llamada NetInfo, pero se reemplazó con dscl
(Línea de comandos de servicios de directorio).
$ dscl
> read /Local/Default/Users/David Password
Password: ********
Desafortunadamente, eso es lo más lejos que puedo llegar con la utilidad. Imprimió asteriscos en lugar de la contraseña. Tal vez haya una manera de hacer que renuncie al hash, pero no la he encontrado.
Tiene un artículo que detalla el uso de DSCL y el descifrado de contraseñas en una Mac.