Cómo habilitar todas las funciones SYSRQ en Linux

Cómo habilitar todas las funciones SYSRQ en Linux

Objetivo

Aprenda cómo habilitar las funciones SYSRQ y cómo usar Invocarlas usando las teclas de comando.

Requisitos

  • Permisos de raíz
  • Linux Kernel compilado con la opción "config_magic_sysrq" habilitada

Convenciones

  • # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz
    directamente como usuario raíz o mediante el uso de sudo dominio
  • ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Introducción

La combinación de clave SYSRQ se puede usar para enviar comandos directamente al núcleo de Linux en algunas circunstancias específicas: el núcleo responderá a los comandos enviados con claves de comando inmediatamente, a menos que esté completamente bloqueado. Varios claves de comando lograr tareas específicas, y se pueden combinar para restaurar el sistema a un estado seguro, o para obtener un reinicio limpio cuando nada más funciona: esto es lo que podemos obtener con el reisub secuencia.

En este tutorial veremos cómo habilitar todas las funciones SYSRQ utilizando una instalación estándar de Ubuntu 18.04 - Beaver biónico como base.

La llave mágica sysrq

El Sysrq La combinación de teclas consta de tres teclas para presionar juntas: Alt + sysrq + clave de comando. Puede que te preguntes qué es el Sysrq Key en tu teclado. Suponiendo que esté utilizando un teclado Qwerty, el Sysrq La clave corresponde al imprimir llave.

Finalmente, una tecla de comando es una tecla en el teclado que cuando se presiona en este modo especial, enviará inmediatamente un comando al núcleo. Veremos algunas de estas claves y las funciones asociadas con ellas en un momento, pero antes de continuar debemos estar seguros de que el núcleo que estamos usando ha sido compilado con la opción necesaria habilitada.



La opción config_magic_sysrq kernel

Como se dijo anteriormente, para el Sysrq Combinación clave para trabajar, el núcleo debe haberse construido con el Config_magic_sysrq Opción habilitada. Este suele ser el caso en todas las distribuciones principales, sin embargo, puede ser útil saber cómo verificar su estado. Así es como podemos hacerlo. Lo primero que queremos saber es la versión y el nombre del kernel que estamos usando. Obtener esta información es muy fácil, solo ejecutamos:

$ uname -r 4.13.0-25-genérico 

Como probablemente sepa, el tu nombre El comando se utiliza para recuperar alguna información del sistema. En este caso lo usamos con el -riñonal bandera, como solo queríamos saber sobre el liberación de núcleo.El resultado del comando ha sido 4.13.0-25-genérico: Ese es el nombre del núcleo utilizado por nuestro sistema. Ahora podemos mirar dentro del /bota Directorio para el archivo de configuración correspondiente: este archivo contiene todas las opciones con las que se ha compilado el kernel. Podemos buscar el valor utilizado para Config_magic_sysrq en eso:

$ LS /BOOT ABI-4.13.0-25 Genérico initrd.IMG-4.13.0-25 Genérico Memtest86+_Multiboot.bin config-4.13.0-25 Genérico Memtest86+.sistema bin.mapa 4.13.0-25 GRUB GRUB MEMTEST86+.elfo vmlinuz-4.13.0-25-genérico 

Como se esperaba, el archivo está presente: config-4.13.0.25-Genérico es lo que estamos buscando. Ahora tenemos todo lo que necesitamos, hagamos el cheque:

$ 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 

Como puede ver en la primera línea, la opción Config_magic_sysrq tiene Y como su valor, lo que significa que se estableció como incorporado cuando se configuró el núcleo. ¿Qué representan las otras líneas?? El Config_magic_sysrq_default_enable La opción especifica las funciones predeterminadas habilitadas: el valor se expresa en hexadecimal forma, en este caso 0x01b6 que corresponde a 438 en forma decimal.

Como veremos más adelante en este tutorial, este valor significa que la mayoría de las funcionalidades están habilitadas de forma predeterminada. Sin embargo, la mayoría de las distribuciones deshabilitan su invocación a través de la combinación de clave por razones de seguridad. La tercera opción no es muy importante para nosotros ahora: se trata de habilitar el Clave SYSRQ sobre serie.



Verificar el valor actual de SYSRQ

