Linux用户组管理
Linux用户管理
https://blog.youkuaiyun.com/omaidb/article/details/107869589
用户组的作用
用户组是具有相同特征用户的逻辑集合。简单的理解,有时我们需要让多个用户具有相同的权限,比如查看、 修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有 10 个用户的话,就需要授权 10 次,那如果有 100、1000 甚至更多的用户呢?
显然,这种方法不太合理。最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有 需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。
将用户分组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很多程序上简化 了对用户的管理工作。
用户组特点: 具有相同特性用户的逻辑集合,通过组的形式使得具有相同特性的多个用户能够拥有相同的权限,便于管理;
每一个用户都拥有自己的私有组;
同一组内的所有用户可以共享该组下的文件;
每一个用户组都会被分配一个特有的id号-gid。
用户和用户组的关系
一对一
:一个用户可以存在一个用户组中,作为组中的唯一成员;
一对多
:一个用户可以存在多个用户组中,该用户具有多个组的共同权限;
多对一
:多个用户可以存在一个用户组中,这些用户具有和组相同的权限;
多对多
:多个用户可以存在多个用户组中,其实就是以上三种关系的扩展。
用户组的基本信息
- 组分类:有
主要组
,私有组
和附加组
主要组(primary group)
: /etc/passwd 文件第四列的组就时主要组
私有组(private group)
:由系统创建与用户同名的组
附加组(attached group)
: 由管理员创建,由管理员进行添加成员
/etc/group用户组信息文件
用户组信息
存放在/etc/group
文件中
- 在这个文件中,保存着用户组的所有信息,每一行记录代表一个用户组;
- 将用户分组是对用户进行管理及控制访问权限的一种手段,每个用户都属于一个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。
/etc/gshadow 用户组密码文件
用户组密码
存放在/etc/gshadow
文件中
- 在这个文件中,会保存用户组加密信息,比如说用户组管理密码就保存在此(与
/etc/shadow
文件相似); - 与
/etc/group
文件互补,对于大型服务器来说,拥有很多用户和组,此时会针对这些用户和组来生成一 些复杂的权限模型,此时设置并管理密码就显得尤为重要。
组作用:
- 方便管理众多的用户
唯一标识: - GID 范围0—60000
Linux系统中一个用户至少属于一个组
用户组文件
格式详解
# 查看用户组文件
grep wheel /etc/group
## 回显
root:x:0:
# 第一列表示组名
# 第二列表示组密码,组密码存放在/etc/gshadow文件中
# 第三列表示组ID(GID)
# 第四列表示"组成员"
wheel组(管理员组)
参考: https://www.cnblogs.com/kerrycode/p/7053118.html
只允许wheel
组使用su
命令切换为root
,其他用户默认不能提权为root
(需配置).
# 将一个用户添加到wheel组中
usermod -G wheel 用户名
修改用户的组信息
修改用户的扩展组
# 将root用户添加到unbound组
## 会覆盖上一个的扩展组
# usermod -G 扩展组名 用户名
usermod -G unbound root
添加用户到多个扩展组
# 将当前用户添加到指定组
usermod -aG vboxusers $USER
# -aG 讲用户添加到指定组中
## -a add添加
## -G 表示"组"
usermod -aG 扩展组名 用户名
## 可以将用户添加到多个扩展组,不会覆盖之前的扩展组
# 将用户user1添加到g1组中
usermod -aG g1 user1
# 方法2:
# gpasswd -a 用户名 组名
gpasswd -a zhangsan test
从组中删除用户
# gpasswd -d 用户名 组名
gpasswd -d zhangsan test
增加组:groupadd
-f | 如果组已存在,则成功退出 |
---|---|
-g | 为新用户组所使用的GID |
-h | 显示此帮助信息并退出 |
-o | 允许创建有重复 GID 的组 |
-p | 为新用户组使用此加密过的密码 |
-r | 创建一个系统账户 |
#例如添加一个组组名叫google
groupadd 组名
删除组:groupdel
groupdel
命令用于从系统中删除组
,需要注意
的是,若是在组中仍然包括某些用户
,此时需要先从组中删除这些用户
后,才能删除组
)
-f | 即便是用户的主组也继续删除 |
---|
#删除组:
groupdel 组名
修改组:groupmod
-g | 修改为要使用的GID |
---|---|
-h | 显示此帮助信息并退出 |
-n | 修改为要使用的组名称 |
-o | 允许使用重复的 GID |
-p | 更改密码(加密过的) |
#主要是修改组名 :
##groupmod -n 修改后的新名字 修改前的名字
##-n后面 lt代表的新名字
##- loadtest 旧的组名字
groupmod -n lt loadtest
也可以手动编辑/etc/group
文件实现修改组信息
查看组信息
# 查看用户属于哪个组
groups 用户名
查看系统有哪些组
# 查看系统有哪些组
cat /etc/group
# 只查看组名
awk -F ":" '{print $1}' /etc/group
# 查找属于 test 组的用户
grep 'test' /etc/group
用户组密码gpasswd
参考链接:https://blog.youkuaiyun.com/leroy008/article/details/16808003
/etc/gshadow
是/etc/group
的密码文件
;
用户组密码文件
存放在/etc/gshadow
文件的每一行,以“:
”分隔成4
个字段。
-a | 向组(GROUP)中添加用户(USER) |
---|---|
-d | 从组(GROUP)中添加或删除用户 |
-M | 设置组(GROUP)的成员列表 |
-A | 设置组(GROUP)的管理员列表 |
-r | 移除组(GROUP)的密码 |
-R | 向其成员限制访问组(GROUP) |
-Q | 要 chroot 进的目录 |
# 修改组密码
## -p | 更改密码(加密过的)
groupmod -p '组密码' 组名
# 查看用户组密码文件格式
grep wheel /etc/gshadow
第1 列 | 第2 列 | 第3 列 | 第4 列 |
---|---|---|---|
组名称 | 用户组密码 | 用户组管理员的名称 | 支持的账号名称 |
newgrp临时切换到组
# 当前用户临时切换到test组
## 如果有组密码,会提示输入密码
newgrp test
# 临时切换到test组后,创建的文件就属组就是test组
# 退回原来的组
newgrp 原来的组名