Linux一般将文件可存取訪问的身份分为3个类别:owner、group、others。且3种身份各有read、write、execute等权限。
一、用户和用户组
1、文件全部者
由于Linux是多用户、多任务的操作系统。因此可能经常有多人同一时候在某台主机上工作。但每一个人均可在主机上设置文件的权限。让其成为个人的“私密文件”,即个人全部者。由于设置了适当的文件权限,除本人(文件全部者)之外的用户无法查看文件内容。
比如某个MM给你发了一封Email情书,你将情书转为文件之后存档在自己的主目录中。为了不让别人看到情书的内容,你就能利用全部者的身份去设置文件的适当权限,这样,即使你的情敌想偷看你的情书内容也是做不到的。
2、用户组
用户组最实用的功能就体如今多个团队在同一台主机上开发资源的时候。比如主机上有A、B两个团体,A中有a1,a2,a3三个成员。B中有b1,b2两个成员,这两个团体要共同完毕一份报告F。
因为设置了适当的权限。A、B团体中的成员都能互相改动对方的数据。可是团体C的成员则不能改动F的内容,甚至连查看的权限都没有。同一时候,团体的成员也能设置自己的私密文件,让团队的其他成员也读取不了文件数据。
在Linux中,每一个账户支持多个用户组。如用户ab1就可以属于A用户组。也能属于B用户组。
3、其它人
这个是个相对概念。
打个例如,大明、二明、小明一家三兄弟住在一间房。房产证上的登记者是大明,那么。大明一家就是一个用户组,这个组有大明、二明、小明三个成员。另外有个人交张三。和他们三没有关系,那么这个张三就是其它人了。
同一时候。大明、二明、小明有各自的房间,三者尽管能自由进出各自的房间。可是小明不能让大明看到自己的情书、日记等。这就是文件全部者(用户)的意义。
4、超级用户
在Linux中,另一个神一样存在的用户,就是root。之所以陈伟超级用户,由于在全部用户中它拥有最大的权限 ,也管理着普通用户。
5、相关文件
在Linux系统中,默认的系统账户和普通账户信息记录在/etc/passwd文件里,个人password在/etc/shadow文件下,用户组名称记录在/etc/group。所以,这三个文件是不能随便删的。
二、Linux文件权限的概念
要设置权限,就须要知道文件的一些基本属性和权限的分配规则。在Linux中。ls命令经常使用来查看文件的属性。ls是list的缩写,用于显示文件的文件名称和相关属性。
[[email protected] ~]# ls -al total 45 drwxr-x--- 4 root root 4096 Sep 8 14:06 -rw-r--r-- 1 root root 43043 Sep 4 18:34 test.txt
含义例如以下
第一个字符[d]代表该文件是一个文件夹,[-]代表该文件是一个普通文件。test.txt是文件名称,[l]是连接文件,[b]是设备文件等。
如前文所说,Linux中存在用户、用户组和其它人概念,各自有不同的权限,对于一个文件来说。其权限详细分配例如以下:
权限分配中,均是rwx的三个參数组合,且位置顺序不会变化。
没有相应权限就用 – 取代。
三、改变文件属性和权限
Linux中有几个经常使用于用户组、全部者和各种身份的权限的改动的命令:
- chgrp:改变文件所属用户组
- chown:改变文件全部者
- chmod:改变文件权限
1、改变所属用户组
直接用chgrp即可,它是change group是缩写。只是,要被改变的组名必须在/etc/group文件内存在才行,否则出错。
[[email protected] ~]# chgrp [-R] 文件名称/文件夹名 —R:进行递归。可改动子文件夹下的文件
2、改变文件全部者
change owner的缩写是chown。用于改变全部者。只是,username必须存在于/etc/passwd文件内。
[[email protected] ~]# chown [-R] 账号名称 文件名称/文件夹名 [[email protected] ~]# chown [-R] 账号名称:组名 文件名称/文件夹名 —R:进行递归。可改动子文件夹下的文件
3、改变权限
文件权限的改变通常是用chmod命令,权限的设置方法有两种:
3.1 数字类型改变文件权限
Linux的基本权限有9个。即owner、group、others三种身份各有自己的r/w/x权限,三个为一组。各权限相应的数字是:r—>4,w—>2,x—>1.
每种身份(owner、group、others)的三个权限(r/w/x)分数是累加的,如-rw-r–r–转换数字是:
owner=rw-=4+2+0=6 group=r–=4+0+0=4 others=r–=4+0+0=4,所以该文件的权限数字是644
[[email protected] ~]# chmod [-R] xyz 文件名称/文件夹名 xyz:数字类型的权限属性,为rwx属性数值的相加 —R:进行递归。可改动子文件夹下的文件 ##改动test.txt的权限为777 [[email protected] ~]# chmod 777 test.txt
3.2 符号类型改变文件权限
这样的方式就是用u,g,o来代表三种身份的权限,此外a代表all。即所有身份(owner、group、others)
##改动test.txt的权限为rwxr-xr-x [[email protected] ~]# chmod u=rwx,go=rx test.txt ##去掉test.txt全部身份的x权限 [[email protected] ~]# chmod a-x test.txt ##再加入test.txt全部身份的x权限 [[email protected] ~]# chmod a+x test.txt
四、文件夹和文件的权限意义
1、权限对文件的重要性
- r(read):读取文件内容,如读取文本的文字内容等
- w(write):能够编辑、新增、改动文件的内容(但不含删除该文件)
- x(execute):具有被系统运行的权限。
注意:在Linux中。文件能否否被运行是由文件是否具有x权限决定的。与文件名称的扩展名无关。
2、权限对文件夹的重要性
- r(read contents in directory):具有读取文件夹结构列表的权限。与用户是否能进入该文件夹无关。
- w(modify contents of directory):具有更改该文件夹结构列表的权限。包含新建文件或文件夹、删除文件和文件夹(不论该文件权限怎样)、对文件或文件夹进行重命名、转移文件或文件夹位置。
- x(execute directory):具有进入该文件夹的权限,使该文件夹成为工作文件夹,即眼下所在的文件夹。假设没有x权限。即使有r权限,也无法切换到该文件夹运行该文件夹下的命令。