最近需要对系统的用户和用户组进行操作,才发现mac系统下的用户操作跟常见的Linux系统有很大的不同。
反正useradd
、groupadd
是用不了了。送你一句command not found
。
于是,查询整理了一些资料,做了记录。
相对来讲,还是比较全的,也很适合小白。网上很多的文章,要么有说怎么查,没说怎么删;要么有介绍用户操作,没有介绍用户组的操作。
查看所有的组:
dscl
cd /Local/Default/Groups
ls
// 或者
dscl . -list /Groups
// 如需查看各组ID
dscl . -list /Groups PrimaryGroupID
dscl . -readall /groups
// 查看指定的组
dscl . -read /Groups/admin
查看所有的用户:
dscl
cd /Local/Default/Users
ls
// 或者
dscl . -list /Users
// 如需查看各用户ID
dscl . -list /Users UniqueID
查看指定用户wenlie
的所属组ID:
dscl . -read /Users/wenlie
dscl . -read /Users/wenlie PrimaryGroupID
dscl . -read /Users/wenlie PrimaryGroupID RealName
查看指定组admin
中的用户:
dscl . -read /Groups/admin
dscl . -read /Groups/admin GroupMembership
创建组:
dscl . create /Groups/test_group
// 此处未指定gid, 那么通过dscl . -list /Groups PrimaryGroupID命令会查询不到,而应该使用dscl . -list /Groups
dscl . create /Groups/test_group gid 296
sudo dscl . -create /groups/test_group
sudo dscl . -append /groups/test_group gid 4200
sudo dscl . -append /groups/test_group passwd "nicepwd"
// 以下命令,会自动创建groupid
sudo dseditgroup -o create test_group
删除组:
dscl . -delete /Groups/test_group
创建指定用户test_user
:
dscl . -create /Users/test_user
dscl . -create /Users/test_user UserShell /bin/bash
dscl . -create /Users/test_user RealName "Lucius Q. User"
// 注意 UniqueID必须唯一
dscl . -create /Users/test_user UniqueID "1010"
dscl . -create /Users/test_user PrimaryGroupID 80
dscl . -create /Users/test_user NFSHomeDirectory /Users/test_user
// 修改密码
dscl . -passwd /Users/test_user 'goodpwd'
// 加入指定用户组`admin`
dscl . -append /Groups/admin GroupMembership test_user
从组中删除用户:
dscl . -delete /Groups/test_group GroupMembership test_user
查看dscl
命令的帮助:
dscl
help
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。