我有ubuntu服务器.在服务器上,允许多个用户操作.他们使用ssh.
我需要在一个地方显示所有命令行历史记录,显示时间,用户和命令.另外,我想阻止用户编辑历史文件.一般来说,我需要记录他们在服务器上执行的操作,并防止他们修改记录.
这有什么解决方案吗?
我相信它应该是可能的.我首先要为每个用户创建一个日志文件(因为我不确定共享池化历史文件的副作用).
所以为了举个例子,我要去
所以为了举个例子,我要去
mkdir /var/log/history touch /var/log/history/soneil chown root:soneil /var/log/history/soneil chmod 660 /var/log/history/soneil
所以我有一个由root拥有的历史文件,但’soneil’可以写入.
然后,有点魔术:chattr a / var / log / history / soneil
现在’soneil’只能附加到历史上,除了root之外别无其他.
所以我准备好了我的日志文件,我只需要使用它.
在/ etc / bashrc中(在Ubuntu上我注意到这是/etc/bash.bashrc):
export HISTFILE=/var/log/history/$USER readonly HISTSIZE readonly HISTFILE readonly HISTIGnorE readonly HISTCONTROL
readonly内置是相当不言自明的,我相信也可以同样适用于svenW的功能.
经测试,这与普通历史文件有同样的问题;它是在注销时编写的,并没有带时间戳.所以订购活动会很混乱.我想如果我必须自己做这件事,我会补充道
PROMPT_COMMAND="history -a;$PROMPT_COMMAND" readonly PROMPT_COMMAND
每次绘制新提示时强制将历史记录刷新到磁盘.还有一个HISTTIMEFORMAT envar会将时间戳添加到历史文件中,但是采用相当不漂亮的格式(将var设置为更漂亮的格式只会影响’history’的输出,而不会影响文件本身的内容).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。