我的 Debian 机器正在运行 DirectAdmin,我们已经构建了自己的 CMS。现在,当我们创建一个新网站时,将在 /home/ 目录中创建一个新文件夹和用户。
作为开发人员,我们需要进入用户目录来为每个客户设置模板。目前,这太复杂了,因为您需要为每个客户获取该 ftp 帐户。如果有超过 100 个客户,那就太复杂了。
为了方便起见,我创建了一个 ftp 帐户“developer”,该帐户应该能够访问 /home/ 目录。目前,我被拒绝访问目录映射。当然,/home/ 目录归“root”所有
我的问题是,对目录 /home/ 进行权限/组更改的最佳方法是什么,以便 ftp 帐户“developer”可以访问此目录中的所有网站。
谢谢尼克
答案1
一种方法是使用 POSIX 访问控制列表,它可用于定义文件和目录比传统的用户+组+其他权限更细粒度的自主访问权限。man acl
要使用 acl,文件系统必须安装有 acl 支持,假设 /home 位于单独的文件系统上:
mount -o remount,acl /home
并使 acl 挂载选项在 /etc/fstab 中永久生效:
#/etc/fstab
/dev/sda3 /home ext4 defaults,acl 1 1
然后创建一个访问控制列表,授予开发人员用户读写访问权限,而不管或可能除了正常的文件/目录权限之外。
setfacl -d u:developer:x /home/*/
setfacl -m u:developer:x /home/*/
setfacl -d -R u:developer:rwx /home/*/webroot/
setfacl -R -m u:developer:rwx /home/*/webroot/
-d 开关设置新文件/目录的默认值,-m 将更改现有文件/目录的有效权限掩码。