我有一台服务器,其中有一个名为的用户deploy-user
,并编写了一个备份脚本来备份与该用户关联的多个网站。但是,我尝试备份的网站之一的目录/home/usera/web/www.example.com/some/random_dir
属于apache-data-user
.
我将授予什么权限deploy-user
才能备份该目录。我所知道的选项是:
- 将脚本运行为
root
,我真的不想这样做。 - 将
apache-data-user
和添加deploy-user
到同一组。但随后apache-data-user
将拥有许多权限。
有人建议备份此目录的最佳方法吗?
答案1
在 /etc/groups 中找到默认的 apache 用户组
并将部署用户添加到该组
答案2
如果您不想将deploy-user和apache-data-user放入同一组,那么前交叉韧带最适合你。
答案3
选项 2 绝对是最佳选择,除非您想使用 ACL。请注意,这样的组可能只需要对您所引用的目录的读取权限。
另一种选择是使用 sudo 为部署用户提供一些非常受限制仅以 root 身份执行备份操作的权限。
答案4
如果你有访问控制列表启用,授予阅读及其内容的deploy-user
权利。/home/usera/web/www.example.com/some/random_dir
要启用 ACL,您可能需要将该acl
选项添加到文件系统的条目/etc/fstab
并安装您的发行版acl
软件包。
在 Linux 下,以下命令赋予deploy-user
读取和遍历以 为根的整个层次结构的权限/home/usera/web
:
setfacl -d -m user:deploy-user:rx -R /home/usera/web
setfacl -m user:deploy-user:rx -R /home/usera/web