El contenido del artículo
Loginctl: Guía para el proyecto «Losst»
La utilidad loginctl es parte del conjunto de utilidades systemd para la administración del sistema. Le permite administrar las sesiones de usuario actuales, ver la lista de usuarios activos, bloquear la pantalla o finalizar sesiones por completo, finalizar procesos de usuario y mucho más.
Anteriormente, tenías que usar varias utilidades y archivos de configuración para todo esto, pero ahora todo está en un solo lugar. En este artículo, veremos cómo usar loginctl, así como para qué puede ser útil esta utilidad.
El contenido del artículo
Conceptos básicos de Loginctl
La utilidad loginctl le permite interactuar con todo lo relacionado con la autorización de usuarios. La documentación oficial dice que loginctl está diseñado para controlar el administrador de inicio de sesión systemd-logind. La empresa de servicios públicos opera con las siguientes entidades:
- Usuario – cualquier usuario registrado en el sistema;
- Sesión – Autorización de usuario en el sistema, cada inicio de sesión, a excepción de sudo y su, se considera una nueva sesión. Puede iniciar sesión en varios TTY, a través de SSH o en el administrador de inicio de sesión gráfico, todas estas serán sesiones nuevas;
- Asiento – Este concepto le permite conectar varios pares de ratones, teclados, monitores a su computadora y usarlo por varios usuarios al mismo tiempo. Por lo general, esta función no se utiliza y la utilidad muestra solo un lugar de trabajo.
Ahora, echemos un vistazo a la sintaxis y a las opciones de loginctl disponibles.
Sintaxis y opciones de Loginctl
La sintaxis de la utilidad es bastante simple:
$ loginctl Opciones equipo Argumentos
Estos son los comandos básicos que puede usar:
- sesiones-lista – mostrar una lista de sesiones;
- estado-de-sesión – muestra el estado de la sesión, la fecha de autorización, información sobre los principales servicios y procesos en ejecución;
- Sesión-espectáculo – muestra la configuración de la sesión;
- activar – le permite cambiar a la sesión especificada;
- sesión-bloqueo – bloquea la pantalla para la sesión especificada, si no se especifica el ID de sesión, bloquea la pantalla para la sesión actual;
- sesión-desbloqueo – Desbloquea la pantalla para la sesión especificada.
- sesión-de-muerte – le permite finalizar la sesión o enviar una determinada señal a todos los procesos;
- Terminar-sesión le permite completar la sesión especificada;
- lista-usuarios – muestra una lista de los usuarios que están autorizados actualmente;
- estado-usuario – similar a session-status, muestra la fecha de autorización, el estado y todos los procesos en ejecución en forma de árbol;
- mostrar-usuario – muestra información sobre el usuario y su sesión actual sin ejecutar procesos;
- terminar-usuario – finaliza todas las sesiones de usuario y todos los procesos de usuario;
- matar-usuario – envía una señal a todos los procesos del usuario, de forma predeterminada se enviará SIGTERM;
- lista-asientos – mostrar una lista de lugares de trabajo;
- estado-de-asiento – muestra todos los procesos que se ejecutan dentro de la estación de trabajo especificada;
- Asiento-espectáculo – muestra la configuración del lugar de trabajo;
- terminate-seat – Completar todos los procesos del lugar de trabajo.
La personalización del lugar de trabajo no se tratará en este artículo, por lo que ni siquiera daré comandos para ello. Tenga en cuenta que muchos comandos solo funcionarán para sesiones de GUI, como sesión-bloqueo o sesión-desbloqueo no es compatible con sesiones TTY o SSH. Y ahora veamos ejemplos.
Cómo usar loginctl
1. Información de la sesión
Puede ver todas las sesiones de usuario activas mediante el comando sesiones-lista:
loginctl list-sessions
En este caso, hay dos sesiones. El primer inicio de sesión automático en la GUI donde se ejecuta Gnome, la segunda sesión de consola en TTY3. Aquí, para cada sesión, solo se muestran su ID, nombre de usuario y TTY en el que se inicia la sesión. Para obtener más información sobre cada sesión, use el estado-de-sesión. Este es el aspecto de una sesión en la GUI:
loginctl session-status 1
Aquí se puede ver cuándo se inició la sesión, su tipo, en este caso X11, así como los procesos principales. La sesión de consola en TTY tiene el siguiente aspecto:
loginctl session-status 3
Si desea ver la configuración de la sesión sin información de proceso, utilice el comando show-session:
loginctl show-session 1
Para este comando, puede especificar exactamente qué información desea obtener mediante el comando -p o –propiedad. Por ejemplo, para obtener solo un tipo, use el siguiente comando:
loginctl show-session 1 --p Type
Para obtener solo el valor sin el nombre de la propiedad, use la opción –value:
loginctl show-session 1 --p Type --value
2. Información del usuario
La visualización de la información del usuario funciona de la misma manera que la visualización de la información de la sesión. Puede ver una lista de todos los usuarios autorizados mediante el siguiente comando:
loginctl list-users
El uso de la función estado-usuario También puede ver los detalles de cada usuario. Y aquí encontrarás detalles sobre sus sesiones, y no los datos del usuario:
loginctl user-status 1000
El campo Sesiones muestra los ID de todas las sesiones de usuario, con la sesión activa marcada con un asterisco. A continuación se enumeran los servicios de Systemd que se ejecutan como este usuario y los procesos que se están ejecutando. De forma predeterminada, la lista de procesos se puede acortar. Si desea ver todos los procesos, utilice el comando -l o –lleno:
loginctl user-status 1000 --full
Para que la utilidad muestre toda la información a la vez sin paginación, utilice la opción –no-pager:
loginctl user-status 1000 --no-pager
3. Cambiar a otra sesión
Puede cambiar entre sesiones utilizando una interfaz gráfica como Gnome o KDE. Pero si desea hacerlo en la terminal, debe usar loginctl. Por ejemplo, para cambiar al ID de sesión 3, utilice el comando:
loginctl activate 3
Y luego puedes volver a cambiar. Esto puede ser más conveniente que cambiar por TTY usando teclas de acceso rápido. Al cambiar, puede bloquear la pantalla de la sesión anterior. Para ello, utilice el comando sesión-bloqueo. Por ejemplo:
loginctl lock-session 1
4. Fin de sesiones y procesos
El uso de la función matar-usuario o sesión-de-muerte Puede finalizar los procesos que se inician en nombre del usuario o solo en nombre de una sesión determinada. Estos comandos funcionan de forma similar a la utilidad de consola matar, lo que significa que con su ayuda no solo puedes completar el proceso, sino también enviarle algún tipo de señal. Si el sesión-de-muerte pase solo el ID de sesión, simplemente lo finalizará:
loginctl kill-session 3
Pero puedes enviar alguna otra señal usando el –señal. De forma predeterminada, se envía una señal SIGTERM. Por ejemplo, para enviar una señal SIGKILL, utilice el comando:
loginctl kill-session 3 --signal SIGKILL
Existe un comando similar para completar todos los procesos de usuario: matar-usuario. Además, hay un comando session-terminate. Hace casi lo mismo, solo que no le permite seleccionar una señal y termina inmediatamente todos los procesos:
loginctl terminate-session 3
5. Inicio automático de los servicios de usuario
Systemd tiene soporte para servicios que se ejecutan en nombre del usuario. Estos servicios se pueden administrar sin usar sudo y es bastante conveniente. Los entornos de escritorio como Gnome han estado aprovechando esta característica durante mucho tiempo. Se trata de servicios que son gestionados por el sistemactl con opción –usuario. Por lo general, estos servicios se inician cuando el usuario inicia sesión en el sistema y se detienen cuando cierra la sesión. Pero a veces es necesario asegurarse de que los procesos de usuario comiencen cuando se inicie el sistema, antes de que se autorice el sistema, y no terminen cuando finalice la sesión. Puede configurar esto mediante loginctl.
Por ejemplo, para configurar esto para el usuario Sergiy Debe utilizar el siguiente comando: loginctl:
loginctl enable-linger sergiy
Puede ver el estado de este parámetro mediante el comando estado-usuario. Para desactivarlo, utilice el botón disable-linger:
loginctl disable-linger sergiy
Resultados
En este artículo, hemos visto cómo usar loginctl para ver información sobre las sesiones y los usuarios autorizados, así como cómo finalizar las sesiones de usuario. Como puedes ver, la utilidad es bastante fácil de usar y te permite hacer todo en un solo lugar.