gpt4 book ai didi

macos - 如何在 Mac 上监控 en0 网络接口(interface),而无需使用 sudo?

转载 作者:行者123 更新时间:2023-12-01 03:09:15 25 4
gpt4 key购买 nike

我制作了一个脚本 (python+bash),它使用了 tcpdump监视和过滤流经网络接口(interface)的 TCP header 。它适用于所有接口(interface),但对于 ethernet en0 接口(interface),Mac 要求 tcpdump 以 root 用户身份执行 (sudo)。

是否有任何程序解决方案可以让我绕过使用 sudo 运行它的需要?

我发现像 wireshark 这样的工具无需向用户请求 sudo 密码就可以做到这一点。

任何不需要 sudo 的解决方案都会很棒。

最佳答案

Is there any programatic solution by which I can bypass the need to run it with sudo?

“程序化”是什么意思?

Wireshark 这样做的方式是它的安装程序

  1. 创建一个 access_bpf 组并将用户放入其中;
  2. 安装一个 StartupItem 将当前 BPF 设备的组所有者更改为 access_bpf 并将它们的权限更改为 rw-rw----(根据ls -l/dev/bpf* 在 jonschipp 的回答中输出);

以便安装 Wireshark 的用户可以运行使用 BPF 的程序(在 OS X 上使用 libpcap 的所有程序都使用 BPF;tcpdump 和 Wireshark 都使用 libpcap)而无需以 root 身份运行它们(至少只要程序不'不需要新的 BPF 设备;它们是根据需要自动创建的,但它们是使用权限创建的 rw------- 并由用户和组 root)。

所以如果你已经安装了 Wireshark,你不仅可以以普通用户的身份运行 Wireshark(和 TShark,以及它们都用来抓包的 dumpcap 程序)并捕获流量,你还可以,例如,以普通用户身份运行 tcpdump 并捕获流量。

也就是说,Wireshark code 中没有启用此功能的东西,因此从这个意义上说,它不是“程序化的”,而是由 Wireshark installer 安装的东西启用此功能,并且它为所有程序启用它。

关于macos - 如何在 Mac 上监控 en0 网络接口(interface),而无需使用 sudo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18049306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com