如何从 Mac OS X 10.5 中的终端创建用户帐户?

如何从 Mac OS X 10.5 中的终端创建用户帐户?

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

答案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

然后您可以使用 passwd 来更改用户密码,或者使用:

dscl . -passwd /Users/luser password

您必须为用户的主目录创建 /Users/luser 并更改所有权,以便用户可以访问它,并确保 UniqueID 确实是唯一的。

此行将把用户添加到管理员组:

dscl . -append /Groups/admin GroupMembership luser

答案2

(这个答案应该被视为填补帕尔默程序中一些空白的附录)

要为新用户选择一个未使用的UniqueID,您可以使用:

maxid=$(dscl . -list /Users UniqueID | awk 'BEGIN { max = 500; } { if ($2 > max) max = $2; } END { print max + 1; }')
newid=$((maxid+1))

...然后使用 palmer 提供的 dscl 命令序列来创建帐户,然后使用以下命令创建新用户的主目录:

cp -R /System/Library/User\ Template/English.lproj /Users/luser
chown -R luser:staff /Users/luser
if [[ "$(sw_vers -productVersion)" != 10.[0-5].* ]]; then
    # Set ACL on Drop Box in 10.6 and later
    chmod +a "user:luser allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" /Users/luser/Public/Drop\ Box
fi

(有一个 createhomedir 命令,但是我测试的时候它不起作用。)

答案3

在创建账户之前挑选一个唯一用户 ID 的另一种方法是浏览列表并检查您想要使用的用户 ID 是否存在:

 sudo dscl . list /Users uid
 sudo dscl . list groups gid

如果你需要使用某个 ID,这很方便

答案4

如果您需要创建一群用户,则可以创建一个结构化文本文件并将其传递给dsimport完成作业。

苹果命令行管理指南中有整整一章有关用户和群组的内容。

相关内容