mac下通过dscl命令对用户/用户组进行增删改查操作

最近需要对系统的用户和用户组进行操作,才发现mac系统下的用户操作跟常见的Linux系统有很大的不同。
反正useraddgroupadd是用不了了。送你一句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://www.4455q.com/tech/mac…

    原文作者:张文安
    原文地址: https://segmentfault.com/a/1190000012973654
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