您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Linux用户系统中的群组与群组管理员

添加时间:2016-4-18 4:03:43  添加: 思海网络 
代码如下:
# /etc/group

  这个档案就是在记录 GID 与群组名称的对应了~我的 /etc/group 内容有点像这样:


代码如下:
  root:x:0:root
  bin:x:1:root,bin,daemon
  daemon:x:2:root,bin,daemon
  sys:x:3:root,bin,adm

  也是以冒号‘:’作为栏位的分隔符号,共分为四栏,每一栏位的意义是:

  1. 群组名称:就是群组名称啦!

  2. 群组密码:通常不需要设定,因为我们很少使用到群组登入! 不过,同样的,密码也是被纪录在 /etc/gshadow 当中啰!

  3. GID:就是群组的 ID 啊~

  4. 支援的帐号名称:加入这个群组里面的所有的帐号, 我们知道,一个使用者是可以加入多个群组的。举例来说,如果我想要让 dmtsai 也加入 root 这个群组,那么在第一行的最后面加上‘,dmtsai’,注意不要有空格, 使成为‘ root:x:0:root,dmtsai’就可以啰~

  比较重要的特色在于第四栏啦,因为每个使用者都可以拥有多个支援的群组, 这就好比在学校念书的时候,我们可以加入多个社团一样! ^_^。 不过这里您或许会觉得奇怪的,那就是:‘假如我同时加入多个群组, 那么我在作业的时候,到底是以那个群组为准?’底下我们就来谈一谈这个‘有效群组’的概念。

  # 有效群组(effective group)与初始群组(initial group)

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



代码如下:
  [root@linux ~]# grep dmtsai /etc/passwd /etc/group /etc/gshadow
  /etc/passwd:dmtsai:x:501:501::/home/dmtsai:/bin/bash
  /etc/group:users:x:100:dmtsai
  /etc/group:dmtsai:x:501:
  /etc/gshadow:users:::dmtsai
  /etc/gshadow:dmtsai:!::

  仔细看到上面这个表格,在 /etc/passwd 里面,dmtsai 这个使用者所属的群组为 GID=501 , 也就是 /etc/group 里头 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)。

  如果我以 dmtsai 这个使用者的身份登入后,该如何知道我所有支援的群组呢? 很简单啊,直接输入 groups 就可以了!注意喔,是 groups 有加 s 呢!结果像这样:



代码如下:
  [dmtsai@linux ~]$ groups
  dmtsai users

  在这个输出的讯息中,我知道我同时属于 dmtsai 及 users 这个两个群组,而且, 第一个输出的群组即为有效群组 (effective group) 了。 也就是说,我的有效群组为 dmtsai 啦~此时,如果我以 touch 去建立一个新档,例如: touch test ,那么这个档案的拥有者为 dmtsai ,而且群组也是 dmtsai 的啦。 这样是否可以瞭解什么是有效群组了?

  那么如何变更有效群组呢?这个有两个方法,不论是那个方法,都是以 newgrp 达成的! 以上面这个例子来说,因为我的 dmtsai 使用者同时拥有 dmtsai 与 users 两个群组,因此, dmtsai 当然可以随时切换 dmtsai/users 成为有效群组啰。所以,我可以下达:



