我可以扼杀一个过程。但是,在不将其从Linux中删除的情况下,如何防止该进程再次被调用?例如,如果我运行像netstat这样的程序来查找与进程相关的端口,那么我将在几秒钟内看到它以不同的PID再次运行。
发布于 2015-04-20 01:44:41
更改其执行权限位。作为root用户,使用以下命令:
chmod a-x path_to_process_binary这基本上拒绝了所有者、组和其他人的执行权限(如a = all)。
这个简单的技巧将阻止进程的运行,但我相信您的系统中可能发生了更严重的事情。
如果您确实需要自己运行它,请检查这个答案。
发布于 2015-04-20 06:18:29
也许这有点过了,但最安全的方法可能是使用AppArmor或SELINUX来阻止二进制文件的执行。修改文件权限将工作,直到提供二进制更新的包(然后,它将再次被设置为可执行文件时更新)。
另一方面,如果您试图保护整个分区,使其中没有任何东西可以直接执行(例如,保护/var或/tmp,以便没有人可以在该目录中解压缩和执行二进制文件),则可以使用"noexec“选项标志挂载分区:
root@server: ~ # grep noexec /etc/fstab
/dev/sda6 /tmp ext4 defaults,noexec,nosuid,nodev 1 1这条路:
root@server: /tmp # cp /usr/bin/vim .
root@server: /tmp # ./vim
-bash: ./vim: Permission denied注意,shell脚本仍然可以作为/bin/sh /tmp/myscript.sh执行,但不能直接用./myscript.sh执行。
"noexec“标志对于CGI服务器非常有用,因为您可以通过从易受攻击的PHP或基于CGI的站点下载、编译和执行二进制文件来避免某些攻击。
https://unix.stackexchange.com/questions/197342
复制相似问题