我在用户主目录的读/写权限方面遇到一些问题。
我有一个用户可以通过 ftp 上传数据(比方说ftp_user
),并且该用户有自己的/home/ftp_user
目录。
我需要/home/ftp_user
以只读模式从其他标准用户(不是所有人)进行访问,以便在需要时查看和复制上传的内容。
我尝试在 /home/ftp_user/ 上使用 a chgrp
and chmod
(644),但这样就ftp_user
失去了所有权和读/写权限。我可以设置 777,但我认为这不是最好的解决方案,我只想向某些用户授予读取访问权限。
有什么建议吗?
谢谢!
更多:完美的解决方案是仅共享特定目录,例如/home/ftp_user/shared
.如果有必要的话,我正在运行 Ubuntu 16.04。
答案1
假设应该有权访问的每个人都是该组的成员ftp_user
:
# get everything in a defined state
chown -R ftp_user:ftp_user /home/ftp_user
chmod -R u=rwX,g=,o= /home/ftp_user
# allow the group to access contents of the home dir (no content listing)
chmod 710 /home/ftp_user
# give the group read access to everything
chmod -R u=rwX,g=r,o= /home/ftp_user/shared
# give the group access to directories and give newly created (`cp`, not `mv`) objects the same group
find /home/ftp_user/shared -type d -exec chmod g=rxs {} +
这不会阻止访问稍后/home/ftp_user
以超过所有者的读取/执行权限创建的文件或目录。这可以使用默认 ACL 来完成/home/ftp_user
:
setfacl -d -m u::rwx,g::-,o:- /home/ftp_user