当前位置: 首页 > news >正文

Linux基础命令-groupmems管理组群的成员

Linux-usermod修改用户
Linux-useradd创建用户
Linux-userdel删除用户
Linux基础命令-chown修改文件属主
Linux基础命令-chmod修改文件权限

groupmems

命令介绍

先来看看这个命令的帮助信息是什么概念

NAME
groupmems - administer members of a user’s primary group

groupmems命令的主要功能是用来管理用户主要组群的成员,由于这个命令会通过读取/etc/gshadow /etc/group文件显示对应的组群信息,普通用户无法使用这个命令来进行查看或者添加的操作,因此只有在root用户下才可以执行该命令。
来看下这个命令的语法是如何使用的

语法格式

该命令语法格式是:groupmems 【参数】【动作】

groupmems -a user_name | -d user_name | [-g group_name
] | -l | -p

基本参数

命令的参数有以下这些信息

选项The options which apply to the groupmems command are:-a, --add user_nameAdd a user to the group membership list.If the /etc/gshadow file exist, and the group has no entry in the /etc/gshadow file, a new entry will be created.-d, --delete user_name从组成员列表中删除用户。If the /etc/gshadow file exist, the user will be removed from the list of members and administrators of the group.If the /etc/gshadow file exist, and the group has no entry in the /etc/gshadow file, a new entry will be created.-g, --group group_name超级用户可以指定修改哪个组的组成员列表。-h, --help现实帮助信息并退出。-l, --list列出组成员。-p, --purge从组成员列表中删除所有用户。If the /etc/gshadow file exist, and the group has no entry in the /etc/gshadow file, a new entry will be created.-R, --root CHROOT_DIRApply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.

这个命令主要用到的参数实际上还是以用户的增删改查为主,以表格的格式显示,一起来看看有哪些实际参数。

-a添加用户到组成员列表
-d从组成员列表中删除用户
-g修改所有组的组成员列表
-l列出组成员
-p从组成员列表中删除所有用户

参考实例

1.添加用户到dev组

这里提前创建了一个dev组以及张三和李四两个用户,相当于是给用户添加了附加组。

[root@localhost ~]# groupadd dev
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# useradd lisi
[root@localhost ~]# groupmems -a lisi -g dev
[root@localhost ~]# id zhangsan
uid=1001(zhangsan) gid=1003(zhangsan)=1003(zhangsan),1002(dev)
[root@localhost ~]# id lisi
uid=1002(lisi) gid=1004(lisi)=1004(lisi),1002(dev)

2.查看有哪些成员属于dev组

可以使用-l参数来查看dev组的组成员信息

[root@localhost ~]# groupmems -g dev -l
zhangsan  lisi 

3.删除dev组的单个成员

这里我们删除这个组里的李四用户,将他移除到组外,执行命令后,在使用-l查看这个组成员只剩下了张三。

[root@localhost ~]# groupmems -d lisi -g dev
[root@localhost ~]# groupmems -g dev -l
zhangsan 

4.清空组的所有成员

前面删除得只剩下了一个组成员,让测试的效果更加明显,我们重新增加几个成员到dev组中。

[root@localhost ~]# useradd -g wangwu wangwu
[root@localhost ~]# groupmems -a wangwu -g dev
[root@localhost ~]# groupmems -a lisi -g dev
[root@localhost ~]# groupmems -g dev -l
zhangsan  wangwu  lisi 
#清空所有的组成员
[root@localhost ~]# groupmems -p -g dev
[root@localhost ~]# groupmems -g dev -l

5.usermod与groupmems的共同之处

实际上usermod这个命令也可以将用户添加到附加组内;我们用两个用户进行对比,usermod添加张三用户到dev组,groupmems添加李四用户到dev组。
先清空组的所有成员,可以看到这两个命令都可以将用户添加到对应的组,并且groupmems命令显示组成员的信息没有问题。

