Automatic login to virtual console (Español)

From ArchWiki
Revision as of 10:05, 17 September 2012 by Pedro (Talk | contribs)

Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

En este artículo se describe cómo acceder automáticamente a una consola virtual al final del proceso de arranque . Este artículo sólo cubre el acceso a la consola (o tty); los métodos para iniciar un servidor X se describen en Start X at Boot.

Initscript

Usando agetty

Este es el método preferido y más limpio. Edite /etc/inittab así:

/etc/inittab
c1:2345:respawn:/sbin/agetty -a USERNAME -8 -s 38400 tty1 linux
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
c3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linux
c4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linux
c5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linux
c6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux

para iniciar sesión automáticamente del usuario USERNAME en la primera consola (tty1).

Si desea que su usuario inicie automáticamente sesión, pero sin saltarse la contraseña del sistema, añada la siguiente línea:

c1:2345:respawn:/sbin/agetty -a USERNAME -o "-- \u" -8 -s 38400 tty1 linux

Usando mingetty

Nota: Aunque derivado de mingetty, fgettyAUR no es compatible con el parámetro --autologin.

Como alternativa, puede instalar el paquete mingetty desde los repositorios oficiales. Mingetty está diseñado para ser un getty minimalista y permitir automáticamente el inicio de sesión:

/etc/inittab
c1:2345:respawn:/sbin/mingetty --autologin USERNAME tty1 linux
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
c3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linux
c4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linux
c5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linux
c6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux

Utilizando los métodos anteriores, obtendrá un bucle de reinicio de sesión al intentar cerrar la sesión, por lo que no será posible salir de la tty1. Si desea iniciar sesión sólo en el arranque, y que sea posible salir, modifique el archivo en los siguientes términos:

/etc/inittab
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
c3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linux
c4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linux
c5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linux
c6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux
a1:2345:wait:/sbin/mingetty --autologin USERNAME tty1 linux
c1:2345:respawn:/sbin/agetty -8 -s 38400 tty1 linux

Usando un programa de acceso en C

Como alternativa, puede ser escrito un programa de acceso en C:

autologin.c
#include <unistd.h>

int main(void) {
   execlp("login", "login", "-f", "USERNAME", NULL);
}

Aquí, la función en C execlp ejecuta el comando login -f USERNAME.

El programa debe ser compilado y copiado a un lugar adecuado:

$ gcc -o autologin autologin.c
# cp autologin /usr/local/sbin/

Por último, modificar /etc/inittab para usarlo:

/etc/inittab
c1:2345:respawn:/sbin/agetty -n -l /usr/local/sbin/autologin -s 38400 tty1 linux
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
c3:2345:respawn:/sbin/agetty -8 -s 38400 tty3 linux
c4:2345:respawn:/sbin/agetty -8 -s 38400 tty4 linux
c5:2345:respawn:/sbin/agetty -8 -s 38400 tty5 linux
c6:2345:respawn:/sbin/agetty -8 -s 38400 tty6 linux

Systemd

Merge-arrows-2.pngThis article or section is a candidate for merging with Systemd.Merge-arrows-2.png

Notes: Esta sección debe ser fusionada con systemd y reemplazada con un enlace allí (Discuss in Talk:Automatic login to virtual console (Español)#)

Cree un archivo de servicio similar a getty@.service y cópielo en /etc/systemd/system/:

# cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
Nota: /etc/systemd/system/ tiene prioridad sobre /usr/lib/systemd/system/

Una vez creado, puede establecer un enlace con el nuevo autologin@.service a la tty elegida, por ejemplo tty1, tty2, [...] tty8, etc., especificándole un alias en la sección [Install] del correspondiente archivo unit. Además, cambie el valor de ExecStart en autologin@.service, para que quede en algo similar a lo siguiente:

/etc/systemd/system/autologin@.service
[Service]
[...]
ExecStart=-/sbin/agetty --noclear -a USERNAME %I 38400
Type=idle
[...]
[Install]
Alias=getty.target.wants/getty@tty1.service
Tip: Es posible cambiar Type=idle a Type=simple para permitir una ligera demora en la ejecución de agetty hasta que todos los procesos (peticiones de cambio de estado de las unidades) se hayan completado. Esta opción es más útil iniciando X automáticamente. Consulte man systemd.service para más información.
Nota: Type=simple puede hacer que los mensajes de arranque de systemd contaminen el mensaje del login.

Por razones de seguridad es posible que también desee cambiar Restart=always a Restart=no.

Por ultimo, debe volver a cargar los demonios y habilitar e iniciar el servicio:

# systemctl daemon-reload
# systemctl enable autologin@tty1.service
# systemctl start autologin@tty1.service