关于Linux群组问题

使用者与群组与其他人

  1. 文件拥有者

    初次接触Linux的朋友大概会觉得很怪异,怎么『Linux有这么多使用者, 还分什么群组,有什么用?』。这个『用户与群组』的功能可是相当健全而好用的一个安全防护呢!怎么说呢? 由于Linux是个多人多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生, 为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个『文件拥有者』的角色就显的相当的重要了!

    例如当你将你的e-mail情书转存成文件之后,放在你自己的家目录,你总不希望被其他人看见自己的情书吧? 这个时候,你就把该文件设定成『只有文件拥有者,就是我,才能看与修改这个文件的内容』, 那么即使其他人知道你有这个相当『有趣』的文件,不过由于你有设定适当的权限, 所以其他人自然也就无法知道该文件的内容啰!


  2. 群组概念

    那么群组呢?为何要配置文件案还有所属的群组?其实,群组最有用的功能之一,就是当你在团队开发资源的时候啦! 举例来说,假设有两组专题生在我的主机里面,第一个专题组别为projecta,里面的成员有 class1, class2, class3三个;第二个专题组别为projectb,里面的成员有class4, class5, class6。 这两个专题之间是有竞争性质的,但却要缴交同一份报告。每组的组员之间必须要能够互相修改对方的数据, 但是其他组的组员则不能看到本组自己的文件内容,此时该如何是好?

    在Linux底下这样的限制是很简单啦!我可以经由简易的文件权限设定,就能限制非自己团队(亦即是群组啰) 的其他人不能够阅览内容啰!而且亦可以让自己的团队成员可以修改我所建立的文件! 同时,如果我自己还有私人隐密的文件,仍然可以设定成让自己的团队成员也看不到我的文件数据。 很方便吧!

    另外,如果teacher这个账号是projecta与projectb这两个专题的老师, 他想要同时观察两者的进度,因此需要能够进入这两个群组的权限时,你可以设定teacher这个账号, 『同时支持projecta与projectb这两个群组!』,也就是说:每个账号都可以有多个群组的支持呢

    这样说或许你还不容易理解这个使用者与群组的关系吧?没关系,我们可以使用目前『家庭』的观念来进行解说喔! 假设有一家人,家里只有三兄弟,分别是王大毛、王二毛与王三毛三个人, 而这个家庭是登记在王大毛的名下的!所以,『王大毛家有三个人,分别是王大毛、王二毛与王三毛』, 而且这三个人都有自己的房间,并且共同拥有一个客厅喔!

    • 使用者的意义:由于王家三人各自拥有自己的房间,所以, 王二毛虽然可以进入王三毛的房间,但是二毛不能翻三毛的抽屉喔!那样会被三毛K的! 因为抽屉里面可能有三毛自己私人的东西,例如情书啦,日记啦等等的,这是『私人的空间』,所以当然不能让二毛拿啰! 

    • 群组的概念:由于共同拥有客厅,所以王家三兄弟可以在客厅打开电视机啦、 翻阅报纸啦、坐在沙发上面发呆啦等等的! 反正,只要是在客厅的玩意儿,三兄弟都可以使用喔! 因为大家都是一家人嘛!

    这样说来应该有点晓得了喔!那个『王大毛家』就是所谓的『群组』啰, 至于三兄弟就是分别为三个『使用者』,而这三个使用者是在同一个群组里面的喔! 而三个使用者虽然在同一群组内,但是我们可以设定『权限』, 好让某些用户个人的信息不被群组的拥有者查询,以保有个人『私人的空间』啦! 而设定群组共享,则可让大家共同分享喔!

  3. 其他人的概念

    好了,那么今天又有个人,叫做张小猪,他是张小猪家的人,与王家没有关系啦! 这个时候,除非王家认识张小猪,然后开门让张小猪进来王家,否则张小猪永远没有办法进入王家, 更不要说进到王三毛的房间啦!不过,如果张小猪透过关系认识了三毛,并且跟王三毛成为好朋友, 那么张小猪就可以透过三毛进入王家啦!呵呵!没错!那个张小猪就是所谓的『其他人,Others』啰!

    因此,我们就可以知道啦,在Linux里面,任何一个文件都具有『User, Group及Others』三种身份的个别权限, 我们可以将上面的说明以底下的图示来解释:

    每个文件的拥有者、群组与 others 的示意图
    图1.1、每个文件的拥有者、群组与其他人的示意图

    我们以王三毛为例,王三毛这个『文件』的拥有者为王三毛,他属于王大毛这个群组, 而张小猪相对于王三毛,则只是一个『其他人(others)』而已。

    不过,这里有个特殊的人物要来介绍的,那就是『万能的天神』!这个天神具有无限的神力, 所以他可以到达任何他想要去的地方,呵呵!那个人在Linux系统中的身份代号是『 root 』啦!所以要小心喔!那个root可是『万能的天神』喔!

    无论如何,『使用者身份』,与该使用者所支持的『群组』概念,在Linux的世界里面是相当的重要的, 他可以帮助你让你的多任务Linux环境变的更容易管理!更详细的 『身份与群组』 设定,我们将在第十四章、账号管理再进行解说。 底下我们将针对文件系统与文件权限来进行说明。

