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
Это создает пользователя, который виден в sysprefs / Accounts.
dscl . create /Users/test Password "*"
Это скрывает пользователя. Убедитесь, что вы указали "*", иначе это не сработает.
РЕДАКТИРОВАТЬ : мне случайно удалось воссоздать ситуацию googletorp не в состоянии скрыть пользователя, установив его пароль "*", и я обнаружил, как это исправить. На этот раз я создал пользователя с помощью dsimport, например так:
dsimport /dev/fd/0 /Local/Default I --template StandardUser << EOF
test:*:520:520:Test user:/Users/test:/bin/bash
EOF
Но в этой команде символ * используется для представления буквального односимвольного пароля *
, поэтому dsimport создает для пользователя свойство AuthenticationAuthority и задает для свойства пароля теневой хэш *
(который отображается как ********
в dscl, как и для всех пароли). После этого, попытка установить пароль на «*» с помощью dscl просто продолжает устанавливать пароль на литерал *
, а не отключать пароль. Решение состоит в том, чтобы удалить нежелательное свойство, а затем отключить пароль:
sudo dscl . delete /Users/test AuthenticationAuthority
sudo dscl . create /Users/test Password "*"
Это скрывает пользователя.