Cara Mengaktifkan Semua Fungsi SYSRQ di Linux

Cara Mengaktifkan Semua Fungsi SYSRQ di Linux

Objektif

Ketahui Cara Membolehkan Fungsi SYSRQ, dan Cara Menggunakan Memohon Mereka Dengan Menggunakan Kekunci Perintah.

Keperluan

  • Keizinan akar
  • Kernel linux disusun dengan pilihan "config_magic_sysrq"

Konvensyen

  • # - Memerlukan arahan Linux yang diberikan dengan keistimewaan akar sama ada
    secara langsung sebagai pengguna akar atau dengan menggunakan sudo perintah
  • $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Pengenalan

Gabungan Kunci SYSRQ boleh digunakan untuk menghantar arahan terus ke kernel Linux dalam beberapa keadaan tertentu: kernel akan bertindak balas terhadap arahan yang dihantar dengan Kekunci Perintah segera, melainkan jika ia dikunci sepenuhnya. Pelbagai Kekunci Perintah mencapai tugas tertentu, dan mereka boleh digabungkan untuk memulihkan sistem ke keadaan yang selamat, atau untuk mendapatkan reboot yang bersih apabila tidak ada yang lain berfungsi: inilah yang dapat kita perolehi dengan Reisub urutan.

Dalam tutorial ini, kita akan melihat bagaimana untuk membolehkan semua fungsi SYSRQ menggunakan pemasangan standard Ubuntu 18.04 - Beaver Bionic sebagai asas.

Kunci sihir sysrq

The Sysrq Gabungan kunci terdiri daripada tiga kunci yang akan ditekan bersama: Kunci Perintah Alt + Sysrq +. Anda mungkin tertanya -tanya apa itu Sysrq Kunci pada papan kekunci anda. Dengan mengandaikan anda menggunakan papan kekunci QWERTY, Sysrq kunci sepadan dengan Cetak kunci.

Akhirnya, kunci arahan adalah kunci pada papan kekunci yang apabila ditekan pada mod khas ini, akan segera menghantar arahan ke kernel. Kami akan melihat beberapa kunci dan fungsi yang berkaitan dengannya dalam seketika, tetapi sebelum meneruskan, kita mesti memastikan bahawa kernel yang kami gunakan telah disusun dengan pilihan yang diperlukan.



Pilihan kernel config_magic_sysrq

Seperti yang dikatakan di atas, untuk Sysrq Gabungan utama untuk berfungsi, kernel mesti dibina dengan Config_magic_sysrq pilihan diaktifkan. Ini biasanya berlaku dalam semua pengagihan utama, namun ia berguna untuk mengetahui cara memeriksa keadaannya. Inilah cara kita dapat melakukannya. Perkara pertama yang ingin kita ketahui ialah versi dan nama kernel yang kita gunakan. Mendapatkan maklumat ini sangat mudah, kami hanya menjalankan:

$ uname -r 4.13.0-25-generik 

Seperti yang anda tahu, uname Perintah digunakan untuk mendapatkan beberapa maklumat sistem. Dalam kes ini kami menggunakannya dengan -r bendera, seperti yang kita hanya ingin tahu mengenai pelepasan kernel.Hasil perintah telah 4.13.0-25-generik: itulah nama kernel yang digunakan oleh sistem kami. Kita sekarang boleh melihat di dalam /boot direktori untuk fail konfigurasi yang sepadan: Fail ini mengandungi semua pilihan kernel yang telah disusun dengan. Kita boleh mencari nilai yang digunakan untuk Config_magic_sysrq di dalamnya:

$ ls /boot abi-4.13.0-25-generik initrd.IMG-4.13.0-25-generik memtest86+_multiboot.Bin Config-4.13.0-25-generik Memtest86+.sistem bin.Peta-4.13.0-25-generik grub memtest86+.ELF VMLINUZ-4.13.0-25-generik 

Seperti yang dijangkakan fail hadir: config-4.13.0.25-generik adalah apa yang kita cari. Kami kini mempunyai semua yang kami perlukan, mari kita lakukan cek:

$ grep -i config_magic_sysrq /boot /config -4.13.0-25-generic config_magic_sysrq = y config_magic_sysrq_default_enable = 0x01b6 config_magic_sysrq_serial = y 

Seperti yang anda lihat pada baris pertama, pilihannya Config_magic_sysrq mempunyai y sebagai nilainya, yang bermaksud bahawa ia ditetapkan sebagai terbina dalam ketika kernel dikonfigurasikan. Apa yang dimaksudkan oleh baris lain? The Config_magic_sysrq_default_enable pilihan menentukan fungsi lalai yang didayakan: Nilai dinyatakan dalam Hexadecimal bentuk, dalam kes ini 0x01b6 yang sesuai dengan 438 dalam bentuk perpuluhan.

Seperti yang akan kita lihat kemudian dalam tutorial ini, nilai ini bermaksud bahawa kebanyakan fungsi diaktifkan secara lalai. Walau bagaimanapun, kebanyakan pengagihan melumpuhkan penyerahan mereka melalui kombinasi utama untuk alasan keselamatan. Pilihan ketiga tidak begitu penting bagi kita sekarang: ini adalah mengenai membolehkan Kunci Sysrq lebih dari siri.



