मैं शटडाउन कैसे कर सकता हूं इसके लिए व्यवस्थापक पासवर्ड की आवश्यकता नहीं है?


49

यदि मेरे कंप्यूटर पर एक से अधिक लोग लॉग इन हैं, तो कंप्यूटर को बंद करते समय उबंटू को सुपर यूजर प्रमाणीकरण की आवश्यकता होती है। मैं इसे कैसे बना सकता हूं ताकि कोई भी उपयोगकर्ता पासवर्ड मांगे बिना कंप्यूटर को बंद कर सके?


3
+1: मुझे संदेह है कि शटडाउन बंद करने के लिए एक पासवर्ड दर्ज करना कई उपयोगकर्ताओं को घर आधारित पीसी पर बंद कर देता है।
रिचर्ड होलोवे

7
यदि आप एक कंप्यूटर को बंद करते हैं जबकि अन्य लोग लॉग इन होते हैं, तो उनकी खुली खिड़कियों का क्या होता है? उनके खुले दस्तावेज़? मुझे लगता है कि कुछ भी नहीं है कि ऑटोसैव बस खो नहीं है। यह विचार करने योग्य है।
Torben Gundtofte-Bruun

"उबंटू को कंप्यूटर को बंद करने के दौरान सुपर उपयोगकर्ता प्रमाणीकरण की आवश्यकता होती है", उबंटू 11.10 में यह सुपरयुसर प्राधिकरण के लिए नहीं कहता है, जब मेनू का उपयोग करते हुए शटडाउन होता है, यह केवल लॉगआउट के रूप में काम करता है और लॉगिन पेज पर लाता है, जैसे इस प्रश्न में: askubuntu.com/ q / 64073/11995 , मुझे दिलचस्पी है कि एक सुपरयूज़र पासवर्ड के लिए मुझसे पूछने के लिए उबंटू को कैसे कॉन्फ़िगर किया जाए?
मिकल

1
14.04 और बाद के लिए: देखने askubuntu.com/questions/454039/...
Takkat

जवाबों:


27

आपको वर्कअराउंड की आवश्यकता नहीं है, केवल कई उपयोगकर्ताओं के लॉग इन होने पर शटडाउन और रीबूट के लिए व्यवस्थापक के रूप में प्रमाणित किए बिना आपको शट डाउन करने की अनुमति देने के लिए नीति को बदलें।

अपने पसंदीदा पाठ संपादक का उपयोग करके फ़ाइल /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy संपादित करें। आपको रूट अनुमति की आवश्यकता होगी।

अन्य लोगों द्वारा लॉग इन करने पर शटडाउन से संबंधित अनुभाग बदलें

  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
    <description>Stop the system when multiple users are logged in</description>
    <message>System policy prevents stopping the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

सेवा

  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
    <description>Stop the system when multiple users are logged in</description>
    <message>System policy prevents stopping the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

और जब दूसरों से लॉग इन किया जाता है तो रिबूट करने से संबंधित अनुभाग

  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
    <description>Restart the system when multiple users are logged in</description>
    <message>System policy prevents restarting the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

सेवा

  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
    <description>Restart the system when multiple users are logged in</description>
    <message>System policy prevents restarting the system when other users are logged in</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>

और यह आपको कई उपयोगकर्ताओं को लॉग इन करने पर पीसी को शटडाउन और रिबूट करने की अनुमति देगा। क्या आप ऐसा करना चाहते हैं, यह एक अलग सवाल है।


1
यहां पॉलिसीकिट पर अधिक के साथ एक लिंक दिया गया है: hal.freedesktop.org/docs/PolicyKit/polkit-conf.html
रिचर्ड होलोवे

4
जब भी पोलकिट को पुन: स्थापित या उन्नत किया जाता है, तो क्या आपके बदलाव मिटाए नहीं जाएंगे?
रयान थॉम्पसन

