一、文件的权限
在Linux中存在三种人类:
- 文件属主(Owner)
- 组用户(Group)
- 其他用户(Other)
这三种人类每一类授予用户的权限如下所示:
- Read:可阅读文件的内容
- Write:可更改文件的内容
- Execute:可执行文件
执行 ls -l 命令可查看文件的权限和所有权,如下所示:
在上面的输出中,将该文件的权限显示为“rw-rw-r--”(该字符串起始位置的连接号“-”表明该文件属于普通文件)。在理解该字符串的时候可将其分为三个部分,以三个字符为一组,分别表示读、写、执行权限。分成的这三个部分分别表示文件的属主、组用户以及其他用户。
二、目录的权限
目录与文件拥有相同的权限方案,只是三种权限对应的操作另有不同
- 读权限:可列出(比如,通过ls命令)目录下的内容
- 写权限:可在目录内创建、删除文件(删除文件时,对文件不需要拥有任何权限,是要对其所属的目录拥有写权限)
- 可执行权限:可以访问目录中的文件。访问某个目录下的文件时需要拥有对路径所列所有目录的执行权限
注意:要想在目录中添加或者删除文件需要同时拥有对该目录的执行权限和写权限。
上面输出的是根目录/的权限,字符串前面的d表示该文件为目录文件,理解时可参考文件权限的理解。
三、权限的修改
- 修改文件属主对文件的权限 chmod u(user) +/- r/w/x filename
- 修改组用户对文件的权限:chmod g(group) +/- r/w/x filename
- 修改其他用户对文件的权限:chmod o(other) +/- r/w/x filename
- 修改所有用户对文件的权限:chmod a(all) +/- r/w/x filename
- 这里也可将权限对应的字符串转换成八进制数来修改(1代表有该权限,0代表没有)
上面是对文件的属主的执行权限进行了修改,使文件属主拥有对文件的执行权限。
上面的操作使组用户失去了对该文件的写权限
上面的操作使其他用户对该文件拥有了写权限
四、对目录进行增删查改时所需要的权限
- 首先将新建的目录temp的所有权限都拿走
- 然后cd temp目录,发现此时没有权限去访问该目录
- 当加上执行权限的时候,发现就可以访问该目录
- 当要在temp目录下去创建一个文件的时候,发现权限不够不允许创建当加上写权限的时候就可以在目录里面创建新的文件了。
- 进入temp目录后想将之前创建的spiderman的文件列出来,发现权限不足,这时给目录加上读权限便可列出目录中的文件
- 现在去掉拥有者对目录的写权限,然后去对temp目录中的spiderman文件执行删除操作,发现无权限,重新让拥有者拥有对该目录的写权限的时候才可以进行删除操作,但是去掉对目录的执行操作是同样也无法删除目录中的文件,因为此时没有对目录的访问权限。
- 总结
- r(读权限):决定目录是否能够 ls
- x(执行权限):决定目录是否能够cd(访问)
- w(写权限):决定目录中是否能够创建以及对目录中的文件进行rm操作