我们知道Linux系统是一个多用户多任务的分时操作系统,这就意味着我们要想使用系统资源,我们就必须先向管理员申请一个账号。每个用户账号都拥有一个唯一的用户名和各自的口令。既然是多用户,那系统肯定就有一个管理用户方式,这个就是用户组。
Linux系统用户组的管理
3.1 groupadd
命令格式:groupadd 选项 用户组
意义:增加一个新的用户组
可以使用的选项有:
参数 | 含义 |
---|---|
-g | GID 指定新用户组的组标识号(GID)。 |
-o | 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 |
示例:
groupadd group1
向系统中增加了一个新组group1。
groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
3.2 groupdel
命令格式:groupdel 用户组
意义:删除一个已有的用户组
3.3 groupmod
命令格式:groupmod 选项 用户组
意义:修改用户组的属性
常用的选项有:
参数 | 含义 |
---|---|
-g | GID(组代号) 为用户组指定新的组标识号。 |
-o | 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。 |
-n | 新用户组 将用户组的名字改为新名字 |
示例:
groupmod -g 102 group2
将组group2的组标识号修改为102。
groupmod –g 10000 -n group3 group2
将组group2的标识号改为10000,组名修改为group3。
3.4 newgrp
命令格式:newgrp 选项 用户组
意义:切换到其他用户组
3.5 chgrp
命令格式:chgrp -R 组名 目录名
意义:改变文件的组
示例:
sudo chgrp -R study aaa
将aaa目录的组改为study
Linux系统用户账号的管理
3.6 useradd
命令格式:useradd 选项 用户名
意义:添加新的用户账号
参数说明:
参数 | 意义 |
---|---|
-c | 指定一段注释性描述。 |
-m | 可以自动创建用户的home目录。 |
-g | 用户组 指定用户所属的用户组,否则会建立一个和用户同名的组 |
示例:
useradd -m -g dev zhangsan
此命令创建了一个用户zhangsan,属于dev组
3.7 userdel
命令格式:userdel 选项 用户名
意义:删除账号
常用的选项是 -r,它的作用是把用户的主目录一起删除。
示例:
userdel -r aaa
删除用户aaa在系统文件中的记录,同时删除用户的主目录。
3.8 passwd
命令格式:passwd 选项 用户名
意义:指定和修改用户口令。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令
参数:
参数 | 含义 |
---|---|
-l | 锁定口令,即禁用账号。 |
-u | 口令解锁 |
-d | 使账号无口令。 |
-f | 强迫用户下次登录时修改口令。 |
3.9 id
命令格式:id 用户名
意义:查看用户UID(用户标识号)和GID(组标识号),两个代号信息存储在/etc/passwd下
passwd文件:
/etc/passwd存放的是用户的信息,由6个分号组成的7个信息,分别是:
- 用户名
- 密码,x表示加密的密码
- UID用户标识
- GID组标识
- 用户全名或本地账号
- home目录
- 登录使用的Shell,就是登录之后使用的终端命令,Ubuntu默认是dash
3.10 usermod
usermod用来设置用户的主组/附加组和登陆Shell。
- 主组:通常在新建用户指定,/etc/passwd第四列的GID对应的组。
- 附加组:在/etc/group中最后一列表示该组用户列表,用于指定用户附加权限
修改用户的主组(passwd当中的GID)
usermod -g 组 用户名
修改用户的附加组
usermod -G 组 用户名
修改用户登录Shell
usermod -s /bin/bash 用户名
3.11 which
命令格式:which 命令
意义:查看命令的位置
示例:
which useradd
查看useradd命令所在位置。
3.12 su
命令格式:su 用户名称
意义:切换用户
注意:如果使用su - 用户名称
就直接进入到目标用户的home目录,exit
命令就返回上一个用户,su不接用户名称就直接切换到root,但是不安全,所以不推荐。