3
@Ryan, के अनुसार wiki.ubuntu.com/SecurityTeam/PolicyKitPermissions/12.04 आप एक .pkla फाइल के अंदर / etc / polkit -1 / localauthority लिख सकता है, लेकिन मैं अपने वाक्यविन्यास :) (कुछ जानकारी यहाँ के बारे में यकीन नहीं है विकि। archlinux.org/index.php/PolicyKit#Authorities )
जोर्ल

1
फ़्लिम से नीचे का उत्तर बेहतर है, एक अद्यतन askubuntu.com/a/251942/7472 के
Konstigt

1
रिबूट के बिना नियमों को कैसे पुनः लोड करें?
सनकैचर

33

रिचर्ड होलोवे का जवाब वास्तव में नहीं है जिस तरह से पोलिकिट प्राधिकरणों को दी जाने वाली हैं। के तहत स्थापित फ़ाइलों /usr/share/polkit-1/actionsको संशोधित करने का मतलब नहीं है। इसके बजाय, आपको अधिकारियों को संशोधित करना चाहिए /etc/polkit-1/localauthority/50-local.d/

यहाँ आप इसे इस प्रश्न के लिए कैसे करते हैं:

इस तरह दिखने के लिए नाम से एक फ़ाइल बनाएं /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pklaऔर उसे संपादित sudoeditकरें:

[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop-multiple-users
ResultInactive=no
ResultActive=yes

फिर .pklaउसी डायरेक्टरी में दूसरी फाइल बनाएं । .pklaउदाहरण के लिए, किसी भी नाम का उपयोग करें जिसे आप समाप्त करना चाहते हैं allow_all_users_to_restart.pkla, और उसे इन सामग्रियों से भरें:

[Allow all users to restart]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.restart-multiple-users
ResultInactive=no
ResultActive=yes

संदर्भ:


यह एक बहुत ही अजीब समस्या का हल निकला। PowerBroker (सक्रिय निर्देशिका को प्रमाणित करने के लिए) को स्थापित करने के बाद 12.04 पर, उपयोगकर्ता GUI के साथ किसी भी कंप्यूटर को पुनरारंभ या बंद नहीं कर सकते थे (न ही lightdm और न ही संकेतक-सत्र ने काम किया। यह सिर्फ लॉगिन स्क्रीन पर वापस आ जाएगा।) इन अनुमतियों को जोड़ने के बाद। पॉलिसीकीट, सब कुछ काम किया।
korylprince

आदमी pklocalauthority Ubuntu में जानकारी है
Konstigt

4
ध्यान दें कि अब नाम बदल गए हैं! यह 14.04 से है: / usr / share / polkit-1 / क्रियाएँ $ grep multiple * org.freedesktop.login1.policy: <Action id = "org.freedesktop.login1.power-off-multiple-session"> org.freedesktop .login1.policy: <Action id = "org.freedesktop.login1.reboot-multiple-session"> org.freedesktop.login1.policy: <Action id = "org.freedesktop.login1.suspend-multiple-session">। .freedesktop.login1.policy: <Action id = "org.freedesktop.login1.hibernate-multiple-
session

1
16.04 के लिए, @ कॉनस्टीगट के बदलावों के अलावा, मेरे लिए फाइलों का होना आवश्यक था /var/lib/polkit-1/localauthority/50-local.dऔर ResultAny=yesदोनों फाइलों के लिए अतिरिक्त लाइन आवश्यक थी। केवल चेतावनी संदेश मुझे अब मिल रहा है Failed to set wall message, ignoring: Interactive authentication required., लेकिन शट डाउन करना और पुनरारंभ करना अब सही ढंग से काम करता है।
सिगलोर

@ सिग्लोर की टिप्पणी ने मेरे लिए काम किया, इसके अलावा sysctl poweroff -iआवश्यकता है org.freedesktop.login1.power-off-multiple-sessions, इसलिए मैंने एक ही लाइनों के साथ एक अलग फ़ाइल बनाईAction=org.freedesktop.login1.power-off-multiple-sessions
दुष्ट

16

एक बेहतर रास्ता है। यदि आपके पास dbus-send स्थापित है, तो आप रूट विशेषाधिकारों को बढ़ाने की आवश्यकता के बिना dbus के माध्यम से बंद कर सकते हैं ।

मुझे वह पृष्ठ याद नहीं आ रहा है जहाँ दस्तावेज़ है, लेकिन एक आर्कलिनक्स उपयोगकर्ता ने यह पता लगा लिया।

बंद करना:

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

रीबूट:

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

निलंबित करें:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:1

हाइबरनेट:

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

सादर।


वाह कि ... हैकी। बहुत बढ़िया, फिर भी
हैक

1
शटडाउन और रिबूट अब 11.10 में काम नहीं करता है
मिकल

Hal स्थापित की कोशिश @Mikl (sudo apt-get hal स्थापित)
Epeli

12

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

पावर स्थिति का प्रबंधन करने के लिए आपको ConsoleKit और UPower dbus सेवाओं का उपयोग करना होगा

बंद करना:

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

पुनर्प्रारंभ करें:

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

निलंबित करें:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

हाइबरनेट:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate

आर्क लिनक्स मंचों के लिए धन्यवाद ।

यह अभी के लिए Precise और Quantal में काम करता है, लेकिन यह नहीं पता है कि कब से Freedesktop फोकस ConsoleKit से systemd में स्थानांतरित किया जा रहा है। पता नहीं क्या कैनोनिकल परवाह करता है ...


4

यह 14.04 पर काम करता है। पिछले, IMO की एक अद्यतन भिन्नता, फ़्लिम द्वारा सही उत्तर

sudo mkdir -p /etc/polkit-1/localauthority/50-local.d
sudoedit /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown_reboot_suspend.pkla 

इसे अंदर चिपकाएँ:

[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-multiple-sessions
ResultActive=yes

[Allow all users to reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-multiple-sessions
ResultActive=yes

[Allow all users to suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive=yes

[Allow all users to ignore inhibit of shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-ignore-inhibit
ResultActive=yes

[Allow all users to ignore inhibit of reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-ignore-inhibit
ResultActive=yes

[Allow all users to ignore inhibit of suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-ignore-inhibit
ResultActive=yes

1

एक सुपरसुअर पासवर्ड के लिए प्रॉम्प्ट को दरकिनार करने का कोई तरीका नहीं है, जब रिबूट करते समय अन्य उपयोगकर्ताओं को टर्मिनल विंडो खोलने और rebootकमांड को रूट के रूप में जारी करने के लिए लॉग इन किया जाता है:

sudo reboot

फिर भी, यदि आपके उपयोगकर्ता खाते के लिए पासवर्ड को बायपास करने के लिए कॉन्फ़िगर नहीं किया गया है, तो sudoभी आपको अपने पासवर्ड के लिए संकेत देगा।

चिंता न करें, ये अच्छी चीजें हैं। रिबूटिंग दुर्लभ होना चाहिए और एक साधारण व्यवस्थापक पासवर्ड प्रॉम्प्ट गलती से खुद को छुपाने से बचाता है!


आप सुडोकू टाइप करते समय अपने उपयोगकर्ता को पासवर्ड के लिए संपादित नहीं कर सकते हैं और पासवर्ड के लिए संकेत नहीं दे सकते हैं।
Da1T

0

मेरा मानना ​​है कि यह केवल एक मुद्दा है जब इसे कमांड लाइन के माध्यम से किया जाता है।

यदि ऐसा है तो यहां एक लिंक दिया गया है जो आपकी समस्या का समाधान कर सकता है।


नहीं, एक पॉपअप विंडो है जो व्यवस्थापक पासवर्ड के लिए पूछती है यदि आप इसे बंद करते समय कोई अन्य उपयोगकर्ता लॉग होता है। गुई का उपयोग करना।
यशायाह

0

उस समूह / उपयोगकर्ता को सौंपी गई फ़ाइल और जो आप इस कार्य को करने की अनुमति देना चाहते हैं, में पड़ाव और / या रिबूट जोड़ें। इस तरह आप अभी भी नियंत्रित कर सकते हैं कि कौन बंद कर सकता है, लेकिन उन्हें मशीन को पूरी जड़ दिए बिना।

http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-sudo-password/


-1

जाहिरा तौर पर, आप जीयूआई से रूट के बिना बंद करने में सक्षम हैं क्योंकि जीडीएम रूट के रूप में चलता है। गनोम जीडीएम को बंद करने के लिए कहता है, और जीडीएम इसे करता है।

आप स्क्रिप्ट के साथ कुछ ऐसा ही कर सकते हैं। मुझे यकीन नहीं है कि आप BASH के साथ कितने उपयोगी हैं, लेकिन मेरा मानना ​​है कि कोई एक स्क्रिप्ट लिख सकता है जो रूट के रूप में चलती है और, जब यह एक निश्चित संकेत प्राप्त करता है, तो शटडाउन कमांड चलाता है।

ध्यान रखें कि इससे सुरक्षा समस्या उत्पन्न हो सकती है।


मुझे लगता है कि जिस समस्या से उसका सामना होने की संभावना है, वह शीघ्रता है जो यह सलाह देती है कि अन्य लोग अभी भी लॉग इन हैं, और शट डाउन / पुनरारंभ को सक्षम करने के लिए एक sudo पासवर्ड की आवश्यकता है।
डेविड थॉमस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.