我從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