-----------------------------------------------------------------------------------------------------------------


 一、 单个账户管理


    先说说账号的组成。每一个帐户都有拥有人和拥有组群两个属性,所以每个登陆的使用者至少有两个ID,即UID(User ID)和GID(Group ID)。所有用户的ID都存放在/etc/passwd 中 例如 

    fsy:x:500:500:Fedora:/home/fsy:/bin/bash 

    信息内容依次为:用户名、密码(一个形式)、UID(UID为0时为root权限)、GID、用户信息说明栏、家目录、Shell。用户登陆的过程是这样的:首先在/etc/passwd中寻找是否有相应的帐号,如果没有则跳出,如果有的话则将该账号对应的UID 与GID 读出来,另外,该账号的家目录与shell 设定也一并读出。然后核对在/etc/shadow对应帐号的密码。最终进入shall。shadow的文件内容是这样:

fsy:$1$giEMo6.Y$rY2i/S7K2UXHTvxJ.VuEL.:15201:0:99999:7:::

   其中前两项为帐户名和密码。在这有这样一个技巧:root密码忘记,不需要重装系统的,可以重新启动,进入单人维护模式,删掉第二个值,保存再重启root就可以不用密码登陆了,然后通过passwd指令设置root密码即可。

 

二、群组管理


   当用户登陆时可以用groups命令查询自己的所属的群组。群组的信息存储在两个文件,即/etc/group 与 /etc/gshadow 中。先看下group的文件结构吧:

root:x:0:root,admin

fsy:x:500:  

  字段的含义依次为:组名、群组密码(形式上的)、GID(与/etc/passwd相对应)、此群组组员的帐号(不能有空格)。每一个用户都有GID也就意味着每一个用户都能有一个群组。

   gshadow文件结构大体如下:

root:::root

fsy:!::

  字段含义依次为:组名、密码栏(开头为!表示无合法密码,所以无群组管理员)、群组管理员帐号、在群组组员帐号(与/etc/group内容相同)。从系统管理员的角度说,gshadow最大的功能就是建立群组管理员了。


三、帐号的管理


  1、新增用户:我们登入系统时会输入账号和密码, 所以建立一个可用的账号同样也需要这两个数据。账号可以使用 useradd 来新建用户,密码可以使用 passwd 这个命令。

            新建一个帐号abc,并设置密码

[root@localhost etc]# useradd abc
[root@localhost etc]# ll -d /home/abc
drwx------. 4 abc abc 4096  8月 18 21:01 /home/abc
[root@localhost etc]# grep abc /etc/passwd /etc/shadow /etc/group
/etc/passwd:abc:x:502:502::/home/abc:/bin/bash
/etc/shadow:abc:!!:15204:0:99999:7:::
/etc/group:abc:x:502:
[root@localhost etc]# passwd abc
更改用户 abc 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@localhost etc]# grep abc /etc/passwd /etc/shadow /etc/group
/etc/passwd:abc:x:502:502::/home/abc:/bin/bash
/etc/shadow:abc:$1$j45I2Azy$IrVJH7.c0meZ8jT1OK0WO0:15204:0:99999:7:::
/etc/group:abc:x:502:

[root@localhost etc]# 

2、删除用户 : 

[root@localhost etc]# userdel -r abc

3、更改用户:

           更改abc的说明栏,加上”I'm abc"

[root@localhost etc]# usermod -c "I'm abc" abc 
[root@localhost etc]# grep abc /etc/passwd
abc:x:502:502:I'm abc:/home/abc:/bin/bash
[root@localhost etc]#

4、新增群组:

           新建一个名为“group"的群组

[root@localhost etc]# groupadd group1
[root@localhost etc]# grep group1 /etc/group /etc/gshadow
/etc/group:group1:x:503:
/etc/gshadow:group1:!::
[root@localhost etc]# 

5、更改群组:

           将刚才建立的group1名称改为 mygroup ,GID为205

 [root@localhost etc]# groupmod -g 205 -n mygroup group1
[root@localhost etc]# grep mygroup /etc/group /etc/gshadow
/etc/group:mygroup:x:205:
/etc/gshadow:mygroup:!::
[root@localhost etc]# 

6、删除群组:

[root@localhost etc]# groupdel mygroup

7、创建群组管理员:

         建立一个群组名为“testgroup",设置"abc"为管理员

[root@localhost fsy]# groupadd testgroup
[root@localhost fsy]# gpasswd testgroup
Changing the password for group testgroup
New Password: 
Re-enter new password: 
[root@localhost fsy]# gpasswd -A abc testgroup
[root@localhost fsy]# grep testgroup /etc/group /etc/gshadow
/etc/group:testgroup:x:503:
/etc/gshadow:testgroup:$1$CMO704v6$30Zuj9iYxKu9gd5TrmUWs/:abc:
[root@localhost fsy]# 

8、管理员添加组成员:

          以abc登陆,加zbw进入testgroup组

[zbw@localhost fsy]$ su abc
[abc@localhost fsy]$ gpasswd -a zbw testgroup
Adding user zbw to group testgroup
[abc@localhost fsy]$ grep testgroup /etc/group
testgroup:x:503:zbw
[abc@localhost fsy]$ 






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值