使用 netstat 远程获取基于 unix 的操作系统上的所有进程连接需要哪些权限

Posted

技术标签:

【中文标题】使用 netstat 远程获取基于 unix 的操作系统上的所有进程连接需要哪些权限【英文标题】:What permissions are need to get all process connections on a unix based OS remotely using netstat 【发布时间】:2017-04-24 21:29:41 【问题描述】:

我有权通过 ssh 访问特定的基于 unix 的机器(使用 /proc 文件系统)。但是,当我尝试 ssh 并远程运行 netstat -taupen 时。我没有看到进程的 PID。例如 -

Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name   
  tcp        0      0 10.10.27.42:80          :::*                    LISTEN      1000       16082      -                   
  tcp        0      0 127.0.0.1:7474          :::*                    LISTEN      110        16568      -                   

PID 如上所示。 我的问题是我需要什么权限才能使用 netstat 命令查看进程的 PID

【问题讨论】:

【参考方案1】:

您只能查看具有与netstat 的调用用户相同的 EUID(有效用户 ID)的进程的 PID(以及因此的进程名称),即调用用户是所有者。

要获取所有已登记套接字的进程的 PID/进程名称,您需要以超级用户 (UID 0) 的身份运行 netstat 命令,或使用 sudo 模拟超级用户(首选) 或查找任何提供该功能的内核功能单元(如果有)。

【讨论】:

以上是关于使用 netstat 远程获取基于 unix 的操作系统上的所有进程连接需要哪些权限的主要内容,如果未能解决你的问题,请参考以下文章

Unix命令获取远程主机上的目录列表

Linux命令及软件安装

Ansible--批量 linux/unix服务器管理工具

如何在 Linux/Unix 系统中验证端口是不是打开

Linux命令—netstat

一篇就弄懂Linux netstat和tcpdump的常见用法