在一个目录中,rwx中的“x”代表什么意思?

11

我通过mkdir testdir命令创建了一个名为testdir的文件夹,并通过touch testdir/a命令在其中创建了一个文件。

drwxr-xr-x  2 jermaine     jermaine       4096 Mar 12 22:57 testdir

如果我通过chmod -x testdir命令移除了'testdir'文件夹的执行权限

那么我将无法执行该文件夹下的可执行文件

cd testdir

touch testdir/b

ls -l testdir

cat testdir/a
因此,我的问题是为什么我不能在一个带有'r'但没有'x'的目录下列出文件层次结构? 'x'在目录上到底意味着什么?
我知道一些解释,比如“x表示进入目录,您必须在读写之前进入”。但是“进入”是什么意思?我非常感谢inode或dentry级别的答案。非常感谢。

在Unix系统中,目录必须具有可执行标志才能被浏览。 - Till Helge
错误的,要列出一个目录,你需要同时具备r和x权限。 - Anders Lindén
请注意,您需要在目录x以及每个父目录上设置访问权限才能使其可访问。 - Anders Lindén
2
@AndersLindén:不正确,只需要r即可列出目录。但是,如果没有x,您将无法获取该目录中文件的任何信息(即您只会得到一个简单的名称列表)。 - nneonneo
nneonneo:给我展示一个例子,说明它如何实现。 - Anders Lindén
@AndersLindén:在非空目录上执行chmod 444,然后尝试使用ls -la列出它。你会得到一堆权限被拒绝的错误和一个显示文件名的列表,但其他所有内容(权限、大小、日期等)都将是问号。 - nneonneo
3个回答

25

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

如果您可以"读取"目录,您可以列出目录中的内容。

如果您可以"写入"目录,您可以在其中创建新文件和文件夹。

如果您可以"执行"目录,则可以浏览目录结构,即使您不知道里面有什么。


14
在Linux上对目录应用权限时,权限位与普通文件不同。
  • 写入位允许有影响的用户在目录内创建、重命名或删除文件,并修改目录属性
  • 读取位允许有影响的用户列出目录中的文件
  • 执行位允许有影响的用户进入目录,并访问内部的文件和目录

终于有人理解了,加一! - nneonneo

-1

这是事实不正确的。r权限允许您列出文件。 - nneonneo
nneonneo:你说得对,感谢评论,我有点混淆了 =) - brain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接