Cómo comprobar si el sistema está en modo de usuario único en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo verificar el estado operativo de un sistema Linux, centrándote específicamente en cómo determinar si el sistema está en modo de usuario único. Explorarás los niveles de ejecución (runlevels) tradicionales utilizando los comandos runlevel y who -r, y también examinarás el objetivo del sistema predeterminado en entornos modernos de systemd utilizando systemctl get-default. Esta experiencia práctica te proporcionará habilidades prácticas para comprender y verificar el estado operativo del sistema.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/FileandDirectoryManagementGroup -.-> linux/which("Command Locating") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/whoami("User Identifying") subgraph Lab Skills linux/help -.-> lab-558810{{"Cómo comprobar si el sistema está en modo de usuario único en Linux"}} linux/which -.-> lab-558810{{"Cómo comprobar si el sistema está en modo de usuario único en Linux"}} linux/service -.-> lab-558810{{"Cómo comprobar si el sistema está en modo de usuario único en Linux"}} linux/whoami -.-> lab-558810{{"Cómo comprobar si el sistema está en modo de usuario único en Linux"}} end

Verificar el nivel de ejecución (runlevel) con runlevel

En este paso, exploraremos el concepto de niveles de ejecución (runlevels) en Linux y cómo verificar el nivel de ejecución actual utilizando el comando runlevel.

Los niveles de ejecución representan diferentes estados operativos de un sistema Linux. Cada nivel de ejecución define qué servicios se inician y se detienen. Por ejemplo, un nivel de ejecución podría ser para un sistema multi-usuario con una interfaz gráfica, mientras que otro podría ser para un modo de usuario único utilizado para mantenimiento.

Si bien las distribuciones modernas de Linux a menudo utilizan objetivos de systemd en lugar de niveles de ejecución tradicionales, entender los niveles de ejecución sigue siendo valioso, ya que es posible que los encuentres en sistemas antiguos o en la documentación.

Vamos a verificar el nivel de ejecución actual de tu entorno LabEx. Abre la terminal si aún no lo has hecho.

Escribe el siguiente comando y presiona Enter:

runlevel

Deberías ver una salida similar a esta:

N 5

Analicemos la salida:

  • El primer carácter (N en este caso) indica el nivel de ejecución anterior. N significa que no hubo un nivel de ejecución anterior (el sistema acaba de iniciar).
  • El segundo carácter (5 en este caso) indica el nivel de ejecución actual.

En los sistemas tradicionales SysVinit, los niveles de ejecución comunes incluyen:

  • 0: Detener (apagar el sistema)
  • 1: Modo de usuario único (para mantenimiento)
  • 2: Modo multi-usuario, sin red
  • 3: Modo multi-usuario, con red (consola de texto)
  • 4: No utilizado/definible por el usuario
  • 5: Modo multi-usuario, con red y una interfaz gráfica
  • 6: Reiniciar (volver a iniciar el sistema)

Tu entorno LabEx está funcionando en el nivel de ejecución 5, que corresponde a un sistema multi-usuario con un entorno de escritorio gráfico.

Comprender los niveles de ejecución te ayuda a solucionar problemas de inicio del sistema y a administrar los servicios del sistema.

Haz clic en Continuar para pasar al siguiente paso.

Verificar el nivel de ejecución (runlevel) con who -r

En el paso anterior, utilizamos el comando runlevel para verificar el nivel de ejecución actual. Otra forma de obtener información similar es utilizando el comando who con la opción -r.

El comando who se utiliza típicamente para mostrar quién está conectado al sistema. Sin embargo, con la opción -r, muestra el nivel de ejecución actual.

Vamos a probarlo. En tu terminal, escribe el siguiente comando y presiona Enter:

who -r

Deberías ver una salida similar a esta:

           run-level 5  <DATE> <TIME>

Esta salida confirma que el sistema está actualmente en el nivel de ejecución 5. La fecha y la hora indican cuándo el sistema entró en este nivel de ejecución.

Comparando la salida de runlevel y who -r, puedes ver que ambos comandos proporcionan información sobre el nivel de ejecución actual, aunque el formato es diferente. who -r da una salida más descriptiva que incluye la fecha y la hora.

Utilizar diferentes comandos para obtener resultados similares es común en Linux. Es útil conocer múltiples formas de obtener la información que necesitas, ya que algunos comandos pueden estar disponibles en ciertos sistemas mientras que otros no, o un comando puede proporcionar información más detallada que otro.

Practica utilizando tanto runlevel como who -r para sentirte cómodo verificando el estado operativo del sistema.

Haz clic en Continuar para pasar al siguiente paso.

Inspeccionar el objetivo predeterminado (default target) con systemctl get-default

Como se mencionó anteriormente, las distribuciones modernas de Linux a menudo utilizan systemd en lugar del sistema tradicional SysVinit. systemd utiliza "objetivos" (targets) que son similares en concepto a los niveles de ejecución (runlevels), pero ofrecen más flexibilidad.

Un objetivo es un grupo de unidades de systemd (como servicios, puntos de montaje, sockets, etc.) que el sistema debe iniciar o detener para alcanzar un estado deseado. El objetivo predeterminado es el estado en el que se inicia el sistema.

Podemos utilizar el comando systemctl para interactuar con systemd. El subcomando get-default muestra el objetivo predeterminado.

Nota: Debido a la naturaleza del entorno LabEx que se ejecuta en un contenedor Docker, el comando systemctl puede comportarse de manera diferente o mostrar información limitada en comparación con una instalación completa del sistema operativo. Sin embargo, todavía podemos usarlo para entender el concepto de objetivos predeterminados.

En tu terminal, escribe el siguiente comando y presiona Enter:

systemctl get-default

Deberías ver una salida similar a esta:

graphical.target

Esta salida indica que el objetivo predeterminado de este sistema es graphical.target. Este objetivo típicamente incluye todos los servicios necesarios para un sistema multi-usuario con un entorno de escritorio gráfico, lo que coincide con el nivel de ejecución 5 que vimos anteriormente.

Otros objetivos comunes incluyen:

  • multi-user.target: Similar al nivel de ejecución 3, un sistema multi-usuario sin interfaz gráfica.
  • rescue.target: Un modo de usuario único para la recuperación del sistema.
  • reboot.target: Se utiliza para reiniciar el sistema.
  • poweroff.target: Se utiliza para apagar el sistema.

Si bien es posible que no puedas cambiar el objetivo predeterminado en este entorno LabEx, entender cómo verificarlo con systemctl get-default es una habilidad fundamental para administrar sistemas basados en systemd.

Ahora has aprendido tres formas diferentes de verificar el estado operativo del sistema o su estado de arranque predeterminado: runlevel, who -r y systemctl get-default.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendimos cómo verificar el estado operativo del sistema en Linux. Comenzamos explorando el concepto de niveles de ejecución (runlevels), que representan diferentes estados del sistema, y utilizamos el comando runlevel para determinar el nivel de ejecución actual. Comprendimos el significado de la salida, incluyendo los niveles de ejecución anteriores y actuales, y revisamos los niveles de ejecución comunes en los sistemas tradicionales SysVinit.

Luego aprendimos un método alternativo para verificar el nivel de ejecución utilizando el comando who -r, que proporciona información similar sobre el nivel de ejecución del sistema. Finalmente, examinamos cómo las distribuciones modernas de Linux, que a menudo utilizan systemd, gestionan los estados del sistema a través de objetivos (targets) en lugar de los niveles de ejecución tradicionales, y utilizamos el comando systemctl get-default para identificar el objetivo predeterminado.