我希望能够通过 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
完成作业。
苹果命令行管理指南中有整整一章有关用户和群组的内容。