我试图找出文件根目录下文件的最佳文件权限/用户/组? 我有以下文件结构/home/user/public_html持有我所有的PHP文件和目录。 里面,我有一个目录/home/user/public_html/files/人们上传图像到哪里。
什么是最安全的方式来分发文件权限/组/用户,以便Apache可以正确显示的PHP文件和目录?
我应该使apache拥有public_html ? 我应该为public_html使用哪个组?
这个服务器是否被其他人使用,或者只是你自己(即它是专用的还是共享的)。
一般来说,最佳做法是对于所有者而言是rwx ,对于其他人是只读的。 如果你运行PHP为mod_php(没有自定义的Apache构build,例如mpm-per-child),那么你需要www-data / apache(无论Apache运行的是谁)拥有完整的rwx访问权限,FTP / SSH用户还需要rwx访问。
所以它很可能使拥有rwx FTP / SSH用户的所有者,使用rwx的Apache用户组成员,并且只读或者根本没有其他人。
例如。 774或770
同样,如果您的FTP / SSH用户与您的PHP / Apache用户不同,那么即使每个用户创build新文件,也要确保文件权限保持原样。
ftpuser="" apacheuser="" chown -R ftpuser:apacheuser /home/$ftpuser/public_html chmod -R 775 /home/$ftpuser/public_html setfacl -d -mu::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实例作为一个特定的用户(甚至更多),不会有更多的权限问题。