场景
多人使用同一用户名root在不同终端登录服务器进行操作,怎样才能区分不同用户的操作。采用sshd公钥认证和重新修改编译bash可以解决。
开始搬砖
修改bash源文件
1 | wget http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz |
修改 bashhist.c 源文件中的 bash_syslog_history 函数,修改完之后内容:
1 | void bash_syslog_history (line) |
重新编译bash
1 | ./configure --prefix=/usr/local/bash |
编辑bash_1000环境配置文件
名称与后面的保持一致,也可以直接写到/etc/bashrc里面(不建议)
1 | vim /etc/bash_1000 |
设置用户环境
继续修改文件/etc/profile
和/etc/bashrc
,让用户登录时加载/etc/bash_1000
这个环境配置文件
1 | vim /etc/profile |
最后重启sshd生效。
总结
如果采用sshd公钥认证
登录,则会记录不同公钥所有者的操作记录。这样数人使用同一系统用户,也能区分每个人的操作记录了。/var/log/messages
截图(scp
没有直接登录bash
的操作也能记录)