Saya memiliki PC Desktop Ubuntu 10,04 LTS dengan GNOME.
Bagaimana saya bisa sepenuhnya menonaktifkan fungsi reboot / shutdown / suspend / hibernate di GNOME atau bahkan dengan root? Sehingga root memberikan perintah "reboot" atau "pm-suspend" tidak melakukan apa-apa, dan mesin terus berjalan. Bagaimana saya bisa sepenuhnya menonaktifkan "fitur" dasar ini?
shutdown
danpm-suspend
dari/sbin/
dan/bin/
Jawaban:
Akses pengguna ke tindakan ini dikendalikan oleh polkit. Secara khusus, mereka berhubungan dengan tindakan berikut:
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.restart
org.freedesktop.upower.suspend
org.freedesktop.upower.hibernate
Semua tindakan ini diizinkan secara default untuk pengguna lokal yang aktif (meskipun
consolekit
lebih lanjut membatasi dua izin pertama untuk hanya berfungsi ketika ada satu pengguna yang masuk ke sistem).Jika Anda ingin menonaktifkan tindakan ini, buat file yang
/etc/polkit-1/50-local.d/disable-shutdown.pkla
berisi sesuatu seperti:Ini harus mencegah tindakan tersebut dari menyelesaikan. Informasi lebih lanjut tentang file kebijakan ini dapat ditemukan dengan menjalankan
man pklocalauthority
.Jika Anda mencoba membatasi
root
, ini hanya akan menjadi ketidaknyamanan kecil. Menurut definisi,root
adalah akun tidak dibatasi menurut sistem kontrol akses diskresioner UNIX tradisional. Jika Anda tidak dapat mempercayai pengguna yang telah Andaroot
akses penuh , maka Anda memiliki masalah yang lebih besar daripada hanya mematikan sistem.Perhatikan bahwa dalam versi Ubuntu yang lebih baru seseorang memutuskan untuk memutus kompatibilitas. Seperti yang dijawab dalam Cara menonaktifkan shutdown / reboot dari lightdm di 14,04? tindakannya tampaknya telah berubah menjadi "org.freedesktop. login1 .reboot" (dan sejenisnya).
Misalnya dalam 14,04 menambahkan baris berikut sebagai
/etc/polkit-1/localauthority/50-local.d/restrict-login-powermgmt.pkla
karya:Selain itu perhatikan bahwa metode ini hanya memblokir perintah reboot / etc yang dikeluarkan dari GUI. Untuk memblokir perintah reboot / etc dari command line seseorang dapat menggunakan molly-guard - seperti yang dijelaskan dalam Menonaktifkan perintah shutdown untuk semua pengguna, bahkan root - konsekuensi?
sumber
Pertimbangkan untuk menginstal molly-guard .
Paket ini akan mencegah shutdown / reboot / suspend / hibernate yang tidak diinginkan dengan secara interaktif meminta Anda untuk memasukkan nama host sistem.
Namun, itu sepele untuk mengkonfigurasi molly-guard untuk sepenuhnya menonaktifkan shutdown / reboot / suspend / hibernate. Cukup buat file yang dapat dieksekusi di /etc/molly-guard/run.d/99-prevent-all yang memiliki ini di dalamnya:
Catatan itu melindungi hanya terhadap perintah yang dikeluarkan dari baris perintah, shutdown / reboot / suspend / hibernate yang dikeluarkan dari GUI memintasinya. Untuk memblokir juga GUI menggunakan reboot seseorang dapat menggunakan aturan polkit .
sumber
sumber
/bin/systemctl
dan akan menghapus bit yang dapat dieksekusi dari itu. Ini adalah executable kritis yang juga mengontrolservice SERVICE_NAME [stop|start|restart]
. Sistem Anda mungkin tidak bisa boot lagi (jika Anda dapat mematikannya sama sekali)./bin/systemctl
diatur hanya untuk baca-tulis-rw-r--r-- 1 root root
Membangun jawaban OP, Anda bisa melakukannya
Ini mengganti nama symlink dan menggantinya dengan file kosong. Ini akan mencegah shutdown baris perintah, saya tidak tahu apakah perintah GUI memanggilnya atau melakukan hal mereka sendiri sehingga Anda mungkin harus melakukan jawaban yang diterima juga.
sumber