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 "*"
Это скрывает пользователя.