2011-06-05 16 views
5

मैं एक SNMP प्राप्त है कि कहते हैंsendto: कार्रवाई की अनुमति नहीं: netsnmp

Operation not permitted error from sendto. 

मैं सोच रहा हूँ क्या sendto(2) सिस्टम कॉल कर सकता है इस त्रुटि के साथ विफल कर netsnmp पुस्तकालय से कोई त्रुटि मिलती है।

नोट, यह एक अड़चन त्रुटि है इसलिए मुझे नहीं लगता था कि यह फ़ायरवॉल समस्या के कारण हुआ था, जब तक कि फ़ायरवॉल इस अंतराल के कारण नहीं हो सकता।

+0

दोनों सेनिनक्स और एसएमएक्स सुरक्षा सॉक्स को 'socket_sendmsg' कर्नेल सुरक्षा कॉल में प्रदान करते हैं। क्या आप SELinux या SMACK नीति के साथ चल रहे हैं जो इस कॉल को रोक सकता है? – sarnold

+0

क्या सेलिनिन असंतुलित असफलताओं का कारण बनेंगे या क्या यह हमेशा असफल होगा? मुझे अस्थायी असफलता मिल रही है। –

+3

यह _look_ intermittent हो सकता है, यदि आपकी नीति [कुछ प्रकार के लेकिन अन्य नहीं) के सॉकेट भेजने की अनुमति देती है (http://lwn.net/Articles/184261/)। कम से कम, यह आपके '/ var/log/audit/audit.log' या'/var/log/messages' या 'dmesg (1) 'आउटपुट में AVC संदेश छोड़ देगा ... – sarnold

उत्तर

1

यदि त्रुटि कोड EPERM है, तो आप गैर-रूट उपयोगकर्ता के रूप में विशेषाधिकार प्राप्त बंदरगाह का उपयोग कर रहे

उपयोग बंदरगाहों> 1024

2

आज मुझे क्या हुआ, मेरे मामले में समस्या तालिका पूरा किया जा रहा है conntrack की वजह से था ।

अतिरिक्त लक्षण 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 या निकल रहा नीतियों की तरह इस के लिए अन्य संभावित कारण हो सकता है । YMMV।

संबंधित मुद्दे