这是我正在尝试做的事情(CentOS 7):
root@serv02 # /usr/sbin/tcpdump -nn -i eno16780032 -s 0 udp port 53 -w /var/opt/A.pcap -C 100 -W 30
tcpdump: /var/opt/A.pcap00: Permission denied
我以 root 身份运行它,文件系统未满。我只是不明白为什么tcpdump
不创建该文件。
该命令在没有权限的情况下运行良好-C
,并且看起来像是-C
导致tcpdump
放弃权限的原因,但为什么呢?
答案1
从man
页面:
-Z
删除权限(如果是 root)并将用户 ID 更改为用户,将组 ID 更改为用户的主要组。默认情况下启用此行为 (-Z tcpdump),并且可以通过 -Z root 禁用。
默认情况下,tcpdump
正在删除“tcpdump”用户的权限。因此,在命令中提及 root 用户并尝试:
$ tcpdump -nn -i eno16780032 -s 0 udp port 53 -w /var/opt/A.pcap -C 100 -W 30 -Z root