追踪进程由哪个用户启动的,如果root角色,不清楚是普通用户sudo到root角色后还是登录到root后启动进程。
特别是如果使用类似cdp快捷进入进程目录:cdp的话,多个用户使用就会有个cdp进程,不方便区分哪个进程是哪个用户在使用。
文件:tracep
- 原理:主要是利用
ps -fp
命令不停的查PPID,直到PPID=1则停止。 - 使用:
- 将此命令放到
/usr/bin/
下即可使用。# 作为公共脚本,方便其他用户也能使用。如果不想,也可以不其他目录,自己用即可。 chmod +x tracep
tracep <pid>
- 将此命令放到
- 示例:tracep 1234
[root@gp8bscefb0iZ home]# cd demo
[root@gp8bscefb0iZ demo]# tracep 1234
Process ID: 1234
UID PID PPID C STIME TTY TIME CMD
root 1234 720271 0 14:57 pts/1 00:00:00 bash /bin/cdp 307005
root 720271 720172 0 14:57 pts/1 00:00:00 /bin/bash
root 720172 720137 0 14:56 pts/1 00:00:00 sudo -s # 可以看出是sudo方式切换到root角色使用cdp命令
sky 720137 720093 0 14:56 pts/1 00:00:00 -bash # 从这里就可以看出是sky用户在使用
sky 720093 720061 0 14:56 ? 00:00:00 sshd: sky@pts/1,pts/3
root 720061 714189 0 14:56 ? 00:00:00 sshd: sky [priv]
root 714189 1 0 Mar12 ? 00:00:00 /usr/sbin/sshd -D
Reached the root process.
Process ancestry complete.
[root@gp8bscefb0iZ demo]#