注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谷搜互联网应用www.iguso.com

谷搜专注企业邮箱十二年

 
 
 

日志

 
 

gpasswd:群组管理员功能  

2014-07-23 13:53:04|  分类: Linux技术文章 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

gpasswd:群组管理员功能

  如果系统管理员太忙碌了,导致某些帐号想要加入某个专案时找不到人帮忙!这个时候可以建立『群组管理员』O! 什么是群组管理员呢?就是让某个群组具有一个管理员,这个群组管理员可以管理哪些帐号可以加入/移出该群组! 那要如何『建立一个群组管理员』呢?就得要透过 gpasswd 罗!

  # 关于系统管理员(root)做的动作:

  [root@www ~]# gpasswd groupname

  [root@www ~]# gpasswd [-A user1,...] [-M user3,...] groupname

  [root@www ~]# gpasswd [-rR] groupname

  选项与参数:

  :若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow)

  -A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员)

  -M :将某些帐号加入这个群组当中谷搜外贸企业邮箱!

  -r :将 groupname 的密码移除

  -R :让 groupname 的密码栏失效

  # 关于群组管理员(Group administrator)做的动作:

  [someone@www ~]$ gpasswd [-ad] user groupname

  选项与参数:

  -a :将某位使用者加入到 groupname 这个群组当中!

  -d :将某位使用者移除出 groupname 这个群组当中。

  例子一:建立一个新群组,名称为 testgroup 且群组交由 vbird1 管理:

  [root@www ~]# groupadd testgroup <==先建立群组

  [root@www ~]# gpasswd testgroup <==给这个群组一个密码吧!

  Changing the password for group testgroup

  New Password:

  Re-enter new password:

  # 输入两次密码就对了!

  [root@www ~]# gpasswd -A vbird1 testgroup <==加入群组管理员为 vbird1

  [root@www ~]# grep testgroup /etc/group /etc/gshadow

  /etc/group:testgroup:x:702:

  /etc/gshadow:testgroup:$1$I5ukIY1.$o5fmW.cOsc8.K.FHAFLWg0:vbird1:

  # 很有趣吧!此时 vbird1 则拥有 testgroup 的主控权O!身份有点像板主啦!

  例子二:以 vbird1 登入系统,并且让他加入 vbird1, vbird3 成为 testgroup 成员

  [vbird1@www ~]$ id

  uid=504(vbird1) gid=505(vbird1) groups=505(vbird1) ....

  # 看得出来,vbird1 尚未加入 testgroup 群组O!

  [vbird1@www ~]$ gpasswd -a vbird1 testgroup

  [vbird1@www ~]$ gpasswd -a vbird3 testgroup

  [vbird1@www ~]$ grep testgroup /etc/group

  testgroup:x:702:vbird1,vbird3

  很有趣的一个小实验吧!我们可以让 testgroup 成为一个可以公开的群组,然后建立起群组管理员, 群组管理员可以有多个。在这个案例中,我将 vbird1 设定为 testgroup 的群组管理员,所以 vbird1 就可以自行增加群组成员罗~呼呼!然后,该群组成员就能够使用 newgrp 罗~

  帐号管理实例

  帐号管理不是随意建置几个帐号就算了!有时候我们需要考量到一部主机上面可能有多个帐号在协同工作! 举例来说,在大学任教时,我们学校的专题生是需要分组的,这些同一组的同学间必须要能够互相修改对方的资料档案, 但是同时这些同学又需要保留自己的私密资料,因此直接公开家目录是不适宜的。那该如何是好? 为此,我们底下提供几个例子来让大家思考看看罗:

  任务一:单纯的完成上头交代的任务,假设我们需要的帐号资料如下,你该如何实作谷搜企业邮箱?

  帐号名称帐号全名支援次要群组是否可登入主机密码

  myuser11st usermygroup1可以password

  myuser22nd usermygroup1可以password

  myuser33rd user无额外支援不可以password

  处理的方法如下所示:

  # 先处理帐号相关属性的资料:

  [root@www ~]# groupadd mygroup1

  [root@www ~]# useradd -G mygroup1 -c "1st user" myuser1

  [root@www ~]# useradd -G mygroup1 -c "2nd user" myuser2

  [root@www ~]# useradd -c "3rd user" -s /sbin/nologin myuser3

  # 再处理帐号的密码相关属性的资料:

  [root@www ~]# echo "password" | passwd --stdin myuser1

  [root@www ~]# echo "password" | passwd --stdin myuser2

  [root@www ~]# echo "password" | passwd --stdin myuser3

  要注意的地方主要有:myuser1 与 myuser2 都有支援次要群组,但该群组不见得会存在,因此需要先手动建立他! 然后 myuser3 是『不可登入系统』的帐号,因此需要使用 /sbin/nologin 这个 shell 来给予,这样该帐号就无法登入罗! 这样是否理解啊!接下来接下来讨论比较难一些的环境!如果是专题环境该如何制作?

  任务二:我的使用者 pro1, pro2, pro3 是同一个专案计画的开发人员,我想要让这三个用户在同一个目录底下工作, 但这三个用户还是拥有自己的家目录与基本的私有群组。假设我要让这个专案计画在 /srv/projecta 目录下开发, 可以如何进行?

  # 1. 假设这三个帐号都尚未建立,可先建立一个名为 projecta 的群组,

  # 再让这三个用户加入其次要群组的支援即可:

  [root@www ~]# groupadd projecta

  [root@www ~]# useradd -G projecta -c "projecta user" pro1

  [root@www ~]# useradd -G projecta -c "projecta user" pro2

  [root@www ~]# useradd -G projecta -c "projecta user" pro3

  [root@www ~]# echo "password" | passwd --stdin pro1

  [root@www ~]# echo "password" | passwd --stdin pro2

  [root@www ~]# echo "password" | passwd --stdin pro3

  # 2. 开始建立此专案的开发目录:

  [root@www ~]# mkdir /srv/projecta

  [root@www ~]# chgrp projecta /srv/projecta

  [root@www ~]# chmod 2770 /srv/projecta

  [root@www ~]# ll -d /srv/projecta

  drwxrws--- 2 root projecta 4096 Feb 27 11:29 /srv/projecta

  由于此专案计画只能够给 pro1, pro2, pro3 三个人使用,所以 /srv/projecta 的权限设定一定要正确才行! 所以该目录群组一定是 projecta ,但是权限怎么会是 2770 呢还记得第七章谈到的 SGID 吧?为了让三个使用者能够互相修改对方的档案, 这个 SGID 是必须要存在的O!如果连这里都能够理解,嘿嘿!您的帐号管理已经有一定程度的概念罗!

  但接下来有个困扰的问题发生了!假如任务一的 myuser1 是 projecta 这个专案的助理,他需要这个专案的内容, 但是他『不可以修改』专案目录内的任何资料!那该如何是好?你或许可以这样做:

  将 myuser1 加入 projecta 这个群组的支援,但是这样会让 myuser1 具有完整的 /srv/projecta 的使用权限, myuser1 是可以删除该目录下的任何资料的!这样是有问题的美国空间;

  将 /srv/projecta 的权限改为 2775 ,让 myuser1 可以进入查阅资料。但此时会发生所有其他人均可进入该目录查阅的困扰! 这也不是我们要的环境。

  真要命!传统的 Linux 权限无法针对某个个人设定专属的权限吗?其实是可以啦!接下来我们就来谈谈这个功能吧!

  评论这张
 
阅读(7)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017