我有一个用户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
。在网络应用程序/服务中,我必须浏览/导航到包含我想要查看的文件的文件夹。所以我必须去:
/
然后/home
然后/home/user1
然后/home/user1/data
然后/home/user1/data/special
然后/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 并沿途查看相关目录。