【问题标题】:How do I figure out what user & group Apache is running as?如何确定 Apache 运行的用户和组?
【发布时间】:2011-05-18 01:25:03
【问题描述】:

在 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 文件,尽管它有警告。

【问题讨论】:

  • 是的,通常是“www-data:www-data”

标签: apache .htaccess permissions dreamhost .htpasswd


【解决方案1】:

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

ps aux | grep apache2
groups apache_user

应该得到你想要的

【讨论】:

  • 或者更好ps axo user,group,comm | grep apache
  • 谢谢。这在 DreamHost 上不起作用,但我想通了。请参阅问题的最后一段。
  • ps aux 对你不起作用有点奇怪(因为dreamhost 本身声明它应该wiki.dreamhost.com/PS_Optimization);但是,很高兴您以一种或另一种方式做到了。
  • ps aux 并不总是显示组信息...使用上面的 ps axo。
【解决方案2】:

我遇到了一些问题,导致我找到了另一个解决方案。但它只有在您可以访问配置文件时才有效

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

寻找这两行:

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}

文件的位置可能与我不同,但您应该明白。

【讨论】:

    猜你喜欢
    • 2018-11-24
    • 2011-03-03
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多