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
ただし、このコマンドでは、*はリテラルの1文字のパスワードを表すと見なされる*
ため、dsimportはユーザーのAuthenticationAuthorityプロパティを作成し、パスワードプロパティをシャドウハッシュに設定します*
(これは********
、dsclのように、パスワード)。その後、dsclを使用してパスワードを「*」に設定しようとすると、パスワードを*
無効にする代わりに、パスワードをリテラルに設定し続けるだけです。解決策は、不要なプロパティを削除してからパスワードを無効にすることです。
sudo dscl . delete /Users/test AuthenticationAuthority
sudo dscl . create /Users/test Password "*"
これにより、ユーザーが非表示になります。