InicioLinuxAutologin en systemd sin gestor de acceso

Autologin en systemd sin gestor de acceso

Linux•4/9/2011
No me voy a parar a explicar qué es systemd, hace poco ya hubo una avalancha de post anunciando eso, así que basta con echar mano de los posts de hace uno o dos meses para conseguir toda la información.


En este caso, lo primero a tener en cuenta, es que se trabaja con agetty, por lo que siguiendo una serie de pasos podemos conseguir un script de autogin, o más bien un ejecutable, que posteriormente se usará para el logueo.


Hay que empezar creando el archivo del autologin que posteriormente habrá que compilar. Será un archivo con un par de líneas en c, que podemos llamar como sea, pero en este caso, y para no desviarme mucho llamaré autologinz.c
Con cualquier editor de texto, creamos el archivo y dentro de él ponemos lo siguiente:
dijo:

#include <unistd.h>
int main() { execlp( "login", "login", "-f", "USUARIO", 0); }

Obviamente, donde pone USUSARIO hay que poner el usuario que queremos que se loguee.

Ahora toca compilarlo:

dijo:

gcc -o autologinz autologinz.c


Y copiar el archivo resultante (como root) a /usr/local/sbin (Aunque realmente lo pueden poner donde quieran, siempre que lo tengan en cuenta a la hora de colocar la ruta)
dijo:

cp autologinz /usr/local/sbin




Ese archivo lo dejamos ahí, y ahora toca meterle mano a los archivos de configuración de systemD, que se encuentran, tanto en /etc/systemd/system, como en /lib/systemd/system
Los archivos que controlan las tty se encuentran en: /etc/systemd/system/getty.target.wants, y tienen un aspecto tal que así:
dijo:
sin embargo, todos ellos son enlaces simbólicos y hacen referencia a un único archivo, que es:
/lib/systemd/system/[email protected]

El problema está justo en este punto, pues editar el archivo para autologearnos en una tty, significa aplicar el mismo cambio en todas ellas.

Para evitar eso, se puede editar el enlace simbólico [email protected] (o cualquiera de ellos) para que apunte a otro archivo diferente que crearemos para la ocasión, en lugar de editar el archivo "general", para evitar el autologin en todos los terminales y centrarse sólo en uno.

En el archivo general (/lib/systemd/system/[email protected]), hay que editar la última línea y eliminar la parte correspondiente a la terminal donde nos queremos loguear, en mi caso será tty1:
dijo:

[Unit]
Description=Getty on %I
BindTo=dev-%i.device
After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service openvpn.service apache2.service

Before=getty.target

[Service]
Environment=TERM=linux
ExecStart=-/sbin/agetty %I 38400
Restart=always
RestartSec=0
UtmpIdentifier=%I
KillMode=process-group

Environment=LANG= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGE= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=

KillSignal=SIGHUP

[Install]
Alias=getty.target.wants/[email protected] getty.target.wants/[email protected] getty.target.wants/[email protected] getty.target.wants/[email protected] getty.target.wants/[email protected] getty.target.wants/[email protected]

Eliminar la parte en rojo y guardar.

Ahora hay que crear un archivo "especial" para tty1, que será casi idéntico al original, pero enfocado en tty1. Lo pueden llamar y colocar donde quieran, siempre que editen luego correctamente el enlace simbólico, pero en mi caso y para tenerlo todo a mano, lo he colocado en la misma carpeta /lib/systemd/system y lo he llamado [email protected]

Y por supuesto, ahora es cuando hay que añadir la parte correspondiente al archivo de autologin (rojo), que creamos antes, y apuntar el resto a la terminal elegida (azul)
dijo:

[Unit]
Description=Getty on tty1
Before=getty.target

[Service]
Environment=TERM=linux
ExecStart=-/sbin/agetty -n -l /usr/local/sbin/autologinz tty1 38400
Restart=always
RestartSec=0
UtmpIdentifier=tty1
KillMode=process-group

Environment=LANG= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGE= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=

KillSignal=SIGHUP

[Install]
Alias=getty.target.wants/getty@tty1.service



Una vez creado esos archivo, hay que editar el enlace simbólico [email protected] (o el que sea) para que apunte hacia él, de lo contrario no entrará en funcionamiento el archivo.
Datos archivados del Taringa! original
0puntos
208visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
13visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

s
shiba87🇦🇷
Usuario
Puntos0
Posts38
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.