Linux:找出Apache用户名

时间:2020-01-09 10:46:07  来源:igfitidea点击:

如何使用命令行在Linux操作系统或者CentOS Linux服务器下找到我的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"(第3列)PID的Apache服务器用户名。这为您提供了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)'

您可以使用以下bash功夫获取用户名:

ps aux | egrep '([a|A]pache|[h|H]ttpd)' | awk '{ print }' | uniq | tail -1

输出示例:

www-data

使用apachctl命令找出Apache以什么身份运行?

输入以下命令

apachectl -S

输出示例:

VirtualHost configuration:
*:80                   nas01.theitroad.com (/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