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 consolekit
ilk 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.pkla
iç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
.
root
Yine de kısıtlamaya çalışıyorsanız , bu sadece küçük bir rahatsızlık olacaktır. Tanım root
olarak, geleneksel UNIX isteğe bağlı erişim kontrol sistemine göre sınırsız bir hesaptır. Tam root
eriş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ı?
shutdown
vepm-suspend
gelen/sbin/
ve/bin/