#1 楼
使用dscl命令。本示例将创建用户“ luser”,如下所示: />dscl . -create /Users/luser
dscl . -create /Users/luser UserShell /bin/bash
dscl . -create /Users/luser RealName "Lucius Q. User"
dscl . -create /Users/luser UniqueID "1010"
dscl . -create /Users/luser PrimaryGroupID 80
dscl . -create /Users/luser NFSHomeDirectory /Users/luser
您必须为用户的主目录创建/ Users / luser并更改所有权,以便用户可以访问它,并确保UniqueID实际上是唯一的。
此行会将用户添加到管理员组:
dscl . -passwd /Users/luser password
评论
如何确保UID是唯一的?
– JR Lawhorne
09年5月5日在18:47
没有自动的方法。如果您编写此脚本,则只需运行“ id ####”命令并确保其返回“ No such user”或某些此类hack。
–palmer
09年5月5日在18:54
如果您没有权限,请记住使用sudo。
–拉菲·哈特查杜安(Raffi Khatchadourian)
2012年10月31日20:45
请注意,PrimaryGroupID 80是admin,因此luser可以使用sudo,即使您没有将其添加到管理员的组中。
– ruslo
2014年7月3日在6:45
一定会爱上luser的:-)太好了,谢谢。
–贾兰布
20/09/10在12:03
#2 楼
(此答案应视为补充,以填补Palmer程序中的空白)要为新用户选择未使用的UniqueID,可以使用: />
...然后使用palmer提供的dscl命令序列创建帐户,然后使用以下命令创建新用户的主目录:
maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ( > max) max = ; } END { print max + 1; }')
newid=$((maxid+1))
(有一个createhomedir命令,但是在我测试它时不起作用。)
评论
我创建了一个脚本,使用新用户填充了我们的Open Directory Master,然后在Open Directory Replicas / Fileshares上调用sudo createhomedir -s(IIRC),他们愉快地创建了主目录。
–克林顿·布莱克莫尔
09年5月5日在23:07
dscl -list限制为256个结果,因此,如果您有超过256个用户,则此技术将无法保证唯一的UID。
– smokris
2012-09-14 18:57
驱逐2条额外管道(仅使用awk)的小技巧:dscl。 -list /用户的UniqueID | awk'{if($ 2> max)max = $ 2; } END {print max + 1; }'
– Valtoni Boaventura
19年8月16日在1:37
@ValtoniBoaventura不错。我通过答案将其并入(如果没有常规帐户,则使用默认值)。我还添加了设置投递箱ACL(在10.6中添加)的步骤。
–戈登·戴维森(Gordon Davisson)
19年8月16日在7:27
#3 楼
如果要创建大量用户,则可以创建一个结构化的文本文件并将其传递给dsimport
来完成这项工作。组。评论
奇。苹果似乎已经取消了您最初提到的文档的v10.5,但是保留了v10.3和较不全面的Snow Leopard版本
–chb
17-10-16在22:37
#4 楼
创建帐户之前选择和选择唯一用户ID的另一种方法是浏览列表并检查是否要使用的ID: sudo dscl . list /Users uid
sudo dscl . list groups gid
方便,如果您需要使用特定的ID
评论
dscl -list限制为256个结果,因此,如果您有超过256个用户,则此技术将无法保证唯一的UID。
– smokris
2012-09-14 18:58
是的,这是立即在此处添加该用户的最短路径,只需grep它并记住您要用于新用户的ID
–yair
2015年8月5日14:13
#5 楼
我在这里利用了不同的答案,提出了我认为是创建用户帐户的不错脚本。诚然,这并不是为从ssh一次运行命令而设计的。此外,它还被设计为在编译OS X的基于软件包的映像(由Casper Imaging或InstaDMG创建)时运行的脚本。您可以指定用户应属于哪些组。在我看来,这可能取决于您所运行的OS X的版本。在OS X 10.6上以管理员身份运行id
时,与在OS X 10.5上以管理员身份运行时,得到的结果不同。评论
在另一个答案中,Elliott警告说,'createhomedir -c'命令在最后将为您绑定到的目录中的所有用户创建帐户。 (手册页中的“ -c”选项“仅为本地主目录路径创建主目录。”)还有另一个选项“ -u用户名”可能会更好。
–克林顿·布莱克莫尔
2010-09-21 18:52
你好,我正在使用上面的脚本。因此它添加了我的新用户,但是当该用户连接到他的日历时,它说他没有该权限!你能帮助我吗 ?
–吉米
2011-1-24的2:50
@jimmy:我建议您提出有关serverfault的新问题并链接到此答案,而不是仅仅在评论中提出问题,这种情况很少见。我希望权限是正确的。如果您可以识别没有正确权限的文件,则使用'chown'和'chmod'可以有所帮助...但是我不知道它将是哪个文件。
–克林顿·布莱克莫尔
11年1月26日在18:31
dscl -list限制为256个结果,因此,如果您有超过256个用户,则此技术将无法保证唯一的UID。
– smokris
2012-09-14 18:58
#6 楼
我开始了一个关于dscl
的包装,它使用了useradd
的参数-它不完整(我也不认为可以,因为在OS X上某些功能是不可能的),但是我用它来进行一些用户创建。 > 所有参数都有该框架,因此,如果您想利用GitHub出色的社交功能,就很容易做到。
评论
在OS X 10.5上运行#gem install osx-useradd.gemspec会导致错误:执行gem ...(Gem :: RemoteSourceException)时,第二行是HTTP响应301,获取http://gems.rubyforge.org/yaml。
–user145545
19年5月8日在4:50
评论
我尚无人问津,但是,如果您正在寻找如何从single_user模式(安全性重置)中执行此操作,则需要重新启动并按住Command-S,并获得对磁盘的写入权限屏幕上的详细信息,然后输入rm /var/db/.AppleSetupDone,这将使您创建一个新的管理员帐户。希望这对某人有帮助