12

运行“tcpdump -w 1.pcap”时需要限制文件大小。我尝试使用键“-C”来执行此操作,但是当我添加它时,我收到错误“权限被拒绝”。所以:

> sudo tcpdump -w 1.pcap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C821 packets captured
847 packets received by filter
24 packets dropped by kernel

但:

> sudo tcpdump -C 100 -w 1.pcap
tcpdump: 1.pcap: Permission denied

我从我的主目录运行命令,并尝试在以不同权限运行命令之前删除并创建文件,最后我有:

-rwxrwxrwx 1 root root 0 Aug  5 10:30 1.pcap

或者

-rwxrwxrwx 1 fd8 users 0 Aug  5 10:30 1.pcap

您能否建议为什么在第二种情况下我无法写入文件?

4

3 回答 3

13

你需要做-Z root。阅读手册页:

   -Z     Drops privileges (if root) and changes user ID to user and the group ID to the primary group of user.

          This behavior is enabled by default (-Z tcpdump), and can be disabled by -Z root.
于 2014-01-07T01:27:45.820 回答
6

我在 Ubuntu 12.04 LTS 上遇到了类似的问题,我的情况按以下步骤修复。

sudo apt-get install apparmor-utils

user2704275 引用的 aa-complain 命令包含在此包中。

如果您的环境是 RedHat/CentOS 发行版,您可以通过 yum 执行相同的命令。

sudo aa-complain /usr/sbin/tcpdump

这会将 tcpdump 的 AppArmor 模式从“强制”更改为“投诉”。您可以在 /sys/kernel/security/apparmor/profiles 中检查 AppArmor 状态。

然后我可以成功使用 sudo 获取 tcpdump。

获取 tcpdump 后,出于安全原因,您可以将 apparmor 状态恢复为以前的模式,如下所示。

sudo aa-enforce /usr/sbin/tcpdump

问候。

于 2013-10-01T10:47:10.633 回答
4

当我尝试从文件中读取时,我遇到了类似的问题,比如

tcpdump -r example.cap 'icmp[icmptype] = icmp-echo'

对我来说,AppArmor 导致了我不得不在“tcpdump”上从“强制”模式切换到“投诉”模式的问题。以 root 身份运行以下命令:

aa-complain /usr/sbin/tcpdump
于 2013-08-21T15:34:58.573 回答