मैं एक उपयोगकर्ता को grep (sudo के माध्यम से) चलाने के लिए, और एक विशिष्ट फ़ाइल में एक विशिष्ट स्ट्रिंग के लिए grep चलाने की अनुमति देना चाहता हूं। मैं इस उपयोगकर्ता को सभी फ़ाइलों पर grep चलाने में सक्षम होने की अनुमति नहीं देना चाहता। उपयोगकर्ता के पास फ़ाइल तक पहुंच नहीं है, इसलिए sudo का उपयोग करने की आवश्यकता है। मैं एक nagios जांच लिखने की कोशिश कर रहा हूं जो मशीन पर किसी अन्य सेवा की लॉग फ़ाइल को पकड़ती है।
हालाँकि यह काम नहीं करता है, sudo पासवर्ड मांगता रहता है।
मेरी आज्ञा है: sudo grep "string I want (" /var/log/thefilename.log(हाँ, एक कच्चा है( स्ट्रिंग में और कुछ रिक्त स्थान है जो मुझे चाहिए)
/etc/sudoers.d/user-can-grep यह सामग्री है:
user ALL=(root) NOPASSWD: /bin/grep "string I want (" /var/log/thefilename.log
इस sudoers फ़ाइल के स्वामित्व में है root:root और इसकी अनुमति है-r--r-----
सर्वर Ubuntu भरोसेमंद 14.04.3 LTS है।
मै इसे काम मे कैसे ले सकता हूँ?
sudo।
grep, और which grepमुझे बताती है कि यह उपयोग कर रहा है /bin/grep। AFAIK sudo फ़ाइल में आपको बाइनरी के पूर्ण पथ को निर्दिष्ट करने की आवश्यकता है, भले ही आप इसे पूर्ण पथ के बिना कहें।