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 "*"
Це приховує користувача. Переконайтесь, що ви цитуєте "*", інакше це не спрацює.
EDIT : Мені випадково вдалося відтворити ситуацію 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 "*"
Це приховує користувача.