nonaktifkan shutdown / suspend jika ada pengguna lain yang masuk melalui ssh

15

Saya ingat bahwa dalam versi ubuntu sekitar 9,04 dimungkinkan untuk menonaktifkan pengguna untuk mematikan (dan mungkin juga menangguhkan) sistem jika ada pengguna lain yang masuk. Sesuatu seperti policykit atau sejenisnya.

Apakah mungkin dilakukan di 11.04?

Terima kasih

edit:

jika seseorang membutuhkan (untuk risiko sendiri), sedikit perubahan pada / usr / lib / pm-utils / bin / pm-action akan memungkinkan pengguna untuk menangguhkan mesin jika ia hanya pengguna yang login atau ketika pengguna akan menjalankan sudo pm-suspend. Mungkin bukan potongan kode terbaik, tetapi untuk saat ini berfungsi.

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"

Masih ada pertanyaan, mungkinkah melarang shutdown atau menangguhkan ketika ada lebih dari satu pengguna login (tanpa menulis ulang pm-suspend atau dihentikan (atau hack lainnya))?

Denwerko
sumber

Jawaban:

1

Perbarui (terima kasih kepada enzotib):

File yang saya cantumkan dalam jawaban asli tidak boleh diedit, karena pembaruan paket dapat menimpa perubahan Anda.

Sebaliknya PolicyKit harus dikonfigurasikan menggunakan file konfigurasi yang ditempatkan di /var/lib/polkit-1/localauthority/, seperti yang dirinci dalam pklocalauthorityhalaman manual.

Jawaban asli:

Dengan penghentian HAL, ini sekarang dikendalikan di /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

Diatur allow_activedalam dua bagian tindakan yang ditunjukkan di bawah ini no(diatur auth_admin_keepsecara default):

  <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>
scottl
sumber
1
Anda harus mengatur file kebijakan Anda di salah satu /var/lib/polkit-1/localauthority/*.ddirektori Anda , seperti yang dijelaskan di pklocalauthorityhalaman manual. Hindari untuk memodifikasi file yang diinstal oleh paket (as /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy), selain file konfigurasi /etc/.
enzotib
@ skottl Bisakah Anda mengedit jawaban untuk dibaca dengan benar? Saat dibaca sekarang benar-benar membingungkan.
Jorge Castro