-1 permissions
这里提到的所有文件名都是目录。
的权限/media/disk
是0744
( drwxr--r--
)。的权限/media/disk/directory
是0755
( drwxr-xr-x
)。无论如何,我不拥有这些目录。
为什么我可以ls /media/disk
,但不可以ls /media/disk/directory
?我的猜测是ls
需要运行访问/media/disk
,但这很愚蠢,因为如果我对文件具有读取访问权限(即如果r
设置了),那么我应该能够读取该文件。
除了上面的问题之外,如果我正确地说问题是由于缺乏运行访问权限造成的,那么我想问为什么我说的很愚蠢,不是。
系统信息:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"
Run Code Online (Sandbox Code Playgroud)
我认为提议的重复项并不能解释为什么这个功能并不愚蠢。
您的/media/disk
目录缺少组和“其他”的 执行位。
这意味着(恕我直言,以一种有点令人困惑的方式)您可以成功地从目录中读取(当设置了读取位时)并列出其内容,而您无法对其进行操作或输入它(通过cd
),这包括列出其子目录只要权限掩码为 的内容744
。
如果您想访问某些特定的子目录而不授予对整个树的访问权限,那么只需删除读取访问权限但设置执行位即可:
$ su
# mkdir -p /tmp/parent/child
# chmod 711 /tmp/parent/
# chmod 755 /tmp/parent/child/
# touch /tmp/parent/child/test
# exit
$ ls /tmp/parent/
ls: cannot open directory '/tmp/parent/': Permission denied
$ cd /tmp/parent/
$ pwd
/tmp/parent
$ ls
ls: cannot open directory '.': Permission denied
$ ls child/
test
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5030 次 |
最近记录: |