शटडाउन / रिबूट / सस्पेंड / हाइबरनेट को कैसे अक्षम करें?


12

मेरे पास गनोम के साथ उबंटू 10.04 एलटीएस डेस्कटॉप पीसी है।

मैं गनोम या रूट के साथ रिबूट / शटडाउन / सस्पेंड / हाइबरनेट कार्यों को पूरी तरह से कैसे अक्षम कर सकता हूं? ताकि रूट "रिबूट" या "पीएम-सस्पेंड" कमांड देता है यह कुछ भी नहीं करता है, और मशीन चलती है। मैं इन बुनियादी "सुविधाओं" को पूरी तरह से कैसे अक्षम कर सकता हूं?


मुझे नही पता? कियोस्क के रूप में? तुम सिर्फ हटाने shutdownऔर pm-suspendसे /sbin/और/bin/
Amith केके

वे फाइलें कैश में हो सकती हैं, नहीं? उन्हें हटाने से गनोम में भी रिबूट / शटडाउन / सस्पेंड / हाइबरनेशन फ़ंक्शन को स्थायी रूप से बंद कर दिया जाएगा?
लांसबाइन्स

हां, यह शायद ऐसा होगा @ लांस बेनेस
केके

जवाबों:


15

इन क्रियाओं के लिए उपयोगकर्ता की पहुँच को पोलकिट द्वारा नियंत्रित किया जाता है। विशेष रूप से, वे निम्नलिखित क्रियाओं के अनुरूप हैं:

  • org.freedesktop.consolekit.system.stop
  • org.freedesktop.consolekit.system.restart
  • org.freedesktop.upower.suspend
  • org.freedesktop.upower.hibernate

इन सभी कार्यों को सक्रिय स्थानीय उपयोगकर्ताओं के लिए डिफ़ॉल्ट रूप से अनुमति दी जाती है (हालांकि consolekitआगे केवल दो अनुमतियों को केवल तभी काम करने के लिए प्रतिबंधित करता है, जब सिस्टम में कोई एकल उपयोगकर्ता लॉग इन हो)।

यदि आप इन क्रियाओं को निष्क्रिय करना चाहते हैं तो एक फाइल बनाएं /etc/polkit-1/50-local.d/disable-shutdown.pklaजिसमें कुछ ऐसा हो:

[Disable shutdown/whatever]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart;org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate
ResultAny=no
ResultInactive=no
ResultActive=no

इससे उन कार्यों को पूरा होने से रोका जाना चाहिए। इन नीति फ़ाइलों के बारे में अधिक जानकारी चलकर पाई जा सकती है man pklocalauthority

यदि आप rootहालांकि प्रतिबंधित करने की कोशिश कर रहे हैं , तो यह केवल एक छोटी सी असुविधा होगी। परिभाषा के rootअनुसार, पारंपरिक UNIX विवेकाधीन अभिगम नियंत्रण प्रणाली के अनुसार एक अप्रतिबंधित खाता है। यदि आप उन उपयोगकर्ताओं पर भरोसा नहीं कर सकते हैं, जिनके लिए आपने पूरी rootपहुँच दी है, तो आपको सिस्टम बंद करने की तुलना में उनसे बड़ी समस्याएं मिली हैं।

ध्यान दें कि बाद के Ubuntu संस्करणों में किसी ने संगतता को तोड़ने का फैसला किया। जैसा कि 14.04 में lightdm से शटडाउन / रिबूट को अक्षम करने का उत्तर दिया गया है? कार्रवाई "org.freedesktop। login1 .reboot" (और इस तरह) में परिवर्तित हो गई है ।

14.04 में उदाहरण के लिए निम्न पंक्तियों को /etc/polkit-1/localauthority/50-local.d/restrict-login-powermgmt.pklaकाम के रूप में जोड़ना है :

[Disable lightdm PowerMgmt]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions;org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no

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


3
उबंटू 13.10 के साथ यहां काम करना बंद कर दिया गया !!!
गैब्रियलवी

@GabrieleV शायद 13.10 में login1 के साथ संस्करण? मैंने इसे 14.04 में परीक्षण किया - और उम्मीद है कि कैननिकल में कोई भी मस्ती के लिए हर रिलीज में पॉकेट में पिछड़ी संगतता को नहीं तोड़ता।
गतिविधि

