Saya mengelola lingkungan jaringan dan saya memiliki situasi yang menarik muncul kemarin. Ketika sebuah host diharuskan untuk dimatikan oleh pengguna biasa, ia menolak untuk melakukannya jika pengguna lain masuk secara lokal. Namun, ini tidak terjadi ketika pengguna lain masuk melalui SSH. Jika satu pengguna masuk secara lokal dan satu pengguna masuk melalui SSH dan pengguna yang masuk secara lokal mencoba mematikannya bahkan tanpa peringatan dan koneksi SSH pengguna lain tiba-tiba diakhiri. Pertanyaan saya adalah, adakah cara untuk mencegah hal ini seperti kebijakan yang dilakukan untuk pengguna lokal? Saya sudah melihat halaman manual sshd_config
dan tidak dapat menemukan apa pun yang tampaknya terkait.
EDIT (Info tambahan.):
Ada 4 OS di jaringan: Mandriva 2009, Mandriva 2010.2, Mandriva 2011 dan Ubuntu 11.04. Kasus spesifik yang saya maksudkan adalah memiliki pengguna SSH pada host Mandriva 2009 dan pengguna lokal pada host Mandriva 2011.
Mandriva 2009 host menggunakan lingkungan GNOME 2.28, host 2010.2 menggunakan GNOME 2.32, 2011 host menggunakan KDE Plasma dan host Ubuntu 11.04 menggunakan Unity.
Memperbarui
Seperti yang saya catat dalam pertanyaan ini , saya telah melihat polkit
tindakan di bawah /usr/share/polkit-1/actions/
dan menemukan (dalam file org.freedesktop.consolekit.policy
) tindakan yang disebut org.freedesktop.consolekit.system.stop-multiple-users
melempar pesan
System policy prevents stopping the system when other users are logged in
Saya berpikir (karena org.freedesktop.*
konvensi penamaan) bahwa ini adalah semacam sinyal yang dikirim ke DM melalui D-BUS. Saya pikir jika saya dapat mengetahui sinyal apa yang memicu polkit
tindakan ini , saya harus dapat mengubah perilakunya. Ada ide?
Perbarui 2
Saya mencoba percobaan kecil hari ini dan itu memberi saya hasil yang sangat aneh. Saya mencoba masuk melalui SSH ke satu kotak dan memastikan tidak ada pengguna lain yang masuk di VT. Jika saya memilih Shutdown
dari menu "Tindakan" GDM, saya mendapatkan pesan kebijakan yang telah lama ditunggu yang memberi tahu saya bahwa tidak mungkin untuk melakukannya tanpa otentikasi karena pengguna lain masuk. Namun , jika saya menggunakan GDM untuk masuk secara lokal dan memilih untuk mematikan kotak dari menu GNOME, sesi SSH musnah seperti sebelumnya. Bagaimana ini mungkin? Apakah perilaku berbeda ketika saya mengajukan shutdown
permintaan dari GDM dibandingkan ketika saya memulainya dari dalam gnome-session
? Apakah itu memberi tahu siapa pun sesuatu yang dapat membantu saya memecahkan masalah?
Jawaban:
Saya akan menulis sebuah program kecil yang memeriksa koneksi SSH aktif melalui
netstat
dan / ataups
. Jatuhkan di tempatshutdown
perintah.Jika tidak ada orang lain yang menggunakan mesin, panggil
shutdown
ketika pengguna mencoba. Jika seseorang menggunakan mesin, cukup peringatkan pengguna yang mengeluarkanshutdown
perintah.Netstat akan memberi Anda output seperti ini, dan cukup mudah untuk mencari
.ssh
di output.ps
akan memberikan Anda output seperti ini, tetapi ini sedikit lebih sulit karena Anda harus memastikan tidak perlu khawatir tentang koneksi keluar.Netstat
mungkin cara yang tepat untuk pergi.sumber
session
rantai PAM SSH dengan program yang menyentuh file ketika pengguna masuk melalui SSH dan menghapusnya ketika pengguna logout dan kemudian memiliki program yang Anda sarankan hanya memeriksa keberadaan file-file ini. Jika ini berhasil, saya menerima jawaban Anda.who
sebagai gantinya. Ini menunjukkan pengguna mana yang terhubung atau dari host mana.who
tidak memberikan banyak output, tetapi kebanyakan shell lain tidak. (Sistem tertanam konyol ...) Bagaimanapun, jika Anda ingin menggunakannetstat
, cukup mudah untuk mendapatkan kolom yang Anda butuhkanawk
. Sesuatu di sepanjang garisnetstat -a | awk '{print $4}'
(Setidaknya pada cangkang saya.)Anda sebenarnya menemukan informasi yang tepat. Setidaknya itu bekerja di bawah Ubuntu hingga 13,04.
Entri kebijakan berikut, ketika disetel dengan "auth_admin_keep" seperti di bawah ini, akan lebih suka shutdown terjadi:
Namun entah bagaimana, sejak pukul 13.10, kebijakan ini benar-benar diabaikan. Sejauh ini tidak ada yang bisa memberi tahu saya apa yang akan menggantikannya (jika ada.)
Perhatikan bahwa Anda juga memiliki entri untuk memulai ulang (org.freedesktop.consolekit.system.restart-multiple-users) yang juga harus diatur ke
auth_admin_keep
.Lihat pertanyaan / jawaban ini juga di AskUbuntu: /ubuntu/1190/how-can-i-make-shutdown-not-require-admin-password
sumber
Hitung koneksi SSH, dan jika lebih dari koneksi Anda, maka shutdown:
Sesuatu seperti ini?
Saya mungkin akan memasukkan beberapa variabel baca sehingga akan meminta saya, seperti "Apakah Anda ingin mematikan?" dan "Apakah Anda ingin mematikan?".
Maka Anda bisa menggunakannya sebagai alias atau serupa.
sumber