Linux目录与文件权限的意义是不相同的。
1.权限对于文件的意义
- r:可读取文件内容;如cat,vim
- w:可修改或者新增文件内容,但是不具备删除权限!
- x:文件可以被执行;
关于文件的w权限,单独强调一下。
当文件的所有者只有w权限时,只能修改或者新增文件内容;
并不能读取和删除!!!
这时候你可能有疑问,文件都能写入为什么不能读取;我们正常思维可能都认为修改文件内容必须需要先打开文件(读取文件),再进行修改,其实并不然,我们可以直接修改文件内容而不需要打开文件。
举个例子:
使用root账户创建一个权限为200,所有者为user1的文件1.txt
[root@Ansible dir_test]# ls -l 1.txt --w-------. 1 user1 user1 4 Nov 4 20:07 1.txt [root@Ansible dir_test]# cat 1.txt 123
另一终端登录用户user1
[user1@Ansible dir_test]$ ls -l total 4 --w-r--r--. 1 user1 user1 8 Nov 4 19:35 1.txt [user1@Ansible dir_test]$ cat 1.txt cat: 1.txt: Permission denied #无权限读取 [user1@Ansible dir_test]$ echo 456 > 1.txt #可以写入 [user1@Ansible dir_test]$ rm 1.txt rm: cannot remove ‘1.txt’: Permission denied #无法删除
对于文件的rwx来说,主要是针对文件的内容而言,与文件本身并没有关系!
2.权限对于目录的意义
- r:可读取目录结构列表
- w:可改动目录结构列表
- 创建新的目录与文件
- 删除已经存在的文件和目录
- 文件或目录更名
- 移动文件或目录
- x:决定用户是否能进入该目录
关于目录的x权限,单独强调一下。
不管目录所有者拥有什么权限,只要没有x权限就不能进入该目录,或者说只要拥有x权限就能进入该目录。
举个例子:
使用root账户创建一个权限为600,所有者为user1的目录dir_test
[user1@Ansible ~]$ ls -ald dir_test/ drw-------. 2 user1 root 19 Nov 4 19:31 dir_test/ [user1@Ansible ~]$ cd dir_test/ -bash: cd: dir_test/: Permission denied #不能进入
使用root账户将目录权限更改为100
[user1@Ansible ~]$ ls -ald dir_test/ d--x------. 2 user1 root 19 Nov 4 19:31 dir_test/ [user1@Ansible ~]$ cd dir_test/ #可以进入 [user1@Ansible dir_test]$
综合举个例子:
使用root账户创建一个目录dir_test,权限为744,所属用户为root;在此目录下新建一个文件,1.txt,权限为600,所属用户为user1;
[root@Ansible user1]# ls -ald dir_test/ dir_test/1.txt drwxr--r--. 2 root root 19 Nov 4 19:31 dir_test/ --w-------. 1 user1 user1 4 Nov 4 20:10 dir_test/1.txt
另一终端登录用户user1
[user1@Ansible ~]$ ls -l dir_test/ ls: cannot access dir_test/1.txt: Permission denied total 0 -????????? ? ? ? ? ? 1.txt #由于目录dir_test,other用户具有读(r)权限,所以可以读取文件名,但是不具有x权限,所以会有一堆问号,即使你拥有文件权限。
如果此时目录dir_test属于user1,文件权限属于root,那么情况又是怎么样的?
[root@Ansible user1]# ls -ald dir_test/ dir_test/1.txt drwxr--r--. 2 user1 root 19 Nov 4 19:31 dir_test/ --w-------. 1 root root 4 Nov 4 20:10 dir_test/1.txt
[user1@Ansible ~]$ cd dir_test/ [user1@Ansible dir_test]$ ls -l total 4 --w-------. 1 root root 4 Nov 4 20:10 1.txt [user1@Ansible dir_test]$ rm 1.txt rm: remove write-protected regular file ‘1.txt’? y [user1@Ansible dir_test]$
那么user1也可以删除文件,即使文件没有权限;所以说删除权限只和目录权限有关。
「 文章如果对你有帮助,请点个赞哦^^ 」 
4+
若无特殊注明,文章均为本站原创或整理发布。
转载请注明本文地址:https://om.fangxiaoxiong.com/4211.html