我从netsnmp库得到一个错误,做一个SNMP GET,说SENDTO:不允许操作:netsnmp
Operation not permitted error from sendto.
我想知道什么可以使sendto(2)
系统调用失败,此错误。
请注意,这是一个间歇性错误,所以我不认为这是由防火墙问题引起的,除非防火墙会间歇性地导致此问题。
我从netsnmp库得到一个错误,做一个SNMP GET,说SENDTO:不允许操作:netsnmp
Operation not permitted error from sendto.
我想知道什么可以使sendto(2)
系统调用失败,此错误。
请注意,这是一个间歇性错误,所以我不认为这是由防火墙问题引起的,除非防火墙会间歇性地导致此问题。
如果错误代码为EPERM,您使用特权端口作为非root用户
使用的端口> 1024
今天发生在我身上,在我的情况下,问题是由于连接跟踪表已满。
其他症状在syslog中有很多“nf_conntrack: table full, dropping packet
”。如果是这种情况,解决的办法是net.ipv4.netfilter.ip_conntrack_max
(又名net.netfilter.nf_conntrack_max
)设定为较高的值,例如:
# sysctl net.ipv4.netfilter.ip_conntrack_max
net.ipv4.netfilter.ip_conntrack_max = 65536
# sysctl net.ipv4.netfilter.ip_conntrack_max=1548576
net.ipv4.netfilter.ip_conntrack_max = 1548576
正如其他人说,有可能是这个其他可能的原因,喜欢的SELinux或AppArmor的政策。因人而异。
SElinux和SMACK都在'socket_sendmsg'内核安全调用中提供了安全钩子。您是否正在使用可能禁止此呼叫的SELinux或SMACK策略? – sarnold 2011-06-05 04:38:29
SElinux会导致间歇性故障还是会一直失败?我得到间歇性失败。 – 2011-06-05 14:29:04
如果您的政策允许发送给[某些类型但不是其他人]的套接字(http://lwn.net/Articles/184261/),它可能会间歇性地看到它。至少,它会将AVC消息留在你的'/ var/log/audit/audit.log'或'/ var/log/messages'或'dmesg(1)'输出中...... – sarnold 2011-06-05 22:34:52