如何授予其他用户对特定子文件夹的读/写访问权限以及 ls 树的能力,但仅限于他们有权访问的文件夹?

如何授予其他用户对特定子文件夹的读/写访问权限以及 ls 树的能力,但仅限于他们有权访问的文件夹?

我有一个用户user1,其主目录中有很多文件夹,包括/home/user1/data/special/files.

我还有另一个用户user2

我想:

  • user2能够读取/写入文件/文件夹/home/user1/data/special/files
  • user2有能力去ls
    • /并看到/home
    • /home并看到/home/user1
    • /home/user1并查看/home/user1/data但看不到其他文件/文件夹/home/user1
    • /home/user1/data并查看/home/user1/data/special但看不到其他文件/文件夹/home/user1/data
    • /home/user1/data/special并查看/home/user1/data/special/files但看不到其他文件/文件夹/home/user1/data/special

我曾经setfacl设置过权限/home/user1/data/special/files,但不允许他们浏览路径。

sudo setfacl -Rm d:u:user1:rwx,u:user1:rwx /home/user1/data/special/files

我不想更改任何这些文件夹的用户/组所有者,因为它们最终应该属于user1.

如果有帮助,这里有更具体的细节。

我正在使用在此盒子上运行的网络应用程序/服务。 Web 应用程序/服务作为 运行user2。在网络应用程序/服务中,我必须浏览/导航到包含我想要查看的文件的文件夹。所以我必须去:

  1. /然后
  2. /home然后
  3. /home/user1然后
  4. /home/user1/data然后
  5. /home/user1/data/special然后
  6. /home/user1/data/special/files

我不能就这么进去/home/user1/data/special/files

这可能吗?

答案1

这是可能的。

chown -R user1:user1 /home/user1

此步骤将使您成为 /home/user1 和所有底层目录的所有者。

chmod 755 /home/user1
chmod 700 /home/user1/data
chmod 700 /home/user1/data/special
chmod 700 /home/user1/data/special/files

这设置了必要的权限,755 意味着用户拥有 rwx(7),其他人只有 rw(5) 访问权限。这是必要的,以便他们可以遍历您的主目录。

setfacl -Rm u:user2:rwx /home/user1/data/special/files
setfacl -Rdm u:user2:rwx /home/user1/data/special/files

通过这些设置,user2 将能够读取和写入 /home/user1/data/special/files 中的文件。此外,user2 将能够从 / 遍历目录树到 /home/user1/data/special/files 并沿途查看相关目录。

相关内容