文件权限安全 apache

文件权限安全 apache

我正在尝试找出我的文档根目录下文件的最佳文件权限/用户/组?我有以下文件结构,其中包含/home/user/public_html我的所有 php 文件和目录。其中,我有一个目录/home/user/public_html/files/,人们将图像上传到该目录。

分配文件权限/组/用户的最安全方法是什么,以便 apache 可以正确显示 php 文件和目录?

我应该将public_html其归 apache 所有吗?我应该使用哪个组public_html

答案1

该服务器是否由其他人使用,还是仅由您自己使用(即,它是专用的还是共享的)。

通常,最佳做法是rwx所有者拥有访问权限,其他任何人拥有只读访问权限。如果您以 mod_php 的形式运行 PHP(没有自定义 Apache 构建,例如 mpm-per-child),那么您将希望 www-data/apache(无论 Apache 以谁的身份运行)拥有完全rwx访问权限,FTP/SSH 用户也需要rwx访问权限。

因此,它可能会使所有者成为您的 FTP/SSH 用户rwx,使组成为 Apache 用户,rwx而对其他所有人来说都是只读的或什么都不是。

例如 774 或 770

再次,如果您的 FTP/SSH 用户与您的 PHP/Apache 用户不同,那么您需要确保您的文件权限保持不变,即使每个用户都创建新文件。

ftpuser=""
apacheuser=""
chown -R ftpuser:apacheuser /home/$ftpuser/public_html
chmod -R 775 /home/$ftpuser/public_html
setfacl -d -m u::rwX,g::rwX,o::rx /home/$ftpuser/public_html
chmod g+s /home/$ftpuser/public_html

要使用上述命令,您需要确保为活动分区启用 ACL,请参阅http://www.vanemery.com/Linux/ACL/linux-acl.html

但最好使用 PHP-FPM,这样您就可以以特定用户身份运行 PHP 实例(甚至更多),并且不再有权限方面的麻烦。

相关内容