Bagaimana saya bisa memaksa pengguna lain untuk keluar?

14

Apakah ada cara sederhana bagi saya untuk memaksa pengguna lain keluar dari kotak linux, sementara saya login sebagai root? Saya mengerti bahwa saya bisa menentukan jenis sesi apa yang telah mereka buka, dan membunuh pid - tapi saya pikir pasti ada perintah untuk melakukan ini yang saya tidak tahu.

Ada ide?

Brent
sumber

Jawaban:

15

Anda bisa slay(1)membuatnya sederhana . :-)

David Schmitt
sumber
Ha! Rapi. Saya belum pernah mendengar perintah ini sebelumnya. Apakah tersedia di semua sistem? Tentu terlihat seperti itu mengalahkan proses shell mereka.
Jonathon Watney
Ini mungkin dikemas untuk semua distro, tetapi jika Anda membutuhkan sesuatu yang bekerja di mana-mana, keterampilan dari procp --- seperti yang ditunjukkan Mihai --- mungkin merupakan pilihan yang lebih baik. Ini memiliki gaya yang lebih sedikit ;-)
David Schmitt
1
openSuse 11.4 - bunuh: perintah tidak ditemukan :( :(
usr-local-ΕΨΗΕΛΩΝ
Tidak diinstal pada host Ubuntu 12.04 atau RHEL 3 yang saya miliki saat ini, saya memang memiliki skillperintah yang dirinci oleh Mihai Limbăşan. YMMV
David
Instal dari semesta: packages.ubuntu.com/search?keywords=slay
David Schmitt
10

Anda dapat membunuh semua proses pengguna melalui skill. Contoh:

  • skill -TERM -u username

akan mengirim SIGTERM ke semua usernameproses. Untuk membunuh mereka untuk selamanya (melalui SIGKILL) gunakan -KILL daripada -TERM - harap dicatat, bahwa Anda kemungkinan besar akan menyebabkan mereka kehilangan data seperti itu. Ini sangat efektif, ingat ...

skilladalah bagian dari procpspaket yang diinstal oleh semua distro secara default.

Mihai Limbăşan
sumber
Bagi orang lain yang ingin melakukan ini untuk semua sesi pengguna jarak jauh, flag -v ( -v pts/*), yang berasal dari halaman manual mungkin berguna.
David
2

The pkilldan killalllebih disukai lebih skill. Ini dari skillhalaman manual:

Alat-alat ini mungkin sudah usang dan tidak dapat diport. Sintaks perintah tidak didefinisikan dengan baik. Pertimbangkan menggunakan killall, pkilldan pgrepperintah sebagai gantinya.

Ini harus melakukan trik:

sudo pkill -KILL -u [user]

atau

sudo killall -u [user]
David
sumber
1
Jangan coba ini pada root.
Michael Hampton
0

Cara mudah lain untuk melakukannya adalah menjalankan di kill -1 <pid>mana pid adalah nomor ID proses sesi SSH.

Dengan menjalankan perintah ini, Anda dapat melihat semua pohon proses sshd , dengan mematikan ID proses induk Anda akan secara efektif membunuh sesi pengguna yang terkait dengannya:

$ ptree -p

Cari sshd dan kemudian jalankan:

$ kill -1 39383

Di mana 39383 adalah contoh nomor ID proses sewenang-wenang.

Ya Barry
sumber