使用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

相关推荐

  • Zabbix通过邮件报警

                    Zabbix通过邮件报警 前言 本篇文章转自我的个人博客 http://anyisalin.com 欢迎大家访问 这次的内容大部分都是操作, 但是大家需要对定…

    2016-05-13
  • YUM工具的工作原理、用法及源 码包的编译安装

    YUM工具的工作原理,用法及源码包的编译安装 _ueditor_page_break_tag_ 一、 CentOS: yum, dnf       1.YUM: (Yellow dogUpdate Modifier),rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具   …

    Linux干货 2016-09-01
  • grep,egrep及相应的正则表达式用法详解

    目录 1、grep简介     1.1、grep是什么     1.2、grep使用格式     1.3、grep常用选项 2、正则表达式与grep     2.1、正则表达式简介  &nb…

    系统运维 2016-08-22
  • N22-第24周博客作业——-虚拟化技术

    虚拟化技术—基础(1) 本文围绕下面3个问题进行对虚拟化技术展开讨论: 1、虚拟化技术实现方式有哪些?虚拟化技术分哪些? 2、请分别通过kvm、xen工具来实现虚拟化系统的部署? 3、请描述openstack、kvmqemu-kv、libvirt及xen之间的关系。 虚拟化诞生和发展     1961年 IBM709…

    Linux干货 2016-10-17
  • fstab配置文件、swap分区,文件关联

    fstab配置文件、swap分区,文件关联,lvm 挂载点和/etc/fstab  配置文件系统体系  被mount、 fsck和其它程序使用  系统重启时保留文件系统体系  可以在设备栏使用文件系统卷标  使用mount -a 命令挂载/etc/fstab中的所有文件…

    Linux干货 2016-09-01
  • linux命令格式和常用命令

    Linxu命令使用格式 ~]#COMMAND OPTIONS ARGUMENTS CMMMAND:发起一命令:请求内核将某个二进制程序运行为一个进程; OPTIONS:指定命令的运行特性; 短选项:-C, 例如-l, -d 注意:有些命令的选项没有-; 如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld 长选项:–word, 例如…

    Linux干货 2018-03-04