我有一台服务器fileserver
。文件服务器有一个名为 的 NFS 导出活动share
。
我有三个用户需要share
通过远程计算机进行 ssh/sftp 访问fileaccess
:user1
、user2
和user3
。
我该如何设置,以便通过登录fileaccess
可以激活以下权限,而无需修改文件权限fileserver
?
user1: read, write, execute
user2: read, (execute?)
user3: read, (execute?)
我希望user2
能够user3
浏览该文件夹但不能修改其内容,同时user1
可以对其执行任何操作。
我尝试过在 上进行挂载share
,fileaccess
然后/mnt/
符号链接到每个人的主目录,但似乎无法在不删除 的权限的情况下user2
授予user3
只读访问权限。user1
答案1
您可以使用 acl 吗?您可以 man setfacl 了解详情。这允许您指定每个用户或组可以以什么权限访问哪个目录/文件。
如果该命令不存在,您可以从 repos 安装它。除非您的文件系统真的很旧,否则应该支持 acl。但是在某些情况下,您可能必须在挂载时指定 acl 支持。
答案2
假设您可以 chroot 用户,那么您可以多次挂载共享,每个用户的 chroot 中各挂载一次。对于只读用户,使用 挂载共享-o ro
。如果无法多次挂载同一个共享,您应该能够使用绑定挂载,但请注意以下讨论的注意事项http://lwn.net/Articles/281157/
答案3
我最终对我想要的文件夹进行了多次挂载,并/mnt/read/
获得了适当的权限。/mnt/write/
read
write
我不确定它的效率如何,但它的负载份额不是很高,所以我认为它运行得相当好。