我怎么弄清楚用户和用户是什么?组Apache正在运行?

时间:2010-11-30 18:31:01

标签: apache .htaccess permissions dreamhost .htpasswd

在DreamHost共享主机上,我正在设置htpasswd,但Apache没有读取文件的权限。我如何给予许可?我想要更改.htpasswd文件的所有者或组,而不是给它不安全的权限。我认为我无法访问httpd.conf文件,因此我无法将此方法用于find what user Apache runs as。此外,运行topps aux仅显示我正在运行但尚未显示apache进程的进程。

根据cat /etc/passwdcat /etc/group的输出,我猜它是www-data

好吧,我按照Password-protecting directories on Dreamhost的说明进行操作。它生成了一个包含.htpasswd文件的目录,其中包含dhapache组和权限440。它还在我的组下面放了一个.htaccess文件。出于某种原因,当我尝试chgrp dhapache test_file.txt时,我得到chgrp: changing group of 'test_file.txt': Operation not permitted。所以,我只是将DreamHost生成的.htpasswd文件移动到我想要的位置,并编辑了它生成的.htaccess文件,尽管它有警告。

2 个答案:

答案 0 :(得分:10)

实际上,您不需要访问httpd.conf:

ps aux | grep apache2
groups apache_user

应该产生你想要的东西

答案 1 :(得分:4)

我遇到了一些问题,导致我找到另一个解决方案。但它仅在您有权访问配置文件

时才有效

我们实际上可以在\etc\apache2\envars文件中检查用户和组。这是Apache设置环境var并在应用程序中使用它的地方。

寻找这两行:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

请注意,这只是设置环境变量。实际设置apache作为\etc\apache2\apache2.conf

中实际位于哪个用户/组中运行
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

文件的位置可能会有所不同,但您应该明白这一点。