隐藏“w”中最后运行的程序

隐藏“w”中最后运行的程序

w显示用户列表和每个用户上次运行的程序。有什么方法可以隐藏上次运行的程序?

答案1

注意:w仅显示用户当前运行的命令,而不是最后运行的命令。

破解此问题的一种方法是使用 perl:

perl -e '$0 = "fake command"; system("....");'

如果你在另一个终端上检查输出w,它会说你正在运行“假命令”。无论你实际上想要运行的可以放在system()调用里面。

这是有效的,因为$0它引用了 perl 中的当前程序名称,并且您可以将其更改为您喜欢的任何名称。

还请注意,这是完成您尝试做的事情的一种绝对不正当的方式。

另一种方法是将您想要的任何内容放入 shell 脚本中,然后运行它。但这并不那么有趣。

答案2

有哪些方法可以隐藏最后运行的程序?

您必须使进程属性不可读。程序名称和/或可执行文件名称(无论如何)位于 /proc/N/{cmdline,comm,environ,exe,maps,numa_maps,smaps}... 中,并且除了卸载 /proc 之外,还会导致各种程序无法按预期运行,以某种方式执行此操作的先决条件是更改 linux 内核源代码。

即使如此,auditd(8) 或 selinux 等系统也有办法记录您正在执行的操作。如果您不喜欢被监视,请不要使用特定系统。

答案3

命令行可见的更大安全问题是:

sqlplus uername/password@oracleinstance

用户和批处理应用程序访问数据库和/或嵌入密码的地方。如果您无法更改此行为,则必须 chroot 具有该系统命令行访问权限的用户。chroot 允许您有选择地禁止或允许普通用户访问 top、ps 等命令以及使用 /proc 的其他命令。这是解决此类问题的标准方法。

相关内容