Kapatma / yeniden başlatma / askıya alma / hazırda bekletme nasıl devre dışı bırakılır?


12

GNOME özellikli bir Ubuntu 10.04 LTS Masaüstü Bilgisayarım var.

GNOME'da veya hatta root ile yeniden başlatma / kapatma / askıya alma / hazırda bekletme işlevlerini nasıl tamamen devre dışı bırakabilirim? Kök "yeniden başlatma" veya "pm-suspend" komutunu verir, hiçbir şey yapmaz ve makine devam eder. Bu temel "özellikleri" nasıl tamamen devre dışı bırakabilirim?


Bilmiyorum? Kiosk olarak mı? Sadece kaldırmak shutdownve pm-suspendgelen /sbin/ve/bin/
Amith KK

Bu dosyalar önbellekte olabilir, değil mi? Bunları kaldırmak GNOME'da bile yeniden başlatma / kapatma / askıya alma / hazırda bekletme işlevine kalıcı olarak izin vermeyecek mi?
LanceBaynes

Evet, muhtemelen bunu yaparLans Baynes
Amith KK

Yanıtlar:


15

Bu eylemlere kullanıcı erişimi polkit tarafından kontrol edilir. Özellikle, aşağıdaki eylemlere karşılık gelirler:

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

Tüm bu eylemlere varsayılan olarak etkin yerel kullanıcılar için izin verilir (ancak consolekitilk iki iznin yalnızca sistemde oturum açmış tek bir kullanıcı olduğunda çalışması kısıtlanır).

Bu eylemleri devre dışı bırakmak istiyorsanız, aşağıdakileri /etc/polkit-1/50-local.d/disable-shutdown.pklaiçeren bir dosya oluşturun:

[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

Bu, bu işlemlerin tamamlanmasını engellemelidir. Bu ilke dosyaları hakkında daha fazla bilgi çalıştırılarak bulunabilir man pklocalauthority.

rootYine de kısıtlamaya çalışıyorsanız , bu sadece küçük bir rahatsızlık olacaktır. Tanım rootolarak, geleneksel UNIX isteğe bağlı erişim kontrol sistemine göre sınırsız bir hesaptır. Tam rooterişim izni verdiğiniz kullanıcılara güvenemiyorsanız , yalnızca sistemi kapatan onlardan daha büyük sorunlarınız vardır.

Daha sonraki Ubuntu versiyonlarında birisinin uyumluluğu bozmaya karar verdiğini unutmayın. Cevap olarak 14.04 yılında lightdm devre dışı bırakmak kapatma / yeniden başlatma nasıl? eylem "org.freedesktop. login1 .reboot" (ve benzeri) olarak değişmiş gibi görünüyor .

Örneğin, 14.04'te aşağıdaki satırları çalışma olarak ekleme /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

Buna ek olarak, bu yöntemin GUI'den verilen reboot / etc komutlarını bloke ettiğini unutmayın. Yeniden başlatma engellemek için / etc komutlar komut satırı birinden molly-bekçi kullanabilir - açıklandığı gibi , tüm kullanıcılar için kapatma komutunu devre dışı bırakılması bile kök - sonuçları?


3
Ubuntu 13.10 ile çalışmayı durdurdu !!!
GabrieleV

@GabrieleV Giriş1 ile belki sürüm 13.10 çalışır? Bunu 14.04'te test ettim - ve umarım Canonical'deki hiç kimse eğlenmek için her sürümde polkit'te geriye dönük uyumluluğu bozmaz.
azaltıcı aktivite

Başka bir veri noktası olarak, bunu yeni Ubuntu 18.04.1 LTS'de, kapatma ve yeniden başlatmaya izin vermemek (ancak hazırda bekletme ve askıya almaya izin vermek) için başarıyla kullandım. Bu 'login1' adlarını kullanmam gerektiğini unutmayın; ayrıca 'dur' ve 'birden fazla oturumları' devre dışı bıraktığımı; bunu yaptığım için /usr/share/polkit-1/actions/org.freedesktop.login1.policy adresindeki eylemleri buldum; ve son olarak, Ubuntu 18.04'ün gdm3 kullanıcı arayüzünde, onay iletişim kutusundaki düğmeler gizlenmez, ancak bunların hiçbir etkisi yoktur.
MarnixKlooster ReinstateMonica

6

Molly-guard takmayı düşünün .

sudo apt-get install molly-guard

Bu paket, etkileşimli olarak sistemin ana bilgisayar adını girmenizi isteyerek istenmeyen kapatma / yeniden başlatma / askıya alma / hazırda bekletme modlarını engeller.

Ancak, molly-guard'ı kapatma / yeniden başlatma / askıya alma / hazırda bekletme modunu tamamen devre dışı bırakacak şekilde yapılandırmak önemsizdir. /Etc/molly-guard/run.d/99-prevent-all dosyasında içinde bu dosya bulunan yürütülebilir bir dosya oluşturun:

#!/bin/sh
exit 1

Yalnızca komut satırından verilen komutlara karşı koruma sağladığını, GUI'den verilen kapatma / yeniden başlatma / askıya alma / hazırda bekletme modunu atladığına dikkat edin. Ayrıca yeniden başlatma kullanarak GUI engellemek için polkit kurallarını kullanabilirsiniz .


Bu, yöneticinin çalışması ve diğer tüm kullanıcıların bir süre kapanmasını önlemesi gereken çok kullanıcılı bir bilgisayar için iyi bir çözümdür.
Alexis Wilke

1
Konsoldan çalışır, ancak molly-guard yerinde olsa bile (ve her zaman sormaya ayarlanmışsa) kapatma işlemi GNOME'dan başlatırken sormadan devam eder (3.4).
Ocak

Evet, bu artık çalışmıyor ... 13.10'dan beri, belki 13.04.
Alexis Wilke

3

UYARI! Burada listelenen komutlarınkullanımı tehlikelidir . Bunları kendi riskiniz dışında kullanmayın!

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

4
Cevabınızı doğrulayabilir misiniz? Kesinlikle yeniden başlatma ve kapatma olasılıklarını ortadan kaldırmak istediğini sanmıyorum.
viyyer

Hazırda bekletme bu şekilde nasıl yeniden etkinleştirilebilir?
Gabriel Fuarı

"chmod + x" kullanmayın "chmod -x"
LanceBaynes

5
Uyarı! Bunu yapma Bu komutlar simgesine bağlanmıştır /bin/systemctlve yürütülebilir biti ondan kaldıracaktır. Bu, aynı zamanda kontrol eden kritik bir yürütülebilir dosyadır service SERVICE_NAME [stop|start|restart]. Sisteminiz büyük olasılıkla artık önyükleme yapmayacaktır (eğer tamamen kapatabiliyorsanız).
Daniel F

Bu komutları bir ubuntu VPS'de çalıştırdım. VPS'yi ana bilgisayardan kapatın, kapatma başarısız oldu. SSH cinini öldürdü. Kuvvet durdu ve başladı, SSH gayet iyi olabilir. Yeniden başlatma /bin/systemctlsadece okuma-yazma olarak ayarlandıktan sonra-rw-r--r-- 1 root root
kryo

0

OP'nin cevabına dayanarak yapabilirsiniz

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

Bu, sembolik bağlantıları yeniden adlandırır ve bunları boş dosyalarla değiştirir. Bu komut satırı kapanmasını önleyecektir, GUI komutlarının onu çağırdığını veya kendi şeylerini yapıp yapmadığını bilmiyorum, bu yüzden kabul edilen yanıtı da yapmanız gerekebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.