微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ubuntu – Linux综合命令行历史

我有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 举报,一经查实,本站将立刻删除。

相关推荐