我可以记录vi活动吗?


10

有什么方法可以记录vi活动?我怀疑其他用户正在通过进入vi编辑器中的shell来发出命令,显然这些命令没有记录到历史记录中。

Answers:


6

您还可以打开流程记帐(s / can / should /!)

然后,您可以使用:

lastcomm(1)

查看命令的运行以及它们是否在执行后(有或没有exec的情况下)运行。

结合基于主机的IDS,这应该为您提供“国王可以伸张正义”的需求。


+1是关于会计的一个好点。
Phil Hollenback

7

您现在如何记录他们的活动?最简单的方法是阻止它们从vi启动shell。

# 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记录他们的命令,则可以将vi更改为仅使用该Shell。


+1是限制vi访问的一种好方法。
Phil Hollenback

2
但是看起来很容易绕开:“ vim -u / dev / null”。
jlliagre 2011年

是的,这本质上是一个无法解决的问题。只要有人通过登录访问您的系统,他们就可以破坏计算机。您能做的最好的事情就是让它变得非常困难。
Phil Hollenback

4

您在谈论外壳历史吗?vi shell模式(:sh)启动用户的默认shell。如果是bash,则可以通过编辑全局/ etc / bashrc并添加以下命令来确保始终启用历史记录:

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

这样可以确保每个用户命令都记录到文件中,不会被覆盖,并且每次出现shell提示时都会更新。

请注意,用户可以以个人身份覆盖此设置,~/.bashrc因此这不能绝对保证会发生日志记录。

某些版本的vi(例如nvi)支持安全模式,该模式通过将vi启动为来禁用外壳程序访问nvi -S。您也可以在/etc/bashrc默认情况下设置全局别名以强制使用此模式。

请注意,通常,用户通过意外方式进入Shell的问题是经典的Unix问题。无法完全禁用此功能,最好的办法是尝试默认限制访问。经验丰富的用户(甚至是知道如何使用Google的用户)总是可以绕开这些限制。例如,如果用户不希望记录自己的shell历史记录,那么他总是可以使用他想使用的任何选项执行新的shell副本。

这是一个伟大的书面记录的如何强制记录在bash和日志记录可以规避的方式。

最后,您是否考虑过与用户交谈以确定他们在做什么?99%的时间,简单的口头交流可以消除任何混乱。如果您因为不信任他们而记录了该用户的活动,则可以与他们讨论您的疑虑。

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.