我的 DocumentRoot 设置为 /var/workspace/www
drwxrwx--- 110 radek www-data 4096 Jul 11 11:34 www
首先,我对该文件夹(及其里面的所有文件)有 777 权限,但我不喜欢这样,因为每个人都可以看到并更改它。
由于 Apache 在用户 www-data:www-data 下运行,我尝试设置组和权限:
sudo chgrp www-data www -R
sudo chmod 770 www -R
我做完这些之后,http://本地主机开始显示 403 - 禁止访问。看起来 apache 在权限方面被视为“其他”(来自所有者、组、其他)。
我应该进行哪些更改(权限、所有者等等)才能使所有文件仅对我(用户 radek)可见且可更改,并可由 apache 执行?
如我所见,有一个 Apache 进程在 root 下运行,还有许多其他进程在 www-data 下运行。
radek@me:/$ ps -Af | grep apache
root 13165 1 0 11:37 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 13173 13165 0 11:37 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 13174 13165 0 11:37 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 13175 13165 0 11:37 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 13176 13165 0 11:37 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 13177 13165 0 11:37 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 13190 13165 0 11:37 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 13194 13165 0 11:37 ? 00:00:00 /usr/sbin/apache2 -k start
第一个工序是不是造成上述问题的原因呢?
答案1
Apache(和许多其他守护进程)以 root 身份启动,然后切换到另一个用户。这是正确的。用户权限 755 应该是正确的(所有者具有读写和执行权...或 4 2 和 1...组具有读取和执行权...而其他人具有读取和执行权)
您的 770 设置意味着
所有者具有读写执行功能。组具有读写和执行功能。其他人都没有任何权限。
在这些设置下它将始终发出 403。
如果您希望特定用户具有读写权限,那么您必须将其分配给该用户。