無差別モードにする必要がない場合は、通常のユーザーとして tcpdump を使用できます。プロミスキャス モードを無効にするには、「-p」オプションを使用します。
tcpdump -nni en0 -p
インターフェイスをプロミスキャス モードに設定する必要がある場合は、root アカウントを有効にして su 経由で root になり、スクリプトの実行に進むことができます。
su root -
python myscript.py
または
su -
python myscript.py
sudoのデフォルトでは、次のように実行できます(管理者と呼ばれる管理者アカウントを想定)
su Administrator
sudo su
python myscript.py
パスワード プロンプト sudo が気になる場合は、NOPASSWD オプションを使用するように /etc/sudoers ファイルを構成することで回避できます。その後、パスワード プロンプトなしで通常のユーザーとしてスクリプトを実行できます。
また、他のユーザーに bpf デバイス ファイルの読み取り権限を付与してみてください。注:私はこれをテストしていません。
$ ls -l /dev/bpf*
crw-rw---- 1 root access_bpf 23, 0 Aug 4 22:17 /dev/bpf0
crw-rw---- 1 root access_bpf 23, 1 Aug 4 22:16 /dev/bpf1
crw-rw---- 1 root access_bpf 23, 2 Aug 4 22:16 /dev/bpf2
crw-rw---- 1 root access_bpf 23, 3 Aug 4 22:16 /dev/bpf3
例えば
chmod o+r /dev/bpf*