La mayoría de las distribuciones deshabilitan el acceso a algunos de Sysrq Funciones a través de combinaciones clave por razones de seguridad (sin embargo, todas las funcionalidades siempre están disponibles si se invoca a través de /proc/sysrq-tgger con privilegios raíz). Para verificar cuáles son las funciones disponibles en nuestro sistema, podemos ejecutar:

$ cat/proc/sys/kernel/sysrq 176 

El comando devolvió un valor de 176. Cómo se obtiene este valor y qué significa? Cada valor corresponde a una determinada función, como puede ver en la lista a continuación:

0 - Desactive SYSRQ completamente 1 - Habilite todas las funciones de SYSRQ 2 - Habilite el control del nivel de registro de la consola 4 - Habilite el control del teclado (SAK, UNRAW) 8 - Habilite los vertederos de depuración de procesos, etc. 16 - Habilitar el comando de sincronización 32 - Habilitar solo lectura de lectura 64 - Habilitar señalización de procesos (término, kill, oom -kill) 128 - Permitir reinicio/poweroff 256 - Permitir el nombre de todas las tareas RT 

Mientras que un valor de 0 deshabilita todo Sysrq funciones y un valor de 1 habilita todos ellos, proporcionando valores más grandes que 1, podemos habilitar los específicos. Como se verificó anteriormente, tenemos un Sysrq valor de 176. Esto se obtiene de la suma de 128 (que permite reiniciar y poweroff) + 32 (Capacidad para montar los sistemas de archivos en modo de solo lectura) + dieciséis, que habilita el comando de sincronización. De la misma manera, el valor de 438 se obtiene de la suma de 2 + 4 + 16 + 32 + 128 + 256, por lo que todas las funciones correspondientes están habilitadas.

Cómo cambiar el valor SYSRQ

Ahora sabemos qué Sysrq El valor es, pero ¿cómo podemos cambiarlo?? Para cambiar inmediatamente este valor, solo tenemos que escribir el buscado al /proc/sys/kernel/sysrq archivo, ejecutando:

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

De esta manera, el cambio será inmediatamente efectivo, pero no sobrevivirá a un reinicio. Cómo hacerlo persistente? Eso es muy simple. Una solución genérica, que funciona en todas las distribuciones de Linux, es poner el valor de núcleo.sysrq en el /etc/sysctl.d/99-Sysctl.confusión archivo:

# echo "núcleo.sysrq = 1 ">> /etc /sysctl.d/99-Sysctl.confusión

Observe cómo usamos el >> Operador de redirección: esto agregará el texto al archivo y no anulará otras configuraciones que ya podría contener.



La secuencia de reisub

De todas las secuencias de clave de comando, reisub es probablemente el mas famoso. Para recordar mejor esta secuencia, a menudo se usa como acrónimo para "criar elefantes es tan aburrido". ¿Qué logra esta secuencia?? Tenencia Clave Alt+SYSRQ, Procedemos presionando las teclas de comando en secuencia, y esto es lo que sucede:

En primer lugar riñonal cambia el teclado desde crudo a Xlate modo, entonces, mi envía un Siglo señal a todos los procesos, para que puedan cerrarse de manera elegante si es posible. Después de eso enviamos un Sigkill señal presionando i, Para terminar el proceso restante que no respondió a la señal anterior. Con s Intentamos sincronizar todos los sistemas de archivos montados y enjuague todos los cambios desde el caché al disco inmediatamente. Mediante el uso u Retrocedemos todos los sistemas de archivos en solo lectura modo, y finalmente presionando b, Realizamos un reinicio del sistema.

El reisub La secuencia se puede usar en ciertas situaciones cuando el sistema se vuelve muy insensible, y otras soluciones no son suficientes para arreglar las cosas. Sin embargo, las claves de comando que componen esta secuencia son solo un subconjunto de las disponibles: para una lista completa, puede echar un vistazo a Sysrq documentación del núcleo.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Comandos de Linux: los 20 comandos más importantes que necesitas ..
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Comandos básicos de Linux
  • Cómo imprimir el árbol de directorio usando Linux
  • Descarga de Linux
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Instale Arch Linux en VMware Workstation
  • La mejor distribución de Linux para desarrolladores
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..