在基于 UNIX 的系统中,如何授予用户对文件夹中文件名的读取权限,但不能访问文件本身?
答案1
就像你说的那样,设置对目录(文件夹)的读取访问权限,而不是对文件本身设置读取权限。例如
umask 022 # others have r-x permissions
mkdir /tmp/f
umask 027 # others have --- permissions
echo hello > /tmp/f/1
ls -la /tmp/f
给出
total 64
drwxr-xr-x 2 user user 4096 Feb 5 21:27 .
drwxrwxrwt 370 root root 53248 Feb 5 21:27 ..
-rw-r----- 1 user user 6 Feb 5 21:27 1
现在其他人可以执行ls /tmp/f
并查看该1
文件,但无法读取它。
答案2
通过在目录上设置读取 ( r
) 位,您可以访问该目录内文件的文件名,但您将无法访问文件或进入该目录,除非在目录上也设置了cd
执行 ( ) 权限。x
目录。
换句话说:撤销这些目录上的写入和执行位(至少chmod o=r dirname
)。
有关的: