“ 海阔凭鱼跃,天高任鸟飞。——吴承恩”
图片来源:中国·北京
【 导读】
上一篇讲解了用户相关的命令:Linux中用户管理命令---详解,这篇我们说一说用户组相关内容,基本上就是用户组配置文件的新增,修改与删除。Linux用户组的配置文件/etc/group和/etc/gshadow详解分析了用户组配置文件细节。
【目录】
一 groupadd
二 groupmod
三 groupdel
四 gpasswd
一 groupadd
[root@achao ~]# groupadd --help
用法:groupadd [选项] 组
选项:
-f, --force 如果组已经存在则成功退出
并且如果 GID 已被使用则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并退出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DI directory prefix
-U, --users USERS list of user members of this group
1.1 创建账户
[root@achao ~]# groupadd qianlong
[root@achao ~]# grep qianlong /etc/group /etc/gshadow
/etc/group:qianlong:x:1004:
/etc/gshadow:qianlong:!::
二 groupmod
[root@achao ~]# groupmod --help
用法:groupmod [选项] 组
选项:
-a, --append append the users mentioned by -U option to the group
without removing existing user members
-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并退出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-U, --users USERS list of user members of this group
测试用例:
[root@achao ~]# groupmod -g 168 -n kangxi qianlong
[root@achao ~]# grep kangxi /etc/group /etc/gshadow
/etc/group:kangxi:x:168:
/etc/gshadow:kangxi:!::
与前文比较,1004变为了168,qianlong变为了kangxi,修改成功。
三 groupdel
[root@achao ~]# groupdel --help
用法:groupdel [选项] 组
选项:
-h, --help 显示此帮助信息并退出
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-f, --force 即便是用户的主组也继续删除
测试用例1:
[ ]
[ ]
[ ]
发现配置文件删除的干干净净。
测试用例2:
[ ]
groupdel:不能移除用户“achao”的主组
[ ]
/etc/passwd:achao:x:1003:1003::/home/achao:/bin/bash
/etc/group:achao:x:1003:
删除achao用户组失败的原因是/etc/passwd中初始用户组使用该用户组。/etc/passwd中第四列的值是1003,/etc/group中第四列值也是1003。因此删除失败。
如果想要删除,应该先修改achao的GID,确保/etc/passwd内账号没有任何人使用该用户组作为初始用户组。
[root@achao ~]# grep dufu /etc/passwd /etc/group
/etc/passwd:dufu:x:1002:1111::/home/dufu:/bin/bash
/etc/group:dufu:x:1001:
[root@achao ~]# groupdel dufu
[root@achao ~]# grep dufu /etc/passwd /etc/group /etc/gshadow
/etc/passwd:dufu:x:1002:1111::/home/dufu:/bin/bash
此时,发现dufu组删除成功。
四 gpasswd(用户组管理员功能)
[root@achao ~]# gpasswd --help
用法:gpasswd [选项] 组
选项:
-a, --add USER 向组 GROUP 中添加用户 USER
-d, --delete USER 从组 GROUP 中添加或删除用户
-h, --help 显示此帮助信息并退出
-Q, --root CHROOT_DIR 要 chroot 进的目录
-r, --delete-password remove the GROUP's password
-R, --restrict 向其成员限制访问组 GROUP
-M, --members USER,... 设置组 GROUP 的成员列表
-A, --administrators ADMIN,...
设置组的管理员列表
除非使用 -A 或 -M 选项,不能结合使用这些选项。
注意:若没有任何参数,表示设置groupname密码。
测试用例1:创建组并设置密码
[root@achao ~]# groupadd libai
[root@achao ~]# gpasswd libai
正在修改 libai 组的密码
新密码:
请重新输入新密码:
[root@achao ~]# grep libai /etc/group /etc/gshadow
/etc/group:libai:x:1001:
/etc/gshadow:libai:$6$S.7G7SJKxbtmeVT7$W7B3hYhdMNlxYhVVpTNriCKGKyYinIfHJgHjw6UQeneeVASJ/9qoeopIi0MrGx4JAqjLIoQrGyWOvHPIIsRao1::
测试用例2:加入用户组管理员
#加入用户组管理员为admin
[root@achao ~]# gpasswd -A admin libai
[root@achao ~]# grep libai /etc/group /etc/gshadow
/etc/group:libai:x:1001:
/etc/gshadow:libai:$6$S.7G7SJKxbtmeVT7$W7B3hYhdMNlxYhVVpTNriCKGKyYinIfHJgHjw6UQeneeVASJ/9qoeopIi0MrGx4JAqjLIoQrGyWOvHPIIsRao1:admin:
此时,admin拥有libai的控制权。
测试用例3 将libai加入admin用户组
[root@achao ~]# su - admin
[admin@achao ~]$ id
用户id=1000(admin) 组id=1000(admin) 组=1000(admin),10(wheel) 上下文=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[admin@achao ~]$ gpasswd -a admin libai
正在将用户“admin”加入到“libai”组中
[admin@achao ~]$ id
用户id=1000(admin) 组id=1000(admin) 组=1000(admin),10(wheel) 上下文=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[admin@achao ~]$ grep libai /etc/group
libai:x:1001:admin
[admin@achao ~]$
此用例将libai变成一个公开的用户组。
---结束
点赞关注分享宝子们如果觉得还OK,可以动动可爱的小手分享给身边的好朋友!我们一起进步,每一个点赞关注分享都是小编前进的动力!
【往期回顾】
Linux中将shell脚本放入后台运行还在用&符号吗?nohup表示不答应
原文始发于微信公众号(网络安全与取证研究):Linux中用户组管理命令---详解
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论