如何通过 PID 查看进程完整信息

今天收到一个 443 端口的漏洞报告,遂开始查找进程的详细信息:

[common@WegGsZkp03 ~]$ sudo netstat -anp|grep 443
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      15605/nginx
[common@WegGsZkp03 ~]$ ps -ef|grep 15605
nobody    15605  97161  0  2016 ?        00:00:05 nginx: worker process
common   190450 186174  0 17:14 pts/0    00:00:00 grep 15605
[common@WegGsZkp03 ~]$ 

nobody 是什么鬼,这么简单的进程信息又是什么鬼,怎么才能找到这个 nginx 进程的执行路径呢?

其实每个进程,都会在 /proc 文件夹里面生成一个进程目录,里面存放了进程的各种信息。如果使用 ps 命令无法查出进程的详细信息,不妨到 /proc 里面看看。

[common@WegGsZkp03 ~]$ ls -d /proc/15605
/proc/15605
[common@WegGsZkp03 ~]$ sudo ls -l /proc/15605
total 0
dr-xr-xr-x 2 nobody nobody 0 Feb  8  2017 attr
-rw-r--r-- 1 nobody nobody 0 Jul  6 17:07 autogroup
-r-------- 1 nobody nobody 0 Jul  6 17:07 auxv
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 cgroup
--w------- 1 nobody nobody 0 Jul  6 17:07 clear_refs
-r--r--r-- 1 nobody nobody 0 Dec  1  2016 cmdline
-rw-r--r-- 1 nobody nobody 0 Jul  6 17:07 coredump_filter
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 cpuset
lrwxrwxrwx 1 nobody nobody 0 Jul  6 17:07 cwd -> /uniiof/users/tsttgn01/tengine/sbin
-r-------- 1 nobody nobody 0 Jul  6 16:54 environ
lrwxrwxrwx 1 nobody nobody 0 Jul  6 17:07 exe -> /uniiof/users/tsttgn01/tengine/sbin/nginx
dr-x------ 2 nobody nobody 0 Dec 16  2016 fd
dr-x------ 2 nobody nobody 0 Jul  6 17:07 fdinfo
-r-------- 1 nobody nobody 0 Jul  6 17:07 io
-rw------- 1 nobody nobody 0 Jul  6 17:07 limits
-rw-r--r-- 1 nobody nobody 0 Jul  6 17:07 loginuid
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 maps
-rw------- 1 nobody nobody 0 Jul  6 17:07 mem
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 mountinfo
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 mounts
-r-------- 1 nobody nobody 0 Jul  6 17:07 mountstats
dr-xr-xr-x 8 nobody nobody 0 Jul  6 17:07 net
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 numa_maps
-rw-r--r-- 1 nobody nobody 0 Jul  6 17:07 oom_adj
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 oom_score
-rw-r--r-- 1 nobody nobody 0 Jul  6 17:07 oom_score_adj
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 pagemap
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 personality
lrwxrwxrwx 1 nobody nobody 0 Jul  6 17:07 root -> /
-rw-r--r-- 1 nobody nobody 0 Jul  6 17:07 sched
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 schedstat
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 sessionid
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 smaps
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 stack
-r--r--r-- 1 nobody nobody 0 Nov 25  2016 stat
-r--r--r-- 1 nobody nobody 0 Feb 22  2017 statm
-r--r--r-- 1 nobody nobody 0 Nov 25  2016 status
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 syscall
dr-xr-xr-x 3 nobody nobody 0 Jul  6 17:07 task
-r--r--r-- 1 nobody nobody 0 Jul  6 17:07 wchan
[common@WegGsZkp03 ~]$ 

其中几个重要的目录作用如下:

  • cwd 符号链接的是进程运行目录。
  • exe 符号连接就是执行程序的绝对路径。
  • cmdline 就是程序运行时输入的命令行命令。
  • environ 记录了进程运行时的环境变量。
  • fd 目录下是进程打开或使用的文件的符号连接。

Leave a Reply

Your email address will not be published. Required fields are marked *