在 apache 上运行的网站目录的最佳所有者/权限设置

在 apache 上运行的网站目录的最佳所有者/权限设置

我在虚拟服务器上运行 Ubuntu,并且设置了不少与主题相关的设置。但我不太确定设置是否正确。

我当前的设置如下:

Apache2:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid

我读过有关添加额外用户(例如sudo adduser apache运行 Apache 服务器)的文章,那么什么是好的选择?

网站目录:

drwxr-xr-x 5 www-data:www-data 4.0K Feb  5 04:16 mysite/

例如,此目录位于/var/www。目录中的文件夹设置为chmod 755,文件为644。它应该归 www-data 所有还是归我的用户名所有?

如果您能给我一些这方面的最佳实践,我将非常高兴。谢谢您的建议!

答案1

我学到的最重要的事情是不要授予 Apache 对任何您不需要写入的内容的写入权限,例如缓存、用户或您可以上传内容的下载目录。

sudo chown user:user因此,对网站目录之类的内容拥有所有权,并授予o其他部分所需的权限……。

替换user:user为您所需的用户和组。

在目录中,您可以使用如下命令:

sudo chmod o+rx /var/www/'directory' #make directory read and executable for other
sudo chmod o-wx /var/www/'directory'/'files' #remove write and execute from files
sudo chmod o+r  /var/www/'directory'/'files' #add read to files

您还可以使用find稍微高级一些但可以使工作更简单的命令,例如(在拥有文件之后):

chown user:user /var/www/ -R # this is only an example.. 
  • 目录
find /var/www/ -type d -exec sudo chmod o+rx {} \; 
  • 文件
find /var/www/ -type f -exec sudo chmod o-wx {} \;
find /var/www/ -type f -exec sudo chmod o+r {} \;

我尽量描述得更详细。如果需要,我可以解释更多。这谈到了权限的一半:

http://www.linuxforums.org/forum/servers/5270-apache-conf-html-permissions.html

相关内容