代码如下:
  [dmtsai@linux ~]$ newgrp users
  [dmtsai@linux ~]$ groups
  users dmtsai

  此时,我的有效群组就成为 users 了。当然,要能够顺利切换有效群组的话,还需要 /etc/gshadow 的辅助才行~这个等一下我们会说明的。好了,那么如果你开始在 /home/dmtsai 这个家目录底下尝试建立一个档案,例如‘ touch test2 ’好了,会发生什么状态呢? 呵呵!那个档案的群组竟然变成 users 了!这样更清楚有效群组的意义了吧?!

  我们额外的来讨论一下 newgrp 这个指令,这个指令可以变更目前使用者的有效群组, 而且是另外以一个 shell 来提供登入的喔,所以,以上面的例子来说, dmtsai 这个使用者目前是以另一个 shell 登入的,而且新的 shell 给予 dmtsai 有效 GID 为 users 就是了。当直接执行‘ newgrp groupname ’时,使用者的有效群组会成为 groupname , 此时虽然使用者的环境设定(例如环境变数等等其他资料)不会有影响,但是使用者的‘权限’将会重新被计算。 举例来说, dmtsai 此时建立的新档案群组是 users 了~

  鸟哥的这个例子当中,要注意的是, dmtsai 这个使用者本来就属于 users 与 dmtsai 这两个群组, 所以他可以直接使用 newgrp 来切换有效群组,而要离开新的有效群组时,输入‘ exit ’即可。 假设我的 Linux 系统当中还有另一个群组,名称为 vbird,那么 dmtsai 是否可以登入 vbird 这个群组? 在某些前提下是可以的:

  * vbird 这个群组在 /etc/gshadow 的密码栏为合法的(不具有 ! 开头!);
  * dmtsai 必须让 root 或群组管理员 (group administrator) 加入到 vbird 群组中。

  这两个大前提缺一不可喔!好了,假设我已经使用 gpasswd 建立了 vbird 这个群组的密码, 而 dmtsai 也被加入群组成员当中了,那么当 dmtsai 输入 ‘newgrp vbird’时, 嘿嘿! dmtsai 这个使用者的有效群组就能够变成 vbird 啰~
  # /etc/gshadow
  刚刚讲了很多关于‘有效群组’的概念,另外,也提到 newgrp 这个指令的用法, 但是,如果 /etc/gshadow 这个设定没有搞懂得话,那么 newgrp 是无法动作的呢! 我的 /etc/gshadow 的内容有点像这样:



代码如下:
  root:::root
  bin:::root,bin,daemon
  daemon:::root,bin,daemon
  sys:::root,bin,adm

  同样还是使用冒号‘:’来作为栏位的分隔字元,而且你会发现,这个档案几乎与 /etc/group 一模一样啊!是这样没错~不过,要注意的大概就是第二个栏位吧~第二个栏位是密码栏, 如果密码栏上面是‘!’时,表示该群组不能使用密码来登入呢! 至于第四个栏位也就是支援的帐号名称啰~

  1. 群组名称
  2. 密码栏,同样的,开头为 ! 表示无法登入;
  3. 群组管理员的帐号 (相关资讯在后续介绍)
  4. 该群组的所属帐号 (与 /etc/group 内容相同!)

  不过,就以系统的操作来说,事实上,这个 /etc/gshadow 的密码提供,最大的功能是在于‘ 让那些不在群组中的成员,临时加入该群组用的。 ’ 实际上使用的情况是很少的~而如果真的要操作这样的环境,那就得要熟悉 newgrp 的用法啰! 而且还要提供某个群组的密码出来,真是不好管理。所以,若真的想要让某个使用者利用该群组的功能时, 还是直接将对方加入群组的支援就好了!省得麻烦~


Linux群组管理员
为什么需要群组管理员
我们假设一个场景,一个公司里有好多部门,不同员工需要加入到不同的群组。如果其中一个部门增加员工,就需要通知管理员,将其加入到对应的群组。如果每个部门都要增加员工,那管理员可能每天都会疲于奔命处理各个请求。
这时我们可以针对每个群组设置组长,并允许组长添加删除组成员,这样不仅可以提高效率,还减少了管理员的工作。
如何指派群组管理
语法:


代码如下:gpasswd -A USERNAME GROUPNAME
效果:




在添加群组管理时,可以指定多个用户,多个用户之间需要使用英文逗号隔开。
如何删除群组管理
语法:


代码如下:gpasswd -A "" GROUPNAME
效果:




gpasswd没有特定的参数用于删除群组管理,我们指定空字符串即可。如果组内有多个管理员,指定保留用户即可。
群组管理添加成员
语法:


代码如下:gpasswd -a USERNAME GROUPNAME
效果:




群组管理删除成员
语法:


代码如下:gpasswd -d USERNAME GROUPNAME

关键字:Linux、系统、管理员
分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站