使用groupmems -l -g 组名选项遇到的问题

groupmems -l -g 组名 显示的不是附加组的成员,而是显示的是/etc/group文件的最后一个字段的内容

groupmems -l选项帮助文档上写的意思是显示的是一次组为附加组的用户列表,但是这是不准确的

那么先创建几个用户吧

[root@centos7 ~]#useradd zhao
[root@centos7 ~]#useradd li
[root@centos7 ~]#useradd zhang
[root@centos7 ~]#getent shadow zhao zhang li
zhao:!!:17493:0:99999:7:::
zhang:!!:17493:0:99999:7:::
li:!!:17493:0:99999:7:::

首先先将zhang用户设为zhang组的组管理员

[root@centos7 ~]#gpasswd -A zhang zhang
[root@centos7 ~]#getent gshadow zhang
zhang:!:zhang:

用zhang用户管理组,将zhao用户添加到zhang组

[root@centos7 ~]#su – zhang
[zhang@centos7 ~]$gpasswd -a zhao -g zhang
Adding user zhao to group zhang

但是我们用zhang能不能查看组成员呢?

[zhang@centos7 ~]$getent gshadow zhang

结果组管理员却不能查看,那么还是用root用户查看吧

[root@centos7 ~]#getent gshadow zhang
zhang:!:zhang:zhao
[root@centos7 ~]#getent group zhang
zhang:x:1007:zhao
[root@centos7 ~]#id zhao
uid=1002(zhao) gid=1002(zhao) groups=1002(zhao),1007(zhang)

使用groupmems查看

[root@centos7 ~]#groupmems -l -g zhang
zhao

从上面的结果来看zhang组是zhao的附加组,我们可以暂时理解为gshadow和group文件最后一个字段是以此组作为附加组的成员列表,那么现在做一个合理的实验,为了方便操作我不在切换成zhang用户管理该组了,现在将zhang用户添加到zhang组里:

[root@centos7 ~]#gpasswd -a zhang zhang
Adding user zhang to group zhang
[root@centos7 ~]#getent gshadow zhang
zhang:!:zhang:zhao,zhang
[root@centos7 ~]#getent group zhang
zhang:x:1007:zhao,zhang
[root@centos7 ~]#id zhang
uid=1004(zhang) gid=1007(zhang) groups=1007(zhang)

从上面的结果来看,zhang用户的确被添加到zhang组里了,但是zhang组仍然是zhang用户的主组,我们用groupmems查看一下

[root@centos7 ~]#groupmems -l -g zhang
zhao zhang

从上面的执行结果来看zhang组是zhang的主组却也用groupmems -l选项显示出来了,这就说明groupmems这个命令查看的就不是以此组作为附加组的成员列表了

深究一下,先查看与组有关的文件

[root@centos7 ~]#getent gshadow zhang
zhang:!:zhang:zhao,zhang
[root@centos7 ~]#getent group zhang
zhang:x:1007:zhao,zhang

貌似跟着两个文件都有关呢,那么修改一下gshadow文件在zhang组最后一个字段的后面添加一个用户li(其实可以不是用户,随便的字符串都行),在group文件在zhang组最后一个字段的后面添加一个不存在的用户wangcai

[root@centos7 ~]#getent gshadow zhang
zhang:!:zhang:zhao,zhang,li
[root@centos7 ~]#getent group zhang
zhang:x:1007:zhao,zhang,wangcai

添加好后,在执行groupmems -l命令查看结果:

[root@centos7 ~]#groupmems -l -g zhang
zhao zhang wangcai

结果很明显了,groupmems -l显示的并不一定是以此组为附加组的用户列表,该命令是读取的/etc/group文件中对应组的最后一个字段的全部内容。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88830

(4)
ChaogGeChaogGe
上一篇 2017-11-23 18:59
下一篇 2017-11-23 21:43

相关推荐

  • httpd配置

    httpd配置 修改监听的IP和端口(port) 持久连接 MPM DSO(Dynamic Shared Object) main server的文档页面路径 站点访问控制 定义站点主页面 定义路径别名 设定默认字符集 日志 基于用户的访问控制 虚拟主机 httpd状态页面 使用压缩模块mod_daflate优化速度 基于IP 为每个虚拟主机至少准备一个IP…

    Linux干货 2016-12-21
  • Samba服务

    一 服务端配置 1 安装所需软件 [root@centos7 ~]# yum install samba samba-common -y samba主要提供SMB服务所需的各项服务程序、相关的文件及其他和Samba相关的设置等 samba-common提供服务端和客户端都会用的的数据,包括主配置文件、语法检查等 2 添加Samba用户 添加smb1、smb2…

    Linux干货 2017-06-13
  • Linux之高级文件系统管理

      Linux之高级文件系统管理       Linux高级文件系统管理包括以下内容   一, 磁盘配额quota管理二, 磁盘阵列RAID管理三, 逻辑磁盘LVM管理四, 磁盘LVM快照管理五, Btrfs文件系统管理         配置磁盘配额系统 在内核中执行以…

    Linux干货 2016-09-02
  • Linux中Vim编辑器的使用

    Linux中Vim编辑器的使用 Vim功能介绍 vim是一款功能丰富而强大的文本编辑器,支持语法高亮,支持多窗口编辑,是vi文本编辑器的增强版。如果在CentOS7.2中如果是选择最小化安装,其默认是没有安装vim rpm包的,需要自行安装,可以使用yum工具进行在线安装。  vim至今已经走过了25个春秋,现在8.0版的已经发布了。  …

    Linux干货 2016-12-02
  • Linux常用命令

    一、Linux常用命令(总) 二、Linux常用命令(分) 1、pwd – print name of current/working directory 2、cd – change directory 3、ls – list,dieplay directory content 4、date – pr…

    Linux干货 2016-09-19
  • 揭开链接文件的面纱——从根本上剖析硬链接与软链接异同

    在linux的学习过程中,链接文件的学习让不少人头疼,很多同学往往分不清什么是硬链接,什么是软链接,对于两者的概念和区别常常容易混淆、搞不清楚。今天我们就从原理、从根本上为大家辨析一些两者之间的区别,相信大家在看完这篇文章之后对链接文件会有一个清晰正确的认识。 1、在实现原理上不同 硬链接,涉及到文件的底层模式,因此被称为硬链接文件。硬链接文件只是一个指针指…

    Linux干货 2016-10-20