Saya sudah googling ini beberapa waktu lalu dan memperhatikan beberapa cara, tapi saya kira google tidak tahu semuanya. Jadi, bagaimana Anda menendang pengguna dari kotak Linux Anda? juga bagaimana Anda bisa melihat mereka masuk di tempat pertama? dan terkait ... apakah metode Anda berfungsi jika pengguna masuk ke X11 DE (bukan persyaratan yang saya hanya ingin tahu)?
users
administration
xenoterracide
sumber
sumber
who(1)
atauw(1)
. Satu-satunya cara yang sangat mudah untuk menyingkirkan rootkit potensial yang mungkin diinstal adalah dengan sepenuhnya menghapus dan menginstal ulang sistem.Jawaban:
Mungkin ada cara yang lebih mudah, tetapi saya melakukan ini:
Lihat siapa yang masuk ke mesin Anda - gunakan
who
atauw
:Cari ID proses dari shell yang terhubung dengan TTY mereka:
Tertawalah pada pemutusan yang akan datang mereka (langkah ini opsional, tetapi dianjurkan)
Bunuh proses yang sesuai:
Saya baru saja menemukan Anda dapat menggabungkan langkah-langkah 1 dan 2 dengan memberikan
who
para-u
bendera; PID adalah angka ke kanan:sumber
kill -9
ya Anda benar-benar dalam mode BOFH yang satu ini.kill -9
, dan mulai dengan sinyal yang lebih lembut , tapi saya kira dalam konteks ini tidak terlalu penting. Saya hanya meninggalkan komentar kalau-kalau orang ketinggalan lelucon.Seperti yang telah ditunjukkan oleh Micheal, Anda dapat menggunakan
who
untuk mengetahui siapa yang masuk. Namun jika mereka memiliki beberapa proses, ada cara yang lebih nyaman daripada membunuh setiap proses secara terpisah: Anda dapat menggunakankillall -u username
untuk membunuh semua proses oleh pengguna itu.sumber
killall
juga akan sedikit lebih tepat di lingkungan grafis, karena ada lebih dari sekedar shell untuk membunuh.Penujuman!
Saya menghargai humor dari jawaban yang diterima, tetapi secara profesional saya tidak bisa mendukungnya.
Metode paling anggun yang saya ketahui adalah mengirim -HUP ke shell untuk mensimulasikan hangup pengguna. Anda dapat mengirim ini ke sshd idle pengguna untuk mensimulasikan koneksi mereka terputus, yang memicu pembersihan seluruh lingkungan shell (termasuk cangkang anak), atau mengirim ini ke cangkang bersarang tertentu (misalnya, yang mengatur di dalam terminal multiplexer yang terputus yang menjaga Anda dari unmount sistem file) jika Anda ingin benar-benar tepat.
Menggunakan
write
untuk mengirim pesan ke terminal idle sebelum Anda mem-bootnya adalah hobi yang menyenangkan.sumber
echo "Hasta la vista, baby" | write user_name pty_name && sleep 30 && killall -u user_name -HUP
(tidur memberikan pengguna kesempatan untuk menyimpan dan logout, tetapi Anda mungkin hanya menggunakan ini pada pengguna yang lupa logout)Logout 'username' pengguna:
Lihat
man skill
sumber
Perintah lain yang bermanfaat ada di
pkill
sinipkill -u username && pkill -9 -u username
.killall
memiliki kelemahan bahwa pada Solaris IIRC itu berarti sesuatu yang sama sekali berbeda - jugapkill
memiliki opsi yang sedikit lebih maju.sumber
Pertama-tama, ini menunjukkan masalah yang lebih besar. Jika Anda memiliki pengguna yang tidak Anda percayai pada sistem Anda, Anda mungkin harus naik level dan gambar ulang.
Dengan mengingat hal itu, Anda dapat melakukan beberapa atau semua hal berikut ini:
sumber
you have users that you don't trust on your system
... Atau mungkin saja Anda membunuh satu sebagai pesan kepada yang lain. Lagi pula, bukankah kepercayaan sysadmin itu bukanlah "Lebih baik ditakuti daripada dicintai"? Selain semua lelucon, Machiavelli harus menulis buku O'Reilly.Saya melihat sekeliling dan tidak dapat menemukan satu skrip pun untuk mengotomatiskan tugas ini.
Jadi, berdasarkan solusi yang diusulkan di sini, saya mencampur semuanya dalam skrip Bash interaktif yang mencantumkan pengguna dan sesi dari
who -u
pengguna untuk memilih apa yang harus dilakukan.Anda kemudian dapat:
killall -u <username> -HUP
kill <PID>
Semua informasi yang diperlukan berasal
who -u
dan kemudian diuraikan menggunakanmapfile
danawk
.Saya akan menambahkan kemungkinan untuk mengirim pesan menggunakan
write
nanti (forking proses dengan penundaan).Saya mungkin akan menambahkan opsi untuk membunuh sesi tertentu
kill -9
juga. Tapi saya tidak punya masalah dengan adilkill
dan seperti yang ditunjukkan oleh orang lain,kill -9
harus dihindari jika memungkinkan.Anda dapat memeriksa kode di github jika Anda ingin mencobanya atau mempelajari lebih lanjut tentang bagaimana saya melakukannya dengan cara otomatis:
sumber
Pada akhirnya, hal itu berujung pada pengidentifikasian dan penghentian proses-proses yang dimiliki, dikaitkan, atau muncul dari id pengguna. Apa pun perintah yang Anda gunakan untuk mencapai tujuan akhir itu tidak masalah selama Anda sampai di sana.
Pada dasarnya dua jawaban ...
Opsi A: menyebabkan keluar dari kata pengguna, yang pernah dan bagaimanapun banyak login mereka miliki. Jadi ini berarti mengidentifikasi proses-proses yang dimiliki oleh pengguna, dapat dilacak oleh uid, dan diklasifikasikan sebagai bagian dari beberapa proses login untuk distro linux yang Anda jalankan. Sadarilah ada proses induk seperti SSH atau VNC sebelum "masuk" dan proses anak seperti GDM setelah "masuk" Biasanya membunuh proses induk akan membunuh proses anak, tetapi tidak selalu. Jadi, Anda ingin membunuh proses lain yang jelas tidak lagi diperlukan setelah logout. Dalam melakukan semua ini, ini akan membuat pekerjaan latar belakang tetap berjalan ... karena itu adalah pengguna yang ramah dan mungkin Anda hanya ingin keluar. Sejauh yang saya tahu,
/usr/bin/w
dan/usr/bin/who
akan melaporkan siapa yang telah melewati proses login.opsi B: akhiri semua proses yang dimiliki oleh uid tertentu sepenuhnya, yang berarti membunuh setiap dan semua proses yang dimiliki oleh pengguna tersebut, ini juga akan mengeluarkan mereka jika mereka login. Ini akan memuaskan tendangan mereka dari sistem . Itu hanya perlu sederhana
ps -ef | grep <uid>
dan kemudian mengakhiri semua proses dengan cara apa pun yang dapat diterima.fwiw di SLES 11 melaporkannya
kill -9
FTW!sumber
Menurut pendapat saya, itu tidak benar-benar berguna untuk digunakan
killall -u username
karena jika itu adalah pengguna yang sama dengan Anda, Anda akan menendang diri sendiri. Jadikill
prosesnya akan menjadi solusi yang lebih baik.sumber
Perintah ini bekerja sangat baik untuk GUI saya "signifikan" menolak untuk keluar dari ...
Beberapa pengalihan jika Anda membutuhkannya.
sumber