अक्षम शटडाउन / सस्पेंड अगर कोई अन्य उपयोगकर्ता ssh के माध्यम से लॉग इन है


15

मुझे याद है कि 9.04 के आसपास ubuntu के संस्करणों में उपयोगकर्ता को शटडाउन (और शायद निलंबित भी) प्रणाली को अक्षम करना संभव था, अगर कोई अन्य उपयोगकर्ता लॉग इन किया गया था।

क्या यह 11.04 में संभव है?

धन्यवाद

संपादित करें:

अगर किसी को जरूरत है (खुद के जोखिम के लिए), / usr / lib / pm-utils / bin / pm-action में थोड़ा परिवर्तन उपयोगकर्ता को मशीन निलंबित करने की अनुमति देगा यदि वह केवल उपयोगकर्ता लॉग इन है या जब उपयोगकर्ता sudo pm-निलंबित करेगा। शायद सबसे अच्छा कोड का टुकड़ा नहीं है, लेकिन अब काम करता है।

diff -r 805887c5c0f6 pm-action
--- a/pm-action Wed Jun 29 23:32:01 2011 +0200
+++ b/pm-action Wed Jun 29 23:37:23 2011 +0200
@@ -47,6 +47,14 @@
    exit 1
 fi

+if [ "$(id -u )" == 0 -o `w -h | cut -f 1 -d " " | sort | uniq | wc -l` -eq 1 ]; then
+                echo "either youre root or root isnt here and youre only user, continuing" 1>&2
+                else
+                echo "Not suspending, root is here or there is more users" 1>&2
+                exit 2
+                fi
+
+
 remove_suspend_lock()
 {
    release_lock "${STASHNAME}.lock"

प्रश्न अभी भी खड़ा है, क्या शटडाउन को रोकना या निलंबित करना संभव है, जब एक से अधिक उपयोगकर्ता लॉग-इन होते हैं (दोपहर-सस्पेंड या हॉल्ट (या अन्य हैक) को फिर से लिखे बिना)?

जवाबों:


1

अद्यतन (enzotib के लिए धन्यवाद):

मूल उत्तर में जिन फ़ाइलों को मैंने सूचीबद्ध किया है, उन्हें संपादित नहीं किया जाना चाहिए , क्योंकि एक पैकेज अपडेट आपके परिवर्तनों को अधिलेखित कर सकता है।

इसके बजाय पॉलिसी कीिट को विन्यास फाइल का उपयोग करके कॉन्फ़िगर किया जाना चाहिए /var/lib/polkit-1/localauthority/, जैसा कि pklocalauthorityमैनुअल पेज में विस्तृत है ।

मूल उत्तर:

एचएएल के अपवर्जन के साथ, यह अब नियंत्रित है /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

allow_activeनीचे दिखाए गए दो क्रिया अनुभागों में सेट करें no(वे auth_admin_keepडिफ़ॉल्ट रूप से सेट हैं ):

  <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>no</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>no</allow_active>
    </defaults>
  </action>

1
आपको अपनी नीति फ़ाइल को अपनी /var/lib/polkit-1/localauthority/*.dनिर्देशिका में सेट करना चाहिए , जैसा कि pklocalauthorityमैनुअल पेज में बताया गया है । पैकेजों द्वारा स्थापित फ़ाइलों को संशोधित करने से बचें (एस /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy), अन्य विन्यास फाइल में /etc/
enzotib

@scottl क्या आप अपने उत्तर को सही ढंग से पढ़ने के लिए संपादित कर सकते हैं? जैसा कि यह अब पढ़ता है यह पूरी तरह से भ्रमित है।
जॉर्ज कास्त्रो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.