dmesg: कर्नेल बफर पढ़ें विफल: अनुमति अस्वीकृत


17

चूंकि हाल ही में डेबियन ने इसके लिए डिफ़ॉल्ट व्यवहार को बदल दिया है dmesgऔर मैं इसे केवल अपने स्थानीय उपयोगकर्ता से उपयोग नहीं कर सकता।

% dmesg
dmesg: read kernel buffer failed: Operation not permitted

उसी के लिए जाता है:

% cat /dev/kmsg                      
cat: /dev/kmsg: Operation not permitted

बग ट्रैकर में अभिनीत

मैं इस व्यवहार को पिछले एक में कैसे बदलूं, जहां स्थानीय उपयोगकर्ता को dmesg का उपयोग करने की अनुमति है। मुझे इसके लिए एक विशेष समूह नहीं मिला (जैसे। sudoers या ऐसा कुछ)।

जवाबों:


22

तो यह वास्तव में तुच्छ था, जो बग रिपोर्ट के अंतिम संदेश को देख रहा था:

उपर्युक्त कर्नेल से चैंज का हिस्सा: * सुरक्षा, प्रिंट: SECURITY_DMESG_RESTRICT सक्षम करें, नॉन-रूट उपयोगकर्ताओं को डिफ़ॉल्ट रूप से कर्नेल लॉग पढ़ने से रोकना (sysctl: k कर्नेलबिडेसग्रेस्ट्रेस्ट)

तो समाधान बस एक बार चलाने के लिए है:

% sudo sysctl kernel.dmesg_restrict=0
kernel.dmesg_restrict = 0

फिर आपका स्थानीय उपयोगकर्ता dmesgफिर से उपयोग करना शुरू कर सकता है । यह किसी भी उपयोगकर्ता पर लागू होता है, बजाय एक समूह के जो मैंने शुरू में ग्रहण किया था।

सब कुछ वापस वही है जो मैं चाहता था:

% dmesg|wc
   1307   11745   93652

तथा

% cat /dev/kmsg|head|wc
     10      82     857

और इसे रिबूट में बनाए रखने के लिए, बस इसे फ़ाइल के रूप में सहेजें:

$ cat /etc/sysctl.d/10-local.conf 
kernel.dmesg_restrict = 0

क्या आप इस कमांड को निष्पादित करने में सक्षम हैं: cat /dev/kmesgएक नियमित उपयोगकर्ता के रूप में?
direprobs

यह /dev/kmsgपहली टिप्पणी में होना चाहिए जो एक टाइपो था।
direprobs

आसान जोड़कर यह स्थायी बनाने के लिए kernel.dmesg_restrict = 0 करने के लिए/etc/sysctl.conf
Knobee
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.