本篇是对 RH134小结(三)文件权限与ACL 篇的增补 。虽然文件与目录的权限部分比较基础,不过只是看起来比较简单,很多老鸟也都在这上面犯错 。这里分别对文件和目录进行说明。

一、rwx权限于文件的意义

rwx的权限定义如下,这里需要特别注意的是删除权限是由x控制的。在没有x权限的情况下,只有属主可以进行删除,但并不是所有情况下都适用,还要看上级目录的权限而定

r:可读取此文件的实际内容。
w:可以编辑、新增或者是修改该文件的内容(但不含删除该文件),如果没有r权限,无法w。
x:该文件具有被系统执行的权限。可以删除。

具体示例如下:

file-perm
file-perm

示例A:只给x权限可以看出没什么作用,对脚本也是一样的,假如rmfile是一个shell脚本,如果fred用户直接sh执行也会报没有没有权限。因为r权限都没有,无法知道具体文件里有什么内容。所认你执行什么呢?执行要先有读的权限才行;

示例B:有读有执行,但没有写的权限,还是无法删除的;

示例C:有读有写,无执行。又非文件的创建者,仍无法删除文件的。因为x权限控制着删除权限;

示例D:即使是文件的属主,具有读写、甚至执行的权限,仍会出现无法删除的情况(这个还要受制于上级目录权限的制约)。即使没有x的权限,如果上级目录上有相应的权限,还是可以删除。针对示例D,又增补的操作如下:

1[fred@server0 srv]$ ll
2total 4
3-rwxr--r--. 1 fred fred 9 Dec  7 11:04 rmfile
4[fred@server0 srv]$ rm -rf rmfile
5rm: cannot remove ‘rmfile’: Permission denied

二、权限之于目录的意义

rwx权限在目录中的意义如下:

  • r:可以查看此目录下的完整文件列表信息。
  • w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个目录下的结构列表(这个要重视) 具体权利如下:
    可以在此目录下创建新的文件或目录;
    可以在此目录下删除存在的文件或目录(不论该文件的权限是什么,这点要格外注意!!!!)
    可以将已经存在的文件或目录进行重命名,转移该目录内的文件、目录位置
  • x:目录没有可执行的权限,因此目录中x的功能就是允许别的用户进入这个目录。

示例1:

我们使用root创建一个目录/data,将其权限设置为754,理论上来说fred作为other用是具有读的权限,但在不给其x权限的时候,发现其进入或 ls 该目录的时候都会提示没有权限 。

1[root@server0 /]# ls data/
2[root@server0 /]# ll |grep data
3drwxr-xr--.   2 root root    6 Oct 14 08:57 data
4[fred@server0 ~]$ cd /data/
5-bash: cd: /data/: Permission denied
6[fred@server0 /]$ ll /data/
7ls: cannot access /data/xxx: Permission denied
8total 0
9?????????? ? ? ? ?            ? xxx

示例2:

这个还是拿root用户在普通用户家目录创建文件为例,由于用户对自己的家目录具有读写执行的权限,对于其目录下的文件虽然属主不属于该用户,切该用户不具有读写执行权限,****但其可以删除该文件

 1[fred@server0 ~]$ pwd
 2/home/fred
 3[fred@server0 ~]$ ll
 4total 0
 5-rw-r-----. 1 root root 0 Dec  7 15:10 file
 6[fred@server0 ~]$ cat file
 7cat: file: Permission denied
 8[fred@server0 ~]$ echo 'w' > file
 9-bash: file: Permission denied
10[fred@server0 ~]$ rm -rf file
11[fred@server0 ~]$ ll
12total 0

这个示例可以用一名话形容,叫 “ 强龙不压地头蛇 ” ,虽然你是root(皇帝或老大),而且你给某个小弟限制了权限,但在用户家目录或用户具有rwx权限的目录(小弟的地盘内),其虽然不能更改或读取文件,但其具有删除的权限 。这叫“在我的地盘听我的” 。