共计 1280 个字符,预计需要花费 4 分钟才能阅读完成。
在实际生产环境中并没有绝对安全的服务器,所以在平时在服务器上应用相应的安全策略就十分的重要,一般有防火墙的和相应的限制访问,还有一个就是备份数据,当然还有的时候也有可能是人为的一些忽略会造成的错误,所以在 Unix 系统中有一个很有用的工具 Script,它可以用于记录 stdout 到屏幕上的一切的数据,Script 的参数选项如下:
-a: 追加到输出文件,默认是写在 typescript 文件中
-f: 输出到指定文件,实时更新
-c: 运行命令而不是交互的 shell 环境
-q: 安静模式,不显示 Script started…这些信息
-t: 指定时间文件和日志文件,格式:-t time.log action.log,用于回放操作。
要注意的是使用 Script 要使用 exit 或者是用[Ctrl] D 来 EOF
在我们需要做操作记录的服务器上可以利用 bash_profile 的特性:bash_profile 是用户都可使用该文件输入专用于自己使用的 shell 信息, 当用户登录时, 该文件仅仅执行一次! 默认情况下, 他设置一些环境变量, 执行用户的.bashrc 文件。这样添加 Script 命令参数内容到需要记录的用户家目录中的 bash_profile 文件末行中,如下:
[root@localhost ~]# vim ~/.bash_profile
…略…
/usr/bin/script -qaf /data/backup/script_log/$USER-$UIDO-$(date +%Y%m%d%H%M).log
# 这里把日志记录在 /data/backup/script_log 下,这里要给这个目录 733 的权限,这点很重要,不然普通用户无法写入日志,但是日志需要保密也不能给普通用户查看的权限
# 同理,其他普通用户也进相应的家目录中修改 bash_profile 文件
这样就可以对用于记录当前用户的操作记录,但是如果实际场景中是一台跳板机或者是一台多用户公用的服务器那么还可以利用 skel 文件夹的特性修改里面的 bash_profile 文件,这样以实现创建一个新用户就会自动添加 Script 参数, 如下:
[root@localhost ~]# echo ‘/usr/bin/script -qaf /data/backup/script_log/$USER-$UIDO-$(date +%Y%m%d%H%M).log’ >>/etc/skel/.bash_profile
当然如果有用 Script 做记录那么在平时也要做好相应的备份以及定期清理 Script 日志文件,这里推荐用 cron 来实现定时,可以在 crontab 中添加每 7 天
00 00 */7 * * /bin/find /data/backup/script_log -type f -ctime +7 -name ‘*.log’ -exec rm -vf {} \;
总之 Script 日志文件是用于平时的审计工作的很好用的工具,合理利用可以很好的控制一些公用服务器上发生的事件,但是要注意的是日志文件的安全性。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140255.htm
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)