httpd 进程以apache
用户/组凭证运行,而 /var/www/html 文件夹归root
用户/组所有。
管理公共 html 文件夹权限的最佳做法是什么?保留它们为所有者root
还是将每个文件和文件夹分配给用户apache
?
答案1
让它们以 root 身份拥有,直到其他用户需要对这些文件夹的写权限。除非绝对必要,否则 apache 用户不应拥有任何文件,因为这会使安全漏洞更加严重。例如,如果攻击者能够以某种方式找到让 apache 能够在您的机器上某处创建文件的方法,如果 apache 可以在 /var/www/html 中创建新文件,那么攻击者就可以创建一个新的 .php 文件,该文件使用 apache 凭据通过 Web 浏览器访问此 php 页面来执行任何他想做的事情。
答案2
没有规范的方法来管理此设置。不过,我认为只有在绝对需要时才应使用 root 访问权限。
因此,我将 /var/www/html 目录设置为普通用户,例如 webmaster。这样,对 web 相关文件的日常访问就不需要 root 权限了。
需要 apache 写访问的目录要么需要全局写权限,要么由 apache 拥有,要么设置组访问。
这里有一篇关于使用粘性组的很好的评论: https://stackoverflow.com/questions/2560762/php-mkdir-and-apache-ownership