我如何弄清楚Apache正在运行的用户和组?

在DreamHost共享主机上,我设置了htpasswd,但是Apache没有读取文件的权限。 我如何给予它许可? 我想要更改.htpasswd文件的所有者或组,而不是给它不安全的权限。 我不认为我有权访问httpd.conf文件,所以我不能使用此方法来查找运行Apache的用户 。 此外,运行topps aux只显示正在运行的进程,但不显示Apache进程。

基于cat /etc/passwdcat /etc/group ,我猜是www-data

那么,我遵循Dreamhost上密码保护目录的说明 。 它使用组dhapache和权限440生成了一个带.htpasswd文件的目录。 它还在我的组下面放置了一个.htaccess文件。 出于某种原因,当我尝试chgrp dhapache test_file.txt我得到chgrp: changing group of 'test_file.txt': Operation not permitted 。 所以,我只是将DreamHost生成的.htpasswd文件移动到我想要的位置,然后编辑它生成的.htaccess文件,尽pipe它有警告。

其实,你不需要访问httpd.conf:

 ps aux | grep apache2 groups apache_user 

应该产生你想要的

我有一个问题,导致我另一个解决方案。 但是只有当你有权访问配置文件时才有效

我们实际上可以在\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} 

文件的位置可能会有所不同,但你应该明白。