एक अन्य डेटा बिंदु के रूप में, मैंने शटडाउन और रिबूट को हटाने के लिए (लेकिन हाइबरनेट और निलंबित करने की अनुमति) नए उबंटू 18.04.1 एलटीएस पर सफलतापूर्वक इसका इस्तेमाल किया। ध्यान दें कि मुझे इन 'login1' नामों का उपयोग करने की आवश्यकता है; मैंने 'हॉल्ट' और 'हाल्ट-मल्टीपल-सेशन' को भी निष्क्रिय कर दिया; मैंने ऐसा इसलिए किया क्योंकि मुझे /usr/share/polkit-1/actions/org.freedesktop.login1.policy में उन कार्यों को मिला; और अंत में, कि Ubuntu 18.04 के gdm3 UI में, पुष्टिकरण संवाद में बटन छिपे नहीं हैं, लेकिन उनका बस कोई प्रभाव नहीं है।
मार्निक्स क्लोस्टर रिंस्टेटमोनिका

6

मौली-गार्ड लगाने पर विचार करें ।

sudo apt-get install molly-guard

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

हालांकि, शटडाउन / रिबूट / सस्पेंड / हाइबरनेट को पूरी तरह से अक्षम करने के लिए मॉली-गार्ड को कॉन्फ़िगर करना तुच्छ है। बस /etc/molly-guard/run.d/99-prevent-all पर एक निष्पादन योग्य फ़ाइल बनाएं, जिसमें यह है:

#!/bin/sh
exit 1

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


यह एक बहु-उपयोगकर्ता कंप्यूटर के लिए एक अच्छा समाधान है, जहां व्यवस्थापक को काम करने की आवश्यकता होती है और अन्य सभी उपयोगकर्ताओं को कुछ समय के लिए बंद करने से रोकता है।
एलेक्सिस विलके

1
कंसोल से काम करता है, लेकिन यहां तक ​​कि मोली-गार्ड के साथ (और हमेशा पूछने के लिए सेट)) शटडाउन आगे बढ़ता है जब यह पूछते हुए कि गनोम (3.4) से इसे शुरू नहीं किया गया।
जाॅन

हाँ, यह अब काम नहीं कर रहा है ... 13.10 से, शायद 13.04 तक।
एलेक्सिस विल्के

3

चेतावनी! यहां सूचीबद्ध कमांडका उपयोग करना खतरनाक है। अपने जोखिम पर इन का उपयोग न करें!

chmod -x /usr/sbin/pm-suspend
chmod -x /sbin/reboot
chmod -x /sbin/shutdown

4
क्या आप अपने उत्तर की पुष्टि कर सकते हैं? मुझे निश्चित रूप से नहीं लगता कि वह रिबूट करने और बंद करने की संभावनाओं को खत्म करना चाहता था।
व्यार

कोई इस तरह हाइबरनेशन को फिर से कैसे सक्षम कर सकता है?
गेब्रियल मेला

"chmod + x" नहीं "chmod -x" का उपयोग करें
लांसबैन्स

5
चेतावनी! ऐसा न करें ये आदेशों के लिए सहानुभूति है /bin/systemctlऔर इससे निष्पादन योग्य बिट को हटा दिया जाएगा। यह एक महत्वपूर्ण निष्पादन योग्य है जो नियंत्रण भी करता है service SERVICE_NAME [stop|start|restart]। आपका सिस्टम संभवतः बूट नहीं करेगा (यदि आप इसे बंद करने के लिए प्राप्त कर सकते हैं)।
डैनियल एफ

मैंने इन आदेशों को एक ubuntu VPS पर चलाया। होस्ट से VPS बंद करें, शटडाउन विफल रहा। इसने एसएसएच डेमन को मार दिया। फोर्स रुकी और शुरू हुई, क्या SSH ठीक कर सकता है। पुनरारंभ करने के बाद /bin/systemctlकेवल पढ़ने के लिए सेट किया जाता है-rw-r--r-- 1 root root
kryo

0

ओपी के जवाब पर बिल्डिंग, आप कर सकते हैं

for file in $(/sbin/shutdown /sbin/reboot /usr/sbin/pm-suspend); do
    mv $file $file.bak && touch $file
done

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

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