当 tcpdump -w 遇到 Permission denied

本文介绍了如何解决在Ubuntu上使用tcpdump时遇到的权限被拒绝问题。通过将AppArmor模式从enforce改为complain,成功解决了无法以root用户身份运行tcpdump并保存捕获的数据包到文件的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了定位问题,需要在Linux上使用tcpdump并且保存到文件,遇到了如下问题:

tcpdump port 9001 -w xx
tcpdump: xx: Permission denied

因为已经是root用户,所以判断不是文件系统权限的问题。

在网上查了一下,找到解决方法:将tcpdump的模式从enforce改为complain模式。

修改过程如下:

先查看处在那个模式:

grep tcpdump /sys/kernel/security/apparmor/profiles
/usr/sbin/tcpdump (enforce)

果然不是complain模式。

修改为complain模式:

aa-complain /usr/sbin/tcpdump
The program 'aa-complain' is currently not installed.  You can install it by typing:
apt-get install apparmor-utils

出现错误,按照提示安装apparmor-utils,过程略,然后再次执行:

aa-complain /usr/sbin/tcpdump
Setting /usr/sbin/tcpdump to complain mode.

查看:

grep tcpdump /sys/kernel/security/apparmor/profiles
/usr/sbin/tcpdump (complain)

 

完成

 

参考:

tcpdump permission denied:https://ubuntuforums.org/showthread.php?t=1501339

页面内容比较多,关键信息如下:

This is probably caused by AppArmor. You need to switch from 'enforcement' mode to 'complain' mode on 'tcpdump'. Run the following command as root:

Code:

aa-complain /usr/sbin/tcpdump

You can check by running the following command as root:

Code:

grep tcpdump /sys/kernel/security/apparmor/profiles

You should see (enforce) or (complain). You want it to say (complain).

 

AppArmor介绍:http://www.tuicool.com/articles/aeiIzq

 

Linux版本:Linux 10-6-13-14 3.2.0-85-generic #122-Ubuntu SMP Tue May 26 16:14:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

转载于:https://www.cnblogs.com/liuwei-a/p/tcpdump-w-permission-denied.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值