उपयोगकर्ता को शटडाउन विशेषाधिकार कैसे दें?


9

मैं Ubuntu 11.04 का उपयोग कर रहा हूं। मैं एक स्क्रिप्ट चलाना चाहता हूं, जो एक रनिंग प्रोसेस की जांच करती है और उस प्रक्रिया के समाप्त होने पर सिस्टम को बंद कर देती है। ऐसा करने के लिए, उपयोगकर्ता को शटडाउन एक्सेस की आवश्यकता होती है ताकि स्क्रिप्ट को पासवर्ड की आवश्यकता के बिना निष्पादित किया जा सके।

मैंने इस पृष्ठ का उल्लेख किया और अपनी सुडोल फ़ाइल में पाठ जोड़ा। हालाँकि, यह अभी भी मुझसे पासवर्ड पूछ रहा है जब भी मैं निष्पादित करता हूं sudo shutdown -h now। इसके अलावा, मुझे यह कहते हुए एक त्रुटि मिलती है कि रूट विशेषाधिकार की आवश्यकता होती है, जब मैं सुडो के बिना शटडाउन निष्पादित करता हूं।

मेरी sudoers फ़ाइल कुछ इस तरह दिखती है।

# Cmnd alias specification
Cmnd_Alias      SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
myusername    ALL = NOPASSWD: SHUTDOWN

मैं उपयोगकर्ता को शटडाउन कमांड को मैन्युअल रूप से पासवर्ड दर्ज किए बिना निष्पादित करने की अनुमति कैसे दे सकता हूं?

धन्यवाद।


1
क्या आप अपनी वास्तविक और पूरी sudoersफ़ाइल पोस्ट कर सकते हैं ?
enzotib

जवाबों:


6

आप HAL या ConsoleKit का उपयोग करके बंद या पुनः आरंभ कर सकते हैं जिसके लिए आपको उपयोगकर्ता नाम / पासवर्ड दर्ज करने की आवश्यकता नहीं होगी:

एचएएल (पुराने उबंटू संस्करण):

dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

ConsoleKit (नए Ubuntu संस्करण, Ubuntu 11.04 पर परीक्षण किया गया):

dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

7

मैंने इसे इस उत्तर में पसंद किया , मेरे लिए निर्दोष रूप से काम करता है। हो सकता है कि आपका दृष्टिकोण visudoभाग को याद करता है ?

एक कमांड लाइन खोलें और टाइप करें:

sudo visudo 

खुलने वाली फ़ाइल में अंत में निम्नलिखित पंक्ति जोड़ें:

yourusername ALL=NOPASSWD: /sbin/halt

फिर संपादक से बाहर निकलें और इसे सुरक्षित करें (CTRL + x)।

अब आप अपने कंप्यूटर को कमांड लाइन से बंद कर सकते हैं, जैसे कुछ डाउनलोड करने के बाद:

wget UrlOfTheFileYouWantToDownload ; sudo halt

1

कुछ समय पहले मैंने suid (सेट यूजर आईडी) सेट करके ऐसा किया था। यह प्रोग्राम को फ़ाइल के मालिक के रूप में निष्पादित करता है, न कि उपयोगकर्ता इसे चला रहा है। चूंकि शटडाउन जड़ के स्वामित्व में है, इस कारण आपको सुडो के बिना शटडाउन करना चाहिए।

chmod u+s /sbin/shutdown

सुरक्षा के निहितार्थ हैं, हालांकि कोई भी तब बंद कर सकता है। http://en.wikipedia.org/wiki/Setuid


सामान्य तौर पर, विन्यास फाइल के अलावा, पैकेजों से स्थापित फाइलों, या फाइलों के मेटाडेटा को संशोधित करना उचित नहीं है /etc
enzotib

हम्म ... सच! लेकिन आधिकारिक तरीका क्या है? पोलकिट के साथ खेलना? इतना अच्छा भी नहीं ...
टर्बो

sudoमेरी राय में, सही तरीका है, लेकिन दुर्भाग्य से उपयोगकर्ता अपनी sudoersफ़ाइल को देखने का मौका नहीं देता है , और इसके साथ क्या गलत है।
enzotib

यह केवल एक चीज है जो मेरे लिए काम करती है।
मार्क स्टीवर्ट

0

ऐसा लगता है कि आप स्क्रिप्ट को रूट के रूप में चलाना चाहते हैं। यदि आप ऐसी स्क्रिप्ट चलाना चाहते हैं, जो किसी चीज़ के समाप्त होने की प्रतीक्षा कर रही हो और फिर आपके कंप्यूटर को शक्तियाँ प्रदान करती है, तो आप स्क्रिप्ट को केवल sudo के साथ चलाएंगे। जब आप स्क्रिप्ट चलाते हैं तो वह आपका पासवर्ड पूछेगा, लेकिन तब स्क्रिप्ट बिना किसी और हस्तक्षेप के सिस्टम को बंद करने के लिए स्वतंत्र है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.