我们如何知道目录是可写的apache?


21

有人告诉我应该创建一个图像文件夹和一个资产文件夹,并且我需要确保:“它们是可写的apache”。还告诉我将app / runtime目录设置为可写网络。这和可写的apache一样吗?如果是这样的话:

我如何立即做到这一点,或者知道呢?

这样做ls -l我得到类似的东西:

drwxr-xr-x 13 user user 4096 2011-08-26 10:23 app
drwxr-xr-x 4 user user 4096 2011-08-26 10:23 runtime
drwxr-xr-x 2 user user 4096 2011-08-26 11:11 images
drwxr-xr-x 2 user user 4096 2011-08-26 11:12 assets

Answers:


24

Apache,是在后台运行的程序。Apache最初由用户root(也称为root-process)启动。这root-process将启动几个处理客户端请求的子进程。出于安全原因,子进程不是由用户root而是由具有最小特权的用户运行。通常,此用户名为apachewww-data

要找出这是apache v1的用户,请执行以下操作:

ps -ef | grep httpd | grep -v grep

或对于apache v2:

ps -ef | grep apache | grep -v grep

Apache 2的结果将如下所示:

根5001 1 0 07:21?00:00:00 / usr / sbin / apache2 -k开始
www-data 5021 5001 0 07:21?00:00:00 / usr / sbin / apache2 -k开始
www-data 5022 5001 0 07:21?00:00:00 / usr / sbin / apache2 -k开始
www-data 5023 5001 0 07:21?00:00:00 / usr / sbin / apache2 -k开始

在这种情况下,用户/组是 www-data

因此,为了使目录可被Web服务器写入,我们必须将目录的所有者或组设置为Apache的所有者或组,并为其启用写入权限。通常,我们将目录设置为属于Apache组(apache或`www-data或用于启动子进程的任何用户),并为该组启用写许可权。

chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir

www-data是您在ps上面的命令中找到的名称)。

关于:

2)还告诉我将app / runtime目录设置为可写网络。这与apache可写相同吗?

是的,您需要将该目录设置为可写到Apache期望的组。可能在其中某处,/var/www/或在其中/etc/apache2/sites-enabled/和/或中将其设置为虚拟主机/etc/apache2/sites-available


非常感谢。有没有一种方法可以使用mkdir创建目录,并同时赋予这些权限?
MEM

我们还可以做到吗?chmod -R o + w / or / path / here吗?(-R很明显是选项)。?
MEM

是的一种方法是:mkdir dirname && chgrp www-data dirname
Rinzwind

@MEM是的。R将执行您发出命令的所有目录。有很多方法可以做到这一点;)
Rinzwind 2011年

2
ps -ef | grep [a]pache是避免grep输出中出现伪线的常见习语。
enzotib
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.