【Linux基础知识】CentOS7目录的rwx对应的意义

发布 : Linux培训      来源:

2021-07-26 13:59:40

对于文件,rwx三种权限的功能分别为读取文档(复制)、写入文档和执行程序。对于目录而言,rwx三种权限的功能有所不同,具体如下:

r:允许ls命令显示目录下的内容。

w:允许在目录下创建、修改和删除子目录或文件,要求同时有x权限。

x:允许使用cd命令进入目录。

r-x:允许进入目录,但是不能创建、修改和删除目录中的文件或子目录

rwx:允许进入目录,同时能够创建、修改和删除目录中的文件或子目录

可参考如下实验加以验证,下面的实验使用普通用户zhang对其家目录/home/zhang下的test目录进行测试。首先创建zhang用户,再切换至zhang用户,然后在其家目录中创建test目录,最后在该目录中创建t01.txt、t02.txt和t03.txt三个空文件,操作步骤如下:

[root@host01 ~]# useradd zhang

[root@host01 ~]# su - zhang

[zhang@host01 ~]$ mkdir test

[zhang@host01 ~]$ cd test

[zhang@host01 test]$ touch t01.txt t02.txt t03.txt

[zhang@host01 test]$ ls -l

total 0

-rw-rw-r-- 1 zhang zhang 0 Dec 25 10:35 t01.txt

-rw-rw-r-- 1 zhang zhang 0 Dec 25 10:35 t02.txt

-rw-rw-r-- 1 zhang zhang 0 Dec 25 10:35 t03.txt

实验1:zhang用户对test目录仅有r权限场景

操作步骤如下所示:

[zhang@host01 ~]$ pwd

/home/zhang

[zhang@host01 ~]$ chmod u=r test

[zhang@host01 ~]$ ls -dl test

dr--rwxr-x 2 zhang zhang 4096 Dec 25 10:35 test

尝试进入test目录:

[zhang@host01 ~]$ cd test

-bash: cd: test: Permission denied

可见zhang用户不能进入test目录,然后尝试列出test目录中的内容,操作步骤如下:

[zhang@host01 ~]$ ls test

ls: cannot access test/t03.txt: Permission denied

ls: cannot access test/t02.txt: Permission denied

ls: cannot access test/t01.txt: Permission denied

t01.txt t02.txt t03.txt

可见zhang用户仅可以看到目录中的文件,即t01.txt、t02.txt和t03.txt,但是系统提示“Permission denied”,即不可以访问这些文件。

【Linux基础知识】CentOS7目录的rwx对应的意义

实验2:zhang用户对test目录仅有x权限场景

操作步骤如下所示:

[zhang@host01 ~]$ pwd

/home/zhang

[zhang@host01 ~]$ chmod u=x test

[zhang@host01 ~]$ ls -ld test

d--xrwxr-x 2 zhang zhang 4096 Dec 25 10:35 test

尝试进入test目录:

[zhang@host01 ~]$ cd test

可见zhang用户能够进入test目录,然后尝试列出test目录中的内容,操作步骤如下:

[zhang@host01 test]$ ls

ls: cannot open directory .: Permission denied

可见zhang用户虽然能够进入test目录,但不可以看到目录中的文件。

实验3:zhang用户对test目录仅有w权限场景

操作步骤如下所示:

[zhang@host01 ~]$ pwd

/home/zhang

[zhang@host01 ~]$ chmod u=w test

[zhang@host01 ~]$ ls -ld test

d-w-rwxr-x 2 zhang zhang 4096 Dec 25 10:35 test

尝试进入test目录和列出该目录中的内容:

[zhang@host01 ~]$ cd test

-bash: cd: test: Permission denied

[zhang@host01 ~]$ ls test

ls: cannot open directory test: Permission denied

可见zhang用户不能够进入test目录,也不可以列出test目录中的内容,然后尝试在test目录中创建文件t04.txt,操作步骤如下:

[zhang@host01 ~]$ touch test/t04.txt

touch: cannot touch ‘test/t04.txt’: Permission denied

可见仅有w权限时,zhang用户不可以在test目录中创建文件,此时给test目录添加x权限,然后再次创建文件t04.txt,操作步骤如下:

[zhang@host01 ~]$ chmod u+x test

[zhang@host01 ~]$ ls -ld test

d-wxrwxr-x 2 zhang zhang 4096 Dec 25 10:35 test

[zhang@host01 ~]$ touch test/t04.txt

可见当目录同时具有w和x权限时,用户张就可以执行创建新文件t04.txt命令了,系统没有报错,只是当前不可以列出目录中的内容看不到创建的结果,如下所示:

[zhang@host01 ~]$ ls test

ls: cannot open directory test: Permission denied

此时,将r权限也授予test目录,然后查看目录中的内容,操作步骤如下:

[zhang@host01 ~]$ chmod u+r test

[zhang@host01 ~]$ ls -ld test

drwxrwxr-x 2 zhang zhang 4096 Dec 25 11:08 test

[zhang@host01 ~]$ ls test

t01.txt t02.txt t03.txt t04.txt

现在就可以看到刚才创建的新文件t04.txt了。当一个用户对一个目录同时具有r、w和x权限时,该用户就可以完全控制此目录了,可以在目录中创建、修改和删除文件。至于该用户能否查看、复制或修改文件的内容要看该用户对于文件是否有读或写的权限,如果都没有用户就无法查看或修改文件的内容,但是此时该用户确可以将此文件删除。

实验4:zhang用户对test目录仅有r和x权限场景

操作步骤如下所示:

[zhang@host01 ~]$ chmod u=rx test

[zhang@host01 ~]$ ls -ld test

dr-xrwxr-x 2 zhang zhang 4096 Dec 25 11:08 test

然后尝试进入test目录并列出目录中的内容,操作步骤如下:

[zhang@host01 ~]$ cd test

[zhang@host01 test]$ ls

t01.txt t02.txt t03.txt t04.txt

可见在同时具有r和x权限时,zhang用户可以顺利地进入目录并能够列出文件中的内容,但是由于没有w权限,zhang用户不可以在test目录中创建,修改和删除文件,测试操作步骤如下所示:

[zhang@host01 test]$ pwd

/home/zhang/test

[zhang@host01 test]$ mkdir abc

mkdir: cannot create directory ‘abc’: Permission denied

[zhang@host01 test]$ touch t05.txt

touch: cannot touch ‘t05.txt’: Permission denied

[zhang@host01 test]$ rm t04.txt

rm: cannot remove ‘t04.txt’: Permission denied

[zhang@host01 test]$ mv t04.txt t04.txt.bak

mv: cannot move ‘t04.txt’ to ‘t04.txt.bak’: Permission denied

可见没有当没有w权限时,zhang用户新建目录、新建文件、删除文件、文件改名等相关操作都不可以做。

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部