Linux 什么是';x';是指在一个目录的rwx中?

Linux 什么是';x';是指在一个目录的rwx中?,linux,security,unix,Linux,Security,Unix,我通过mkdir testdir获得了一个testdir,并通过触摸testdir/a在其中创建了一个文件 drwxr-xr-x 2 jermaine jermaine 4096 Mar 12 22:57 testdir 如果我通过chmod-x testdir 那我就不行了 cd testdir touch testdir/b ls -l testdir cat testdir/a 所以我的问题是,为什么我不能在一个有“r”但没有“x”的目录下列出文件层次结构?

我通过
mkdir testdir
获得了一个testdir,并通过
触摸testdir/a
在其中创建了一个文件

drwxr-xr-x  2 jermaine     jermaine       4096 Mar 12 22:57 testdir
如果我通过
chmod-x testdir

那我就不行了

cd testdir

touch testdir/b

ls -l testdir

cat testdir/a
所以我的问题是,为什么我不能在一个有“r”但没有“x”的目录下列出文件层次结构?“x”在目录上的确切含义是什么


我知道一些解释,比如“x意味着进入目录,你必须在读写之前进入”。但“进入”是什么意思?我真的很感激你回答我的问题。非常感谢。

对目录的执行权限意味着您可以访问该目录中的文件

有关Unix权限的详细信息,请查看此链接:

“执行”是对目录的遍历权限。它允许您访问目录中的文件和文件夹

如果你能读目录,你可以列出目录的内容

如果你可以写一个目录,你可以在其中创建新的文件和文件夹


如果你能“执行”一个目录,你就可以在层次结构中移动,即使你不知道里面有什么。

在Linux上对目录应用权限时,权限位的含义与普通文件不同

  • 写入位允许受影响的用户在目录中创建、重命名或删除文件,并修改目录的属性
  • 读取位允许受影响的用户列出目录中的文件
  • 执行位允许受影响的用户进入目录,并访问其中的文件和目录

在Unix上,目录必须具有可执行标志才能被浏览。不正确,要列出目录,您需要同时使用r和x。注意,您需要在一个目录以及每个父目录上使用x,以使其可访问。@AndersLindén:不正确,要列出一个目录,您只需要
r
。但是,如果没有
x
,您将无法获得该目录中文件的任何信息(即,您将只获得一个简单的名称列表)。nneonneo:请给我一个示例,说明如何将+1变为最终的理解者。这实际上是不正确的
r
permission可以让你列出文件。NNEO:你说得对,谢谢你的评论,我有点困惑=)