具体操作方式如下:
# mv /usr/bin/test /usr/bin/test.bak
# 脚本内容如下:
#!/bin/bash
pstree -l -s -p $$ >> /tmp/who.log
echo $@ >> /tmp/who.log
/usr/bin/test.bak $@
# 将该脚本给执行权限命名为 /usr/bin/test
pstree -l -s -p $$ >> /tmp/who.log
命令详解:
pstree
:显示进程树。-l
:显示完整的命令行,不截断。-s
:显示到根进程为止的祖先进程链。-p
:显示进程的 PID。$$
:表示当前脚本进程的 PID。
作用:
将当前脚本进程的祖先进程树(包括所有 PID)以完整格式追加写入到 /tmp/who.log
,可用于审计脚本是由谁、通过何种路径调用的,比如从哪个终端或服务启动的
echo $@ >> /tmp/who.log
说明:$@:表示传递给脚本的所有参数,按原样展开。
作用:记录调用脚本时传入的命令行参数。
本文版权归原作者zhaofujian所有,采用 CC BY-NC-ND 4.0 协议进行许可,转载请注明出处。