在macOS系统中,通过命令行创建用户是系统管理员常用的操作之一,尤其适用于需要批量管理用户或远程管理服务器的场景,macOS基于Unix内核,其用户管理机制与Linux系统类似,主要通过dscl(Directory Services Command Line)工具实现,以下是详细的操作步骤、注意事项及相关说明。

创建用户的基本流程
在macOS中,用户信息存储在目录服务中,dscl是与之交互的核心命令,创建用户需指定用户名、用户ID(UID)、主目录路径、Shell类型等关键信息,以下是具体操作步骤:
打开终端
通过“应用程序”>“实用工具”>“终端”打开命令行工具,或使用Spotlight搜索快速启动。
检查现有用户列表
执行以下命令可查看当前系统所有用户:
dscl . list /Users
此命令会列出所有用户,包括系统内置用户(如root、daemon等)。

创建用户
使用dscl命令创建用户,需提供以下参数:
- RecordName:用户名(如
testuser)。 - UniqueID:唯一用户ID(建议使用500以上的未占用ID)。
- UserShell:登录Shell(如
/bin/bash或/bin/zsh)。 - NFSHomeDirectory:主目录路径(如
/Users/testuser)。 - RealName:用户全名(可选,用于显示)。
示例命令如下:
sudo dscl . -create /Users/testuser sudo dscl . -create /Users/testuser UniqueID 1010 sudo dscl . -create /Users/testuser UserShell /bin/zsh sudo dscl . -create /Users/testuser NFSHomeDirectory /Users/testuser sudo dscl . -create /Users/testuser RealName "Test User"
执行后,用户的基本信息即创建完成,但此时用户尚未设置密码,可能无法登录。
设置用户密码
通过以下命令为用户设置密码(需交互输入):

sudo passwd testuser
或直接通过dscl命令设置密码(需加密处理):
sudo dscl . -passwd /Users/testuser your_password
验证用户是否创建成功
再次执行dscl . list /Users,确认testuser已出现在列表中,也可通过以下命令查看用户详细信息:
dscl . read /Users/testuser
用户属性详解
创建用户时,可根据需求调整以下属性:
| 属性名 | 说明 | 示例值 |
|---|---|---|
| UniqueID | 系统唯一标识,不可重复 | 1010 |
| UserShell | 默认登录Shell | /bin/bash、/bin/zsh |
| NFSHomeDirectory | 用户主目录路径 | /Users/testuser |
| RealName | 用户显示名称 | "Test User" |
| PrimaryGroupID | 主组ID(默认为20,即staff组) | 20 |
| IsHidden | 是否隐藏用户(true/false) | false |
补充操作:
- 添加用户到组:例如将用户加入
admin组(具有管理员权限):sudo dscl . append /Groups/admin GroupMembership testuser
- 修改用户属性:使用
dscl . create或dscl . merge命令更新属性。
注意事项
- UID冲突:确保UniqueID未被其他用户占用,可通过
dscl . list /Users UniqueID检查。 - 主目录权限:创建用户后,需手动设置主目录权限(默认权限可能不正确):
sudo chown -R testuser /Users/testuser sudo chmod 755 /Users/testuser
- 系统完整性保护(SIP):macOS 10.11及以上版本默认启用SIP,部分操作可能受限,建议在终端执行
sudo命令。 - 删除用户:如需删除用户,执行:
sudo dscl . delete /Users/testuser sudo rm -rf /Users/testuser
相关问答FAQs
Q1: 创建用户时提示“permission denied”如何解决?
A1: 此错误通常因权限不足导致,确保使用sudo执行命令,且当前账户具有管理员权限,若问题持续,可尝试禁用SIP(重启时按住Command+R进入恢复模式,终端执行csrutil disable),但需注意安全风险。
Q2: 如何批量创建多个用户?
A2: 可通过脚本循环实现,创建一个包含用户信息的文本文件(如users.txt,每行格式为username,uid,realname),然后编写bash脚本逐行读取并执行dscl命令,示例脚本如下:
while IFS= read -r line; do username=$(echo "$line" | cut -d',' -f1) uid=$(echo "$line" | cut -d',' -f2) realname=$(echo "$line" | cut -d',' -f3) sudo dscl . -create /Users/"$username" UniqueID "$uid" sudo dscl . -create /Users/"$username" RealName "$realname" sudo dscl . -create /Users/"$username" NFSHomeDirectory /Users/"$username" done < users.txt
通过以上步骤,即可高效完成macOS命令行下的用户创建与管理操作。
