如何在Mac OS X 10.11中的终端上创建用户帐户?


23

我希望能够在进入计算机后在Mac OS X 10.11中远程创建新用户。在山狮上,列出了这些步骤

跑步

dscl . -create /Users/joeadmin
dscl . -create /Users/joeadmin UserShell /bin/bash
dscl . -create /Users/joeadmin RealName "Joe Admin" 
dscl . -create /Users/joeadmin UniqueID "510"
dscl . -create /Users/joeadmin PrimaryGroupID 20
dscl . -create /Users/joeadmin NFSHomeDirectory /Users/joeadmin
dscl . -passwd /Users/joeadmin password 

dscl . -append /Groups/admin GroupMembership joeadmin

完成上述操作后,该用户将不会成为管理员。接下来是什么?


Answers:


6

该文档缺少一个重要步骤:

reboot

要么

sudo reboot

重新引导后,用户将在“系统偏好设置”->“用户和组”中享受可见的管理员权限。

但是:即使没有重新启动,用户已经管理员-在PrefPane中不可见。如果您在创建帐户后立即以joeadmin身份登录(例如,快速切换用户),则可以在其帐户中看到admin角色。


好答案。我正要向OP提出评论,以询问该帐户不是管理员的原因是什么,以便研究他们如何使用用户或测试管理员组成员身份。根据他们的检查方式,注销可能是当前用户以管理员身份读取新用户所需的全部信息……
bmike

13

如果您在这里并且系统正在运行10.10及更高版本中的任何版本,则sysadminctl命令是您最好的朋友。它做了DSCL无法做到的许多魔术。

这是sysadminctl的输出:

sysadminctl[21233:29122637] Usage: sysadminctl
    -deleteUser <user name> [-secure || -keepHome]
    -newPassword <new password> -oldPassword <old password> [-passwordHint <password hint>]
    -resetPasswordFor <local user name> -newPassword <new password> [-passwordHint <password hint>]
    -addUser <user name> [-fullName <full name>] [-UID <user ID>] [-password <user password>] [-hint <user hint>] [-home <full path to home>] [-admin] [-picture <full path to user image>]

Pass '-' instead of password in commands above to request prompt.

然后,您需要执行以下操作:

sudo createhomedir -c 2>&1 | grep -v "shell-init"

要添加/删除用户,请使用dseditgroup:

sudo dseditgroup -o edit -a usernametoadd -t user admin
sudo dseditgroup -o edit -a usernametoadd -t user wheel

该命令sudo createhomedir -c 2>&1 | grep -v "shell-init"还会在/var/setup
全新

@Burcardo可以,只要帐户有效,用户就可以使用passwd更改自己的密码。实际上,我的机器都没有与创建该文件夹有关的任何问题。
ub3rdud3

4

经过大量测试后,我制作了此脚本以从终端创建用户帐户。

LOCAL_ADMIN_FULLNAME="Joe Admin"     # The local admin user's full name
LOCAL_ADMIN_SHORTNAME="joeadmin"     # The local admin user's shortname
LOCAL_ADMIN_PASSWORD="password"      # The local admin user's password

# Create a local admin user account
sysadminctl -addUser $LOCAL_ADMIN_SHORTNAME -fullName "$LOCAL_ADMIN_FULLNAME" -password "$LOCAL_ADMIN_PASSWORD"  -admin
dscl . create /Users/$LOCAL_ADMIN_SHORTNAME IsHidden 1  # Hides the account (10.10 and above)
mv /Users/$LOCAL_ADMIN_SHORTNAME /var/$LOCAL_ADMIN_SHORTNAME # Moves the admin home folder to /var
dscl . -create /Users/$LOCAL_ADMIN_SHORTNAME NFSHomeDirectory /var/$LOCAL_ADMIN_SHORTNAME # Create new home dir attribute
dscl . -delete "/SharePoints/$LOCAL_ADMIN_FULLNAME's Public Folder" # Removes the public folder sharepoint for the local admin

您可以删除以下行 mv / Users / $ LOCAL_ADMIN_SHORTNAME / var / $ LOCAL_ADMIN_SHORTNAME# 在sysadminctl命令-home / var / $ LOCAL_ADMIN_SHORTNAME
中将

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.