为什么文件夹必须是可执行文件?


29

文件权限:

chmod 664 myFile // rw-rw-r--

对于文件夹:

chmod 774 myFolder // rwxrwxr--

如果我仅使用“读写”权限,则文件夹将不会显示其内容。

这是什么原因?

Answers:


14

由于您无法“执行”目录,因此已更好地使用了执行位。目录中的execute位使您可以访问目录中的项目,即使您无法列出目录内容。

$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!

chmod联机帮助页:

字母rwxXst为受影响的用户选择文件模式位:读(r),写(w),执行(或搜索目录)(x),仅当文件是目录或已经对某些文件具有执行权限时才执行/搜索用户(X),执行时设置用户或组ID,受限删除标志或粘性位(t)。


42

目录(在* nix中通常不称为文件夹)对权限位的含义与普通文件不同。

对于目录,写允许在其中创建新文件。

读取允许您列出其中的文件。

Execute允许您输入它并访问其中的文件(或其他目录)。


2
记住的一种简单方法是,想象双击执行某件事。双击目录(或cd)时,输入(执行)它。
约翰T

请注意,仅对目录的写访问权限将不允许您创建新文件。您还需要在目录上具有执行权限。
马提亚斯·布劳恩

“访问文件(或其他目录)”是否意味着我可以看到文件,即列出它们,但无法查看它们,或者我也可以看到文件,即列出它们并阅读它们?
vadasambar


1

当应用于目录(来自man chmod)时,“执行”位实际上表示“搜索” 。这似乎是合理的,因为execute对目录没有意义。


0

x文件夹上的位是指索引/目录搜索/列表;如果将其保持在较低水平,则将无法实现。

这是其用法的一个示例:如果要让一个用户对除他的主目录以外的每个目录都具有有限的读取权限/home/dummy,那么您需要进行设置/并设置/homex位,否则他甚至无法进入其主目录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.