dscl . create /Users/test
dscl . create /Users/test UniqueID 420
dscl . create /Users/test PrimaryGroupID 420
dscl . create /Users/test UserShell /bin/bash
dscl . create /Users/test NFSHomeDirectory /tmp
dscl . create /Users/test RealName Test
dscl . create /Users/test Password test
Questo crea un utente visibile in sysprefs / Accounts.
dscl . create /Users/test Password "*"
Questo nasconde l'utente. Assicurati di citare il "*" o non funzionerà.
EDIT : sono riuscito accidentalmente a ricreare la situazione di googletorp di non riuscire a nascondere un utente impostando la sua password su "*", e ho scoperto come risolverlo. Questa volta, avevo creato un utente usando dsimport, in questo modo:
dsimport /dev/fd/0 /Local/Default I --template StandardUser << EOF
test:*:520:520:Test user:/Users/test:/bin/bash
EOF
Ma in quel comando, si assume che * rappresenti una password letterale di un carattere di *
, quindi dsimport crea una proprietà AuthenticationAuthority per l'utente e imposta la proprietà password sull'hash dell'ombra di *
(che appare come ********
in dscl, come per tutti Le password). Successivamente, il tentativo di impostare la password su "*" utilizzando dscl continua a impostare la password su un valore letterale *
, anziché disabilitare la password. La soluzione è eliminare la proprietà indesiderata e quindi disabilitare la password:
sudo dscl . delete /Users/test AuthenticationAuthority
sudo dscl . create /Users/test Password "*"
Questo nasconde l'utente.