是否可以在Linux上的“ ps”或“ top”列表中“隐藏”进程


10

首先,我假设如果可能的话,需要以root身份(或以共享root的UID为0的用户身份)进行操作。

如果该命令是由非root用户运行的,如何启动进程以使其不显示在ps auxps eftop列表中?

这有可能吗?

我通常运行的发行版是RHEL / CentOS和Ubuntu-因此,如果有发行版特定的答案,那也是可以的。


沃伦:曾经找到解决方案吗?
克里斯,2010年

@Chris-否... @fianchetto的答案似乎是唯一的途径,这比我愿意承担的工作还多得多:-|
沃伦2010年

我将承担这个项目,并将提供我所确定的一切内容。
克里斯,2010年

Answers:


5

好吧,您在这里有两个选择。采取简单的方法是将ps和顶级程序换成隐藏您想要隐藏的内容的修改版本。

替代方法是运行嵌入现有过程中的代码,或使用无害名称在代码周围编写包装脚本。

在某些版本的PS中,您可以通过更改argv []来对其进行修改,但是不确定它是否适用于top,也不确定它是否可以在linux中工作(主要是BSD约定)。

这完全取决于您希望通过此操作实现什么?


我在这里的目标是使root用户生成的进程对所有用户都不可见(也许是与安全相关的守护程序或类似程序)
warren 2010年

@flanchetto那么,您是说如果我已经有一个程序在运行,然后又以安全地提供密码的相同过程运行了带有密码的命令行命令?例如运行,并且只要是相同的过程python myScript.py,所有subprocess.Popen命令(可能包含或不包含密码)都不会显示。
Brōtsyorfuzthrāx

无论如何,那是行不通的(我只是尝试了一下,然后看到了密码)。所以,我假设您是其他意思。随时澄清。:)
Brōtsyorfuzthrāx

13

根据内核补丁http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=0499680a42141d86417a8fbaa8c8db806bea1201,您可以对proc文件系统使用hidepid选项:

hidepid = 0(默认)表示旧行为-任何人都可以读取所有世界可读的/ proc / PID / *文件。

hidepid = 1表示用户不能访问任何/ proc //目录,但可以访问它们自己的目录。诸如cmdline,sched *,状态之类的敏感文件现在可以防止其他用户使用。由于在proc_pid_permission()中完成的权限检查和文件的权限保持不变,因此不会混淆期望特定文件的模式的程序。

hidepid = 2表示hidepid = 1加上所有/ proc / PID /将对其他用户不可见。这并不意味着它隐藏了一个进程是否存在(可以通过其他方式来了解它,例如,通过kill -0 $ PID来获知),但是它隐藏了进程的euid和egid。它使入侵者的任务变得复杂,即收集有关正在运行的进程,某个守护程序是否以提升的特权运行,另一个用户是否运行某个敏感程序,其他用户是否完全运行任何程序等信息的任务。

gid = XXX定义了一个组,该组将能够收集所有进程的信息(如hidepid = 0模式)。应该使用该组,而不是将非root用户放入sudoers文件等。但是,不应监视整个系统中的任务的不受信任的用户(如守护程序等)不应添加到组中。

您无法在流程级别上控制可见性,但是可以确保用户只能看到他们自己的流程。

如果您的内核版本大于3.3,则可以尝试使用以下命令:

 
mount /proc -o remount,hidepid=2


您可以限制hidepid=2事物,使其仅影响特定用户(或将特定用户列入白名单)吗?
Brōtsyorfuzthrāx

很棒!我的问题是我正在使用cron脚本连接到服务器,并且任何用户都可以使用“ htop”查看凭据(例如)。设置为“ hidepid = 2”用户将看不到其他用户启动的进程。为什么没有默认设置?
lepe 2016年

@lepe可能是出于遗留原因。会破坏这一点,因此不能(在任何地方)使用。
Florian Wendelborn

OP要求pid在整体上不可见,而不仅仅是其他用户...?
phil294 '17

有没有办法只隐藏某些用户创建的进程?例如。root
Avery235 '18

-2

使用top中的F命令和n命令,例如,配置要查看的内容。使用W命令将您喜欢的配置写入〜/ .toprc-使用吗?查看主要命令。这可以快速解决您的问题-对我而言确实如此。使用F,我可以添加/删除要查看的字段,而在f中,可以使用s设置排序,然后使用q返回显示。然后n设置我要查看多少个进程,W保存到.toprc


在我看来,这只是隐藏了一些东西
沃伦(Warren)2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.