Linux 是否支持无需超级用户身份捕获 tcp 数据包?

Linux 是否支持无需超级用户身份捕获 tcp 数据包?

没有超级用户权限是否可以捕获数据包?

这是我在维基百科文章中看到的:

在某些类 Unix 操作系统中,用户必须具有超级用户权限才能使用 tcpdump,因为这些系统上的数据包捕获机制需要提升权限。但是,在设置捕获后,可以使用 -Z 选项将权限授予特定的非特权用户。在其他类 Unix 操作系统中,可以将数据包捕获机制配置为允许非特权用户使用它;如果这样做,则不需要超级用户权限。 http://en.wikipedia.org/wiki/Tcpdump

答案1

无需 root 身份即可捕获数据包,但您需要具备CAP_NET_ADMINCAP_NET_RAW功能。基本上,您必须成为 root(这样您才能获得所有功能),然后放弃除这两个功能之外的所有功能,并放弃 root 权限。

用于管理 UNIX 命令运行的用户 ID,因为有以下便捷工具:须藤。遗憾的是,没有标准工具可以按照这里所需的方式从 shell 操作功能。

这一页描述你需要在 C 级别做什么,以及这个包含如何设置 Wireshark 以这种方式工作。

相关内容