[root@localhost ~]# groupmems -p -g dev
[root@localhost ~]# usermod -G dev zhangsan
[root@localhost ~]# groupmems -a lisi -g dev
[root@localhost ~]# groupmems -g dev -l
zhangsan  lisi 
[root@localhost ~]# id zhangsan
uid=1001(zhangsan) gid=1003(zhangsan)=1003(zhangsan),1002(dev)
[root@localhost ~]# id lisi
uid=1002(lisi) gid=1004(lisi)=1004(lisi),1002(dev)

6.结合setfacl命令一起使用

昨天讲了setfacl命令,可以用来设置文件访问控制列表,这个可以用来设置用户,也可以用来设置组。
给dev组成员的用户设置读写执行的权限,让它可以成功访问/data目录。

[root@localhost ~]# groupmems -l -g dev
zhangsan  lisi 
[root@localhost ~]# mkdir /data
[root@localhost ~]# touch /data/{1..6}.txt       
[root@localhost ~]# setfacl -Rm g:dev:rwx /data
[root@localhost ~]# setfacl -dRm g:dev:rwx /data
[root@localhost ~]# getfacl /data
getfacl: Removing leading '/' from absolute path names
# file: data
# owner: root
# group: root
user::rwx
group::r-x
group:dev:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:dev:rwx
default:mask::rwx
default:other::r-x
[zhangsan@localhost ~]$ ll -d /data
drwxrwxr-x+ 2 root root 84 36 15:51 /data
[root@localhost ~]# ll /data
总用量 0
-rw-rwxr--+ 1 root root 0 36 15:49 1.txt
-rw-rwxr--+ 1 root root 0 36 15:49 2.txt
-rw-rwxr--+ 1 root root 0 36 15:49 3.txt
......
[root@localhost ~]# su - zhangsan
[zhangsan@localhost ~]$ echo "123456" > /data/1.txt
[zhangsan@localhost ~]$ cat !$
cat /data/1.txt
123456

总结

如果要想查看这个组有什么成员添加进来了,使用这个命令就正好合适,并且这个命令也可以用来增加成员到组内。如果觉得以上内容还行的,可以点赞支持一下!
在这里插入图片描述

http://www.lryc.cn/news/31956.html

相关文章:

  • css系统化学习
  • AI的简单介绍
  • 【Linux】-- 进程间通讯
  • STM32模拟SPI时序控制双路16位数模转换(16bit DAC)芯片DAC8552电压输出
  • 基于intel x86+fpga智能驾驶舱和高级驾驶辅助系统硬件设计(二)
  • oneblog_justauth_三方登录配置【Github】
  • 自行车轮胎充气泵PCBA方案
  • 200 22222
  • <JVM上篇:内存与垃圾回收篇>13 - 垃圾回收器
  • 广义状态平均法功率变换器建模分析
  • 基于Spring Boot的快递管理系统
  • nerdctl不完全使用指南(开发者)
  • 【独家】华为OD机试 - 分糖果(C 语言解题)
  • 八股总结(二)计算机网络与网络编程
  • ChatGPT  一本正经的胡说八道 那也看看原理吧
  • ChatGPT:一个人机环境系统交互的初级产品
  • PaddlePaddle本地环境安装(windows11系统)
  • DBeaver 超级详细的安装与使用
  • 计算机网络的166个概念 你知道几个第七部分
  • 海尔三翼鸟:生态聚拢的密度,决定场景落地速度
  • 前端基础知识
  • LiveData 面试题库、解答、源码分析
  • kotlin用object实现单例模式,companion object与java静态
  • 智慧楼宇中的“黑科技”
  • 炫云渲染质量功能测试
  • SpringBoot入门
  • D. Constant Palindrome Sum(差分数组维护)
  • 【C++】30h速成C++从入门到精通(IO流)
  • 文件变成chk如何恢复正常
  • Meta最新模型LLaMA细节与代码详解