我可以为用户设置读取文件名而不是文件的用户权限吗

我可以为用户设置读取文件名而不是文件的用户权限吗

在基于 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)。

有关的:

相关内容