注意:基本权限对root无效
一、权限对于目录的意义
1、首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方。
2、r权限:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名,注意:仅仅指的是名字。
3、w权限:拥有此权限表示具有更改该目录结构列表的权限,总之,目录的w权限与该目录下的文件名或子目录名的变动有关,注意:指的是名字。具体如下:
1)在该目录下新建新的文件或子目录。
2)删除该目录下已经存在的文件或子目录(不论该文件或子目录的权限如何),注意:这点很重要,用户能否删除一个文件或目录,看的是该用户是否具有该文件或目录所在的目录的w权限。
3)将该目录下已经存在的文件或子目录进行重命名。
4)转移该目录内的文件或子目录的位置。
4、x权限:拥有目录的x权限表示用户可以进入该目录成为工作目录,能不能进入一个目录,只与该目录的x权限有关,如果用户对于某个目录不具有x权限,则无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。且如果用户对于某目录不具有x权限,则该用户不能查询该目录下的文件的内容,注意:指的是内容,如果有r 权限是可以查看该目录下的文件名列表或子目录列表的。所以要开放目录给任何人浏览时,应该至少要给与r及x权限。如下图:
[root@server0 ~]# mkdir /test
[root@server0 ~]# ls -ld /test
drwxr-xr-x. 2 root root 6 9月 9 10:57 /test
[root@server0 ~]# chmod o=rwx /test/
[root@server0 ~]# ls -ld /test/
drwxr-xrwx. 2 root root 6 9月 9 10:57 /test/
[root@server0 ~]# id aa
uid=1001(aa) gid=1001(aa) 组=1001(aa)
[root@server0 ~]# su - aa
[aa@server0 ~]$ ls /test/
[aa@server0 ~]$ cd /test/
[aa@server0 test]$ mkdir file1
[aa@server0 test]$ touch 1.txt
[aa@server0 test]$ ls
1.txt file1
[aa@server0 test]$ rm -r 1.txt
[aa@server0 test]$ ls
file1
[root@server0 ~]# chmod o-x /test/ ##去掉o的x权限
[root@server0 ~]# ls -ld /test/
drwxr-xrw-. 3 root root 18 9月 9 11:07 /test/
[aa@server0 ~]$ ls /test/ ##aa用户ls的命令已经开始提示权限不足,但因为有r的权限,还是能看到目录下的文件夹及文件
ls: cannot access /test/file1: Permission denied
file1
[aa@server0 ~]$ cd /test/ ###切换目录已经没有权限了
-bash: cd: /test/: Permission denied
目录的 r 权限:能够 ls 浏览此目录内容
目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/等更改目录内容的操作
目录的 x 权限:能够 cd 切换到此目录
二、权限对于文件的意义
1、也应该明白的是文件是实际含有数据的地方,所以r、w、x权限对文件来说是与其内容有关的。
2、r权限:用于此权限表示可以读取此文件的实际内容。
3、w权限:拥有此权限表示可以编辑、添加或者是修改该文件的内容。但是不包含删除该文件,因为由上面权限对于目录的意义得知删除文件或目录的条件是什么。
4、x权限:表示该文件具有可以被系统执行的权限。文件是否能被执行就是由该权限来决定的,跟文件名没有绝对的关系。
[root@server0 ~]# chmod o+x /test/
[root@server0 ~]# ls -ld /test/
drwxr-xrwx. 3 root root 18 9月 9 11:07 /test/
[root@server0 ~]# touch /test/1.txt
[root@server0 ~]# ls -ld /test/1.txt
-rw-r--r--. 1 root root 0 9月 9 11:19 /test/1.txt
[root@server0 ~]# echo 123456 > /test/1.txt
[aa@server0 ~]$ ls /test
1.txt file1
[aa@server0 test]$ cat 1.txt
123456
[aa@server0 test]$ mv 1.txt 2.txt
mv: cannot move ‘1.txt’ to ‘2.txt’: Permission denied ##提示没有权限
[aa@server0 test]$ vim 2.tx
-- INSERT -- W10: Warning: Changing a readonly file ##提示不能编辑,仅可以读此文件
E45: 'readonly' option is set (add ! to override) ##不能保存,只读
[aa@server0 test]$ rm -r 1.txt
rm: remove write-protected regular file ‘1.txt’? y
rm: cannot remove ‘1.txt’: Permission denied ###没有权限
[root@server0 ~]# chmod o+w /test/1.txt
[root@server0 ~]# ls -ld /test/1.txt
-rw-r--rw-. 1 root root 7 9月 9 11:55 /test/1.txt
[aa@server0 test]$ vim 1.txt
[aa@server0 test]$ cat 1.txt #O有了w权限后可以编辑文件并保存查看
linux!!
[aa@server0 test]$ rm -r 1.txt
rm: cannot remove ‘1.txt’: Permission denied ###删除没有权限
[aa@server0 test]$ ls -ld 1.txt
-rw-r--rw-. 1 root root 7 Sep 9 11:55 1.txt
[aa@server0 test]$ mv 1.txt 2.txt
mv: cannot move ‘1.txt’ to ‘2.txt’: Permission denied ###改名没有权限
[aa@server0 test]$ touch 2.txt
touch: cannot touch ‘2.txt’: Permission denied ####新建没有权限
[root@server0 ~]# ls -ld /test/1.txt
-rw-r--rwx. 1 root root 14 9月 9 14:35 /test/1.txt ####加了x权限后,对应文件会变绿色
[aa@server0 test]$ touch 2.txt
touch: cannot touch ‘2.txt’: Permission denied ##加了x权限后发现还是不可以新建
[aa@server0 test]$ ls -ld
drwxr-xr-x. 3 root root 30 Sep 9 11:55 .
[aa@server0 test]$ rm -r 1.txt
rm: cannot remove ‘1.txt’: Permission denied ##加了x权限后发现还是不可以删除
[aa@server0 test]$ ls -ld 1.txt
-rw-r--rwx. 1 root root 14 Sep 9 14:35 1.txt
[aa@server0 test]$ mv 1.txt 2.txt ##加了x权限后发现还是不可以改名
mv: cannot move ‘1.txt’ to ‘2.txt’: Permission denied
对于文本文件作用:
r:查看文件内容 cat less head tail
w:修改文件内容 vim 保存
x:双击运行该文件
总结: