w显示每个用户的用户列表和上次运行程序。 什么是隐藏最后运行程序的方法?
注意: w只显示当前正在运行的用户命令,而不是最后一个运行命令。
一种可以破解这个的方法是使用perl:
perl -e '$0 = "fake command"; system("....");'
如果你在另一个terminal上检查了w的输出,就会说你正在运行“假命令”。 无论你想要运行什么,都可以放在system()调用中。
这是可行的,因为$0引用了perl中的当前程序名,并且可以将其更改为任何你喜欢的。
另外请注意,这是做你正在做的事情的一个绝对不好的方法。
另一种方法只是把你想要的东西放在一个shell脚本中,然后运行它。 但是这不是很有趣。
什么是隐藏最后运行程序的方法?
您将不得不使进程属性不可读。 在/ proc / N / {cmdline,comm,environ,exe,maps,numa_maps,smaps}中find了程序名和/或可执行文件的名称和/或可执行文件的名字,并且还没有卸载/ proc,的程序没有按照他们应该的方式运行,以某种方式做到这一点的先决条件将是对Linux内核源代码的改变。
即使这样,像auditd(8)或selinux这样的东西也可以logging你正在执行的操作。 如果你不喜欢被看着肩膀,不要使用特定的系统。
使命令行可见的更大的安全问题是这样的:
sqlplus uername/password@oracleinstance
用户和批处理应用程序访问数据库和/或embedded密码。 如果你不能改变这种行为,你必须chroot在这个系统上有命令行访问的用户。 chroot允许你有select地禁止或允许普通用户访问像top,ps和其他使用/ proc的命令。 这是解决这类问题的标准方法。