zoukankan      html  css  js  c++  java
  • Linux 有效用户组(effective group)与初始用户组(initial group)(参考鸟哥私房菜)

    还记得每个使用者在他的 /etc/passwd 里面的第四栏有所谓的 GID 吧?那个 GID 就是所谓的『初始用户组 (initial group) 』!也就是说,当用户一登陆系统,立刻就拥有这个用户组的相关权限。 举例来说,我们上面提到 dmtsai 这个使用者的 /etc/passwd 与 /etc/group 还有 /etc/gshadow 相关的内容如下:

    [root@www ~]# usermod -G users dmtsai  <==先配置好次要群组
    [root@www ~]# grep dmtsai /etc/passwd /etc/group /etc/gshadow
    /etc/passwd:dmtsai:x:503:504::/home/dmtsai:/bin/bash
    /etc/group:users:x:100:dmtsai  <==次要群组的配置
    /etc/group:dmtsai:x:504:       <==因为是初始群组,所以第四字段不需要填入账号
    /etc/gshadow:users:::dmtsai    <==次要群组的配置
    /etc/gshadow:dmtsai:!::

    在 /etc/passwd 里面,dmtsai 这个使用者所属的用户组为 GID=504 ,搜寻一下 /etc/group 得到 504 是那个名为 dmtsai 的用户组, initial group。因为是初始用户组, 使用者一登陆就会主动取得,不需要在 /etc/group 的第四个字段写入该账号。

    但非 initial group 的其他用户组可就不同。举上面这个例子来说,我将 dmtsai 加入 users 这个用户组当中,由于 users 这个用户组并非是 dmtsai 的初始用户组,因此, 必须要在 /etc/group 这个文件中,找到 users 那一行,并且将 dmtsai 这个账号加入第四栏, 这样 dmtsai 才能够加入 users 这个用户组。

    那么在这个例子当中,因为我的 dmtsai 账号同时支持 dmtsai 与 users 这两个用户组, 因此,在读取/写入/运行文件时,针对用户组部分,只要是 users 与 dmtsai 这两个用户组拥有的功能, 我 dmtsai 这个使用者都能够拥有喔!这样瞭呼?不过,这是针对已经存在的文件而言, 如果今天我要创建一个新的文件或者是新的目录,请问一下,新文件的用户组是 dmtsai 还是 users ?呵呵!这就得要检查一下当时的有效用户组了 (effective group)。

    groups: 有效与支持用户组的观察

    以 dmtsai 这个使用者的身份登陆后,该如何知道我所有支持的用户组呢? 直接输入 groups。结果像这样:

    [dmtsai@www ~]$ groups
    dmtsai users

    dmtsai 用户同时属于 dmtsai 及 users 这个两个用户组,而且, 第一个输出的用户组即为有效用户组 (effective group) 了。dmtsai 有效用户组为 dmtsai 。如果以 touch 去创建一个新档,例如: 『 touch test 』,文件的拥有者为 dmtsai ,而且用户组也是 dmtsai 。

    [dmtsai@www ~]$ touch test
    [dmtsai@www ~]$ ll
    -rw-rw-r-- 1 dmtsai dmtsai 0 Feb 24 17:26 test

    newgrp: 有效用户组的切换

    那么如何变更有效用户组呢?就使用 newgrp。但是使用 newgrp 是有限制的,那就是要切换的用户组必须是你已经有支持的用户组。举例来说, dmtsai 可以在 dmtsai/users 这两个用户组间切换有效用户组,但是 dmtsai 无法切换有效用户组成为 sshd 啦!使用的方式如下:

    [dmtsai@www ~]$ newgrp users
    [dmtsai@www ~]$ groups
    users dmtsai
    [dmtsai@www ~]$ touch test2
    [dmtsai@www ~]$ ll
    -rw-rw-r-- 1 dmtsai dmtsai 0 Feb 24 17:26 test
    -rw-r--r-- 1 dmtsai users  0 Feb 24 17:33 test2

    此时,dmtsai 的有效用户组就成为 users 了。  newgrp 这个命令可以变更目前用户的有效用户组, 而且是另外以一个 shell 来提供这个功能,所以,dmtsai 这个使用者目前是以另一个shell 登陆的,而且新的 shell 给予 dmtsai 有效 GID 为 users 。如果以图示来看就是如下所示:

    newgrp 的运行示意图
    图 1.3.2 、newgrp 的运行示意图

    虽然用户的环境配置(例如环境变量等等其他数据)不会有影响,但是使用者的『用户组权限』将会重新被计算。 但是需要注意,由于是新取得一个 shell ,因此如果想要回到原本的环境中,请输入 exit 回到原本的 shell 喔!

    加入一个用户组有两个方式:一个是透过系统管理员 (root) 利用 usermod 加入,如果 root 太忙了而且你的系统有配置用户组管理员,那么你可以透过用户组管理员以 gpasswd 帮你加入他所管理的用户组中。

  • 相关阅读:
    Oracle 11g安装过程工作Oracle数据库安装图解
    Anaconda和虚拟环境
    NLP(三)
    Spring Cloud
    Flink 更新中
    Hadoop(四)小项目练习 更新中
    大数据环境搭建
    zookeeper
    .net(四) winform应用程序
    负载均衡中间件(二)LVS负载均衡软件和基于云计算平台的架构
  • 原文地址:https://www.cnblogs.com/bigrabbit/p/2725159.html
Copyright © 2011-2022 走看看