我正在运行一个 Web 服务器(apache、mysql、php、cpanel),遇到一个问题,即某些用户从他们的帐户启动 httpd 服务器。这会导致严重的过载。
命令部分ps auxf
:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
infor8 30135 0.0 0.0 28996 3372 ? SN 08:42 0:00 /usr/sbin/httpd
infor8 30136 0.0 0.0 28996 3440 ? SN 08:42 0:00 /usr/sbin/httpd
infor8 30137 0.0 0.0 28996 3364 ? SN 08:42 0:00 /usr/sbin/httpd
实际上,用户有数百个这样的进程infor8
。我正在按以下方式搜索该进程从哪个目录启动:
lsof -p 30135
perl 25631 infor8 cwd DIR 8,3 4096 76735848 /home/infor8/public_html
perl 25631 infor8 rtd DIR 8,3 4096 2 /
perl 25631 infor8 txt REG 8,3 1184862 42976810 /usr/local/bin/perl
perl 25631 infor8 mem REG 8,3 23736 63414584 /lib64/libnss_dns-2.5.so
使用“maldet”恶意软件扫描程序,我发现(并删除)了很多文件,例如:
{HEX}php.sessmasq.renata.519 : ./images/a96b6.php
{HEX}php.sessmasq.renata.519 : ./images/7fec3.php
{HEX}php.sessmasq.renata.519 : ./images/b1d10.php
有人可以帮忙吗?如何阻止从网络服务器上的客户帐户本地运行 apache?
感谢您的帮助。
更新:
httpd 的权限:
root@server [~]# which /usr/sbin/httpd
/usr/sbin/httpd
root@server [~]# ll /usr/sbin/httpd
lrwxrwxrwx 1 root root 31 Jul 15 2008 /usr/sbin/httpd -> /usr/local/apache/bin/apachectl*
root@server [~]# ll /usr/local/apache/bin/apachectl
-rwxr-xr-x 1 root root 2971 Sep 9 2009 /usr/local/apache/bin/apachectl*
root@server [~]#
答案1
更改权限或在 httpd 上设置 ACL 是最简单的方法。
答案2
您需要删除读取权限,而不仅仅是执行权限。仅仅因为某些东西是 chmod -x,并不意味着您无法运行它——例如:
tuttle@mrdo:/tmp/foo$ ls
主机名
tuttle@mrdo:/tmp/foo$ ls -l
共 16
-rw-r--r-- 1 tuttle tuttle 14688 2011-06-09 17:05 主机名
tuttle@mrdo:/tmp/foo$./主机名
bash:./hostname:权限被拒绝
tuttle@mrdo:/tmp/foo$ /lib/ld-linux-x86-64.so.2./主机名
姆尔多