5.1 使用者与群组

经过第四章的洗礼之后,你应该可以在Linux的命令行界面下面输入指令了吧? 接下来,当然是要让你好好的浏览一下Linux系统里面有哪些重要的文件啰。 不过,每个文件都有相当多的属性与权限,其中最重要的可能就是文件的拥有者的概念了。 所以,在开始文件相关信息的介绍前,鸟哥先就简单的(1)使用者及(2)群组与(3)非本群组外的其他人等概念作个说明吧~ 好让你快点进入状况的哩! ^_^

  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 的示意图图5.1.1、每个文件的拥有者、群组与 others 的示意图我们以王三毛为例,王三毛这个“文件”的拥有者为王三毛,他属于王大毛这个群组, 而张小猪相对于王三毛,则只是一个“其他人(others)”而已。

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

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

鸟哥的图示

Tips 现在 (2015年) 鸟哥常以台湾地区常见的社群网站 Facebook 或者是 Google+ 作为解释。(1)你在 FB 注册一个帐号,这个帐号可以叠代对比为 Linux 的帐号, (2)你可以新增一个社团,这个社团的隐私权是可以由您自己指定的!看是要公开还是要隐藏。这就可以叠代为 Linux 的群组概念,这个群组的权限可以自己设置。 (3)那么其他在 FB 注册的人,没有加入你的社团,他就是 Linux 上所谓的“其他人”!最后,在 FB 上面的每一条留言,就可以想成 Linux 下面的“文件”啰!

鸟哥的图示

Tips 那么上面内文谈到的群组有啥帮助呢?想想看,你在 FB 上面,你的 StudyArea 社团是隐藏的,你想让 dmtsai 可以进来读取每一个留言 (想成是 file), 最简单的作法是什么?对!让 dmstai 加入这个社团即可!没错!只要让 Linux 某个帐号加入某个群组,该帐号就可以使用该群组能够存取的资源! 每个帐号可以加入的群组个数基本上是没有限制的!

  • Linux 使用者身份与群组记录的文件

在我们Linux系统当中,默认的情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。 此外,Linux所有的群组名称都纪录在/etc/group内!这三个文件可以说是Linux系统里面帐号、密码、群组信息的集中地啰! 不要随便删除这三个文件啊! ^_^

至于更多的与帐号群组有关的设置,还有这三个文件的格式,不要急,我们在第十三章的帐号管理时,会再跟大家详细的介绍的!这里先有概念即可。