我希望能够在进入计算机后在Mac OS X 10.5中远程创建新用户。我该怎么做?

评论

我尚无人问津,但是,如果您正在寻找如何从single_user模式(安全性重置)中执行此操作,则需要重新启动并按住Command-S,并获得对磁盘的写入权限屏幕上的详细信息,然后输入rm /var/db/.AppleSetupDone,这将使您创建一个新的管理员帐户。希望这对某人有帮助

#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