在摸索MacOS的过程中,发现一些linux系统的指令是不适用的
如果想要在MacOS下通过命令行进行用户组、用户的管理,就需要使用dscl
dscl是一个目录服务的命令行,用来创建和管理目录服务数据。它还提供了基本的编辑器命令。
开始创建用户
首先,需要进入root用户
1 | sudo su |
然后便通过dscl命令开始创建用户(需要在 /Users 数据目录下)
- 创建一个名为kastanie的用户并设置用户的uid (用户的ID需要大于500)
1 | dscl . create /Users/kastanie uid 501 |
- 设置用户的组ID(同样需要大于500)
1 | dscl . create /Users/kastanie gid 501 |
- 设置用户所使用的shell。如果不设置shell,那么用户在终端将无法使用
1 | dscl . create /Users/kastanie shell /bin/bash |
- 设置用户的初始密码为空
1 | dscl . create /Users/kastanie passwd '*' |
- 修改密码
1 | passwd kastanie |
- 将用户加入群组并且可以通过SSH连接
1 | dscl . -append /Groups/students GroupMembership kastanie |
- 创建用户的home目录
1 | mkdir /Users/kastanie |
在用户已经有所属的组的前提下, 设定文件夹的宿主是新用户
1 | chown -R kastanie:students /Users/kastanie |
- 声明用户的home目录
1 | dscl . create /Users/kastanie home /Users/kastanie |
- 难免出错,可以删除用户重新来过
1 | dscl . delete /Users/kastanie |
- 建立数据存储文件夹 (博主所在专业的习惯,无需求的小伙伴可以略过)
首先在数据存储位置 /Volumes 内的 data 文件夹内创建用户的文件夹
1 | mkdir /Volumes/pegasus32_R8/data/kastanie |
然后利用 ln 链接至用户的 home 目录下,更名为 work 文件夹
1 | ln -s /Volumes/pegasus32_R8/data/kastanie /Users/kastanie/work |
至此,一个新鲜的MacOS的用户就已经创建好啦!
一些基本的查看命令
- 查看用户属性
1 | dscl . read /Users/kastanie |
- 查看用户的ID和组ID
1 | dscl . read /Users/kastanie UniqueID PrimaryGroupID |
- 列出所有用户的ID
1 | dscl . list /Users UniqueID |
- 列出所有用户的组ID
1 | dscl . list /Users PrimaryGroupID |
- 如果没有用户组,还需要创建新的用户组 (注意:*** 代表组ID,要大于500)
1 | dscl . create /Groups/groupname gid *** |
- 列出用户组的所有成员
1 | dscl . read /Groups/groupname GroupMembership |
参考:CSDN博客