Memeriksa nilai sysrq semasa

Majoriti pengagihan melumpuhkan akses kepada beberapa Sysrq fungsi melalui kombinasi utama untuk alasan keselamatan (semua fungsi bagaimanapun sentiasa tersedia jika digunakan melalui /Proc/Sysrq-Trigger dengan keistimewaan akar). Untuk memeriksa apakah fungsi yang ada dalam sistem kami, kami hanya dapat menjalankan:

$ kucing/proc/sys/kernel/sysrq 176 

Perintah itu mengembalikan nilai 176. Bagaimana nilai ini diperoleh, dan apakah yang dipertikaikan? Setiap nilai sepadan dengan fungsi tertentu, seperti yang anda lihat dalam senarai di bawah:

0 - Lumpuhkan SYSRQ sepenuhnya 1 - Dayakan semua fungsi SYSRQ 2 - Dayakan Kawalan Konsol Pembalakan Tahap 4 - Dayakan Kawalan Papan Kekunci (SAK, UNRAW) 8 - Membolehkan Dumpging Dumps of Processes dll dll. 16 - Dayakan Perintah Sync 32 - Dayakan Remount Read -Only 64 - Dayakan Isyarat Proses (Istilah, Membunuh, Oom -Kill) 128 - Benarkan Reboot/Poweroff 256 - Benarkan Nicing semua tugas RT 

Walaupun nilai 0 melumpuhkan semua Sysrq fungsi dan nilai 1 membolehkan mereka semua, memberikan nilai yang lebih besar daripada 1, kita dapat membolehkan yang tertentu. Seperti yang disahkan di atas, kami mempunyai Sysrq nilai 176. Ini diperoleh dari jumlah 128 (yang membolehkan reboot dan poweroff) + 32 (Keupayaan untuk mengulangi sistem fail dalam mod baca sahaja) + 16, yang membolehkan perintah penyegerakan. Dengan cara yang sama, nilai 438 diperoleh dari jumlah 2 + 4 + 16 + 32 + 128 + 256, jadi semua fungsi yang sepadan diaktifkan.

Cara menukar nilai sysrq

Kita sekarang tahu apa yang Sysrq nilai adalah, tetapi bagaimana kita boleh mengubahnya? Untuk segera mengubah nilai ini, kita hanya perlu menulis yang dikehendaki /proc/sys/kernel/sysrq fail, dengan menjalankan:

# echo "1">/proc/sys/kernel/sysrq

Dengan cara ini, perubahan itu akan segera berkesan tetapi tidak akan bertahan dengan reboot. Cara membuatnya berterusan? Itu sangat sederhana. Penyelesaian generik, yang berfungsi dalam semua pengagihan Linux, adalah untuk meletakkan nilai kernel.Sysrq di dalam /etc/sysctl.D/99-SYSCTL.Conf Fail:

# echo "kernel.sysrq = 1 ">> /etc /sysctl.D/99-SYSCTL.Conf

Sila perhatikan bagaimana kami menggunakan >> Operator Pengalihan: Ini akan memasukkan teks ke fail dan tidak akan mengatasi tetapan lain yang sudah ada.



Urutan reisub

Dari semua urutan utama arahan, Reisub mungkin yang paling terkenal. Untuk lebih ingat urutan ini, ia sering digunakan sebagai akronim untuk "menaikkan gajah sangat membosankan". Apa yang dilakukan oleh urutan ini? Memegang Kunci alt+sysrq, Kami meneruskan menekan kekunci perintah dalam urutan, dan inilah yang berlaku:

Pertama sekali r menukar papan kekunci dari mentah ke Xlate Mod, kemudian, e Menghantar a Sigterm isyarat kepada semua proses, supaya mereka dapat ditutup dengan cara yang anggun jika mungkin. Selepas itu kami menghantar a Sigkill isyarat dengan menekan i, untuk menamatkan proses yang tinggal yang tidak memberi respons kepada isyarat sebelumnya. Dengan s Kami cuba menyegerakkan semua sistem fail yang dipasang dan siram semua perubahan dari cache ke cakera dengan segera. Dengan menggunakan u Kami mengulangi semua sistem fail di baca sahaja mod, dan akhirnya dengan menekan b, Kami melakukan reboot sistem.

The Reisub urutan boleh digunakan dalam situasi tertentu apabila sistem menjadi sangat tidak bertindak balas, dan penyelesaian lain tidak mencukupi untuk memperbaiki perkara. Kekunci arahan yang menyusun urutan ini, bagaimanapun, hanya subset yang tersedia: untuk senarai lengkap, anda boleh melihat Sysrq Dokumentasi kernel.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Perintah Linux Asas
  • Cara mencetak pokok direktori menggunakan linux
  • Muat turun linux
  • Fail Konfigurasi Linux: 30 teratas yang paling penting
  • Pasang Arch Linux di Workstation VMware
  • Distro linux terbaik untuk pemaju
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..