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
Isso cria um usuário visível em sysprefs / Accounts.
dscl . create /Users/test Password "*"
Isso oculta o usuário. Certifique-se de citar o "*" ou não funcionará.
EDIT : Eu acidentalmente consegui recriar a situação do googletorp de não ser capaz de esconder um usuário definindo sua senha para "*", e descobri como consertá-lo. Desta vez, eu criei um usuário usando o dsimport, assim:
dsimport /dev/fd/0 /Local/Default I --template StandardUser << EOF
test:*:520:520:Test user:/Users/test:/bin/bash
EOF
Mas nesse comando, o * é usado para representar uma senha literal de um caractere de *
e, portanto, dsimport cria uma propriedade AuthenticationAuthority para o usuário e define a propriedade password como o hash de sombra de *
(que aparece como ********
em dscl, como em todas as senhas). Depois disso, tentar definir a senha como "*" usando dscl apenas define a senha como literal *
, em vez de desabilitar a senha. A solução é excluir a propriedade indesejada e, em seguida, desativar a senha:
sudo dscl . delete /Users/test AuthenticationAuthority
sudo dscl . create /Users/test Password "*"
Isso esconde o usuário.