我可以loginvi活动吗?

有没有什么方法来loggingvi的活动? 我怀疑另外一个用户是通过进入vi编辑器的shell来发出命令的,显然这些命令并没有logging到历史logging中。

您也可以打开进程记帐 (s / can / should /!)

然后你可以使用:

lastcomm(1) 

看看这个命令是否运行,以及它们是否在fork之后运行,不论是否有exec。

结合基于主机的入侵检测系统,这应该给你你需要的东西,“国王的正义可能在他身上。”

你现在怎么logging他们的活动? 最简单的就是阻止他们从vi发射炮弹。

 # vi /home/user/.exrc set exrc set shell=/bin/false # chown root:root /home/user/.exrc # chmod 644 /home/user/.exrc # chattr +i /home/user/.exrc 

如果您使用特殊的shell来logging他们的命令,则可以将vi更改为仅使用该shell。

你在谈论壳历史吗? vi shell模式( :sh )启动用户的默认shell如果是bash,那么可以通过编辑全局/ etc / bashrc并添加:

 set HISTFILE=~/.bash_history shopt -s histappend PROMPT_COMMAND='history -a' 

这将确保每个用户命令都被logging到一个文件中,而不会被覆盖,并且每次出现shell提示时都会被更新。

请注意,用户可以在他们的个人~/.bashrc覆盖它,所以这不是绝对保证logging会发生。

一些版本的vi(如nvi)支持一种安全模式,通过启动vi作为nvi -S来禁用shell访问。 你也可以在/etc/bashrc设置一个全局别名来默认强制这个模式。

请注意,一般来说,用户通过意外的方式进入shell的问题是一个典型的unix问题。 没有办法完全禁用它,最好的办法是默认限制访问。 一个复杂的用户(甚至是一个知道如何使用谷歌的用户)总是可以绕过这些限制。 例如,如果用户不希望logging他的shell历史logging,他总是可以用他想要使用的任何选项来执行shell的新副本。

这里有一个伟大的写法 ,如何强制loginbash和日志logging可以规避的方式。

最后,你有没有考虑过与用户交谈,以确定他们在做什么? 99%的时间进行简单的口头交stream可以消除任何困惑。 如果你logging这个用户的活动,因为你不信任他们,也许你可以跟他们谈谈你的担忧。