linux中的群组与权限

使用者与群组

1.档案拥有者

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

例如将你的email情书转换为档案之后,放在自己的家目录,你总不希望被其他人看到自己的情书吧。这个时候,你就把该档案设定成只有档案拥有者,也就是我,才能看到这个档案的内容,那么即使其他人知道你有这个相当有趣的档案,不过由于你有设定适当的权限,所以其他人自然也就无法知道该档案的内容了。

2.群组概念

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

在linux下这样的限制是很简单的,我们可以由简易的档案权限设定,就能限制非自己团队(亦即是群组)的其他人不能查阅内容奥。而且可以让自己的团队成员修改我所建立的档案。如果我自己还有私人的隐秘文件,仍然可以设定成让自己的团队成员也看不到我的档案数据。

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

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

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

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

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

3.其他人的概念

好了,那么今天又有个人,叫做张小猪,他是张小猪家的人,与王家没有关系啦! 这个时候,除非王家认识张小猪,然后开门让张小猪进来王家,否则张小猪永远没有办法进入王家, 更不要说进到王三毛的房间啦!不过,如果张小猪透过关系认识了三毛,并且跟王三毛成为好朋友,那么张小猪就可以透过三毛进入王家啦!呵呵!没错!那个张小猪就是所谓的『其他人linux中的群组与权限_第1张图片
因此,我们就可以知道,在linux里面,任何一个档案都具有User,Group以及Other。
我们以王三毛为例,王三毛这个档案的拥有者为王三毛,它属于王大毛这个群组,而张小猪相对于王三毛,则只是一个『其他人Other』而已。
不过,这里有个特殊的人物来介绍,那就是万能的天神,这个天神具有无限的神力,所以他可以到达任何他想要去的地方,呵呵,这个身份就是root。

Linux用户身份与群组记录的档案
在我们linux系统中,默认情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关信息,都是记录在/etc/passwd这个档案内的。至于个人密码都是记录在/etc/shadow这个档案内的。此外,linux所有的组名都记录在/etc/group内!

linux档案权限概念

大致了解 了linux的使用者与群组之后,接着下来,我们要来谈谈,这个档案的权限要如何针对这些所谓使用者和群组来设定呢。这个部分相当的重要,因为档案的权限与属性是学习linux的一个重要的关卡,如果没有这部分的概念,那将会很困难。

Linux文件属性
既然要了解linux的文件属性,那么有个重要的也是常用的指令要先说一下罗。那就是ls查看档案的指令。在你以root的身份登陆linux后,下达ls -al看到:

linux中的群组与权限_第2张图片

linux中的群组与权限_第3张图片

ls是list的意思,重点在显示文件的档案名与属性,而选项-al则表示列出所有档案的权限与属性(包含隐藏文件,就是文件名的第一个字符为.的档案),如上所表示,第一次以root身份登陆linux时,如果输入上述指令之后,应该有上列几个东西,先解释以下上面7个子段分别的意思:

linux中的群组与权限_第4张图片

第一栏代表这个档案的类型和权限(permission):
这个地方需要特别注意了,仔细看的话,你应该可以发现这一栏目共有10个字符

linux中的群组与权限_第5张图片

第一个字符代表这个档案是目录/档案/链接文件等等

当为d则是目录,例如上表档名为.gconf的那一行;
当为-则是档案,例如上表档名为install.log那一行;
若是l则表示为链接(link file)
若是b则表示为装置文件里面的可供存储的借口设备(可随机存取装置)
若是c则表示为装置文件里面的串行端口设备,例如键盘/鼠标(一次性读取装置)

接下来的字符中,以三个分为一组,且均为rwx的三个参数组合,其中r代表可读,w代表可写,x代表可执行。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现-而已。

第一组为档案拥有者的权限,以install.log那个档案为例,该档案的拥有者可以读写,但是不可执行。
第二组为同群组的权限
第三组为其他分群组的权限

第二栏表示有多少档名链接到此节点(i-node)

每个档案都会将他的权限与属性记录到文件系统的i-node中,不过,我们使用的目录树却是使用文件名来记录,因此每个档名就会连接到一个i-node。这个属性记录的,就是有多少不同的档名连接到相同的i-node号码就是了。

第三栏表示这个档案(或者目录)的拥有者帐号

第四栏表示这个档案的所属群组

在linux系统中,你的帐号会附属于一个或者多个的群组中。举我们刚刚提到的例子,class1,class2,class3三人对于该档案都具有可读可写可执行的权限(看群组权限)。但如果不属于projecta的其他帐号,对于此档案就不具有任何权限了。

第五个为这个档案的容量大小,默认单位为bytes;

第六个栏为这个档案的建档日期

第七栏为这个档案的档名

你可能感兴趣的:(linux)