![找到Apache web服务器的用户名](https://www.niuqi360.com/wp-content/uploads/2021/02/2021022710242555.png)
在管理 WordPress 网站的时候,我们有时会遇到FTP上传没有权限的问题,其实解决这个问题的正确办法是,将网站的根目录的所有者更改为 Apache web服务器的用户和组就可以了。那么我们如何在确认 Apache web服务器的用户名和组名呢?
在Linux操作系统下,有多种方法可以找系统上运行的httpd服务器的Apache Web服务器用户或组名。
通过lsof 命令
运行如下命令:
lsof -i
lsof -i | less
lsof -i | grep :http
输出样本:
apache2 4122 root 4u IPv6 32570 0t0 TCP *:http (LISTEN)
apache2 4125 www-data 4u IPv6 32570 0t0 TCP *:http (LISTEN)
apache2 4126 www-data 4u IPv6 32570 0t0 TCP *:http (LISTEN)
apache2 4127 www-data 4u IPv6 32570 0t0 TCP *:http (LISTEN)
apache2 4128 www-data 4u IPv6 32570 0t0 TCP *:http (LISTEN)
apache2 4129 www-data 4u IPv6 32570 0t0 TCP *:http (LISTEN)
说明:
- apache2 (第一列) – Apache 服务器
- 4122 (第二列) – Apache 服务器 PID
- www-data (第三列) – Apache 用户名
通过httpd.conf 配置文件
另外的一种方法是,通过检查 “httpd.conf” 配置文件,来查看用户名和组:
egrep -iw --color=auto 'user|group' /etc/httpd/conf/httpd.conf
egrep -iw --color=auto '^user|^group' /etc/httpd/conf/httpd.conf
输出样本:
User apache
Group apache
通过 ps 和 grep 命令
执行如下命令:
$ ps aux | egrep '([a|A]pache|[h|H]ttpd)'
或者执行如下的命令:
$ ps aux | egrep --color '([a|A]pache|[h|H]ttpd)'
从上面的输出中可以看出,在我的Debian 服务器上,Apache2以www-data用户身份运行。也可以使用以下命令直接获取用户名:
ps aux | egrep '([a|A]pache|[h|H]ttpd)' | awk '{ print $1}' | uniq | tail -1
输出样本:
www-data
使用apachctl命令找出 Apache 用户名
执行如下命令:
apachectl -S
输出样本:
VirtualHost configuration:
*:80 nas01.nixcraft.net.in (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex proxy: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/uncategorized/determine-the-user-apache-is-run-as/