Difference between revisions of "Automatic login to virtual console (Español)"

From ArchWiki
Jump to: navigation, search
(Servicio)
(11 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
{{Article summary wiki|Start X at Login (Español)}}
 
{{Article summary wiki|Start X at Login (Español)}}
 
{{Article summary end}}
 
{{Article summary end}}
En este artículo se describe cómo acceder automáticamente a una ''consola virtual'' al final del [[boot process|proceso de arranque ]]. Este artículo sólo cubre el acceso a la consola (o tty); los métodos para iniciar un [[Xorg|servidor X]] se describen en [[Start X at Boot_(Español)|Start X at Boot]].
+
En este artículo se describe cómo acceder automáticamente a una ''consola virtual'' al final del [[boot process|proceso de arranque ]]. Este artículo sólo cubre el acceso a la consola (o tty); los métodos para iniciar un [[Xorg (Español)|servidor X]] se describen en [[Start X at Login_(Español)|Start X at Login]].
  
__TOC__
+
== Servicio ==
== Con Initscript==
+
 
+
=== Usando agetty ===
+
Este es el método preferido y más limpio. Edite {{ic|/etc/inittab}} así:
+
{{hc|/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 {{ic|''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 {{pkg|mingetty}}, {{AUR|fgetty}} no es compatible con el parámetro {{ic|--autologin}}.}}
+
 
+
Como alternativa, puede instalar el paquete {{pkg|mingetty}} desde los [[Official Repositories|repositorios oficiales]]. Mingetty está diseñado para ser un [[getty]] minimalista y permitir automáticamente el inicio de sesión:
+
{{hc|/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:
+
{{hc|/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:
+
 
+
{{hc|autologin.c|
+
#include <unistd.h>
+
 
+
int main(void) {
+
  execlp("login", "login", "-f", "''USERNAME''", NULL);
+
}
+
}}
+
 
+
Aquí, la función en C {{ic|execlp}}  ejecuta el comando  {{ic|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 {{ic|/etc/inittab}} para usarlo:
+
{{hc|/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
+
}}
+
 
+
== Con Systemd ==
+
 
Cree un archivo de servicio similar a {{ic|getty@.service}} y cópielo en {{ic|/etc/systemd/system/}}:
 
Cree un archivo de servicio similar a {{ic|getty@.service}} y cópielo en {{ic|/etc/systemd/system/}}:
  
Line 90: Line 18:
 
{{Nota|{{ic|/etc/systemd/system/}} tiene prioridad sobre {{ic|/usr/lib/systemd/system/}}}}
 
{{Nota|{{ic|/etc/systemd/system/}} tiene prioridad sobre {{ic|/usr/lib/systemd/system/}}}}
  
Una vez creado, puede establecer un enlace con el nuevo {{ic|autologin@.service}} a la tty elegida, por ejemplo {{ic|tty1}}, {{ic|tty2}}, [...] {{ic|tty8}}, etc., especificándole un alias en la sección {{ic|[Install]}} del correspondiente archivo unit. Además, cambie el valor de {{ic|ExecStart}} en {{ic|autologin@.service}}, para que quede en algo similar a lo siguiente:
+
Cambie la línea {{ic|ExecStart}} para incluir el parámetro {{ic|-a ''USERNAME''}}:
  
 
{{hc|/etc/systemd/system/autologin@.service|
 
{{hc|/etc/systemd/system/autologin@.service|
 
2=[Service]
 
2=[Service]
[...]
+
''[...]''
ExecStart&#61;-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
+
ExecStart=-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
Type=idle
+
''[...]''
[...]
+
 
 
[Install]
 
[Install]
Alias=getty.target.wants/getty@tty1.service
+
WantedBy=getty.target
 
}}
 
}}
{{Tip|Es posible cambiar {{ic|1=Type=idle}} a {{ic|1=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 [[Start X at Boot|iniciando X automáticamente]]. Consulte {{ic|man systemd.service}} para más información. {{Nota|{{ic|1=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 {{ic|1=Restart=always}} a {{ic|1=Restart=no}}.
+
{{Sugerencia|Es posible cambiar {{ic|1=Type=idle}} a {{ic|1=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 [[Start X at Boot|iniciando X automáticamente]]. Consulte {{ic|man systemd.service}} para más información. {{Nota|{{ic|1=Type=simple}} puede hacer que los mensajes de arranque de systemd contaminen el mensaje del login.}}}}
  
Por último, es necesario deshabilitar el antiguo getty@.service para la TTY específica y habilitar el nuevo autologin@.service para la nueva TTY:
+
{{Nota|Si utiliza mingetty, cambie {{ic|/sbin/agetty}} por {{ic|/sbin/mingetty}}.}}
 +
 
 +
Por último, es necesario desactivar el antiguo {{ic|getty@tty''X''.service}} para la tty específica y activar el nuevo {{ic|autologin@tty''X''.service}}. Por ejemplo:
 
  # systemctl daemon-reload
 
  # systemctl daemon-reload
  # systemctl disable getty@tty1.service
+
  # systemctl disable getty@''tty1''
  # systemctl enable autologin@tty1.service
+
  # systemctl enable autologin@''tty1''
  # systemctl start autologin@tty1.service
+
  # systemctl start autologin@''tty1''
  
{{Advertencia|Si se está en una sesión X en la misma TTY configurada en el archivo .service, iniciar autologin@tty''X''.service romperá el servidor X.}}
+
{{Advertencia|Si se está en una sesión X en la misma tty configurada en el archivo .service, iniciar {{ic|autologin@tty''X''.service}} romperá el servidor X.}}
  
Para evitar errores con display-manager.service en dmesg, debe configurar el target por defecto para multi-usuario en lugar de gráfica:
+
Para evitar errores con display-manager.service en dmesg, debe configurar el target por defecto para multi-usuario en lugar del gráfico:
 
  # systemctl enable multi-user.target
 
  # systemctl enable multi-user.target
(Consulte también: [[Systemd (Español)#Cambiar el runlevel/target predeterminado para arrancar|Cambiar el runlevel/target predeterminado para arrancar]].)
+
 
 +
===Véase también===
 +
*[[Systemd_(Español)#Cambiar_el_target_predeterminado_para_arrancar|Cambiar el runlevel/target predefinido al arrancar]].

Revision as of 23:09, 12 March 2013

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 Login.

Servicio

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/

Cambie la línea ExecStart para incluir el parámetro -a USERNAME:

/etc/systemd/system/autologin@.service
[Service]
[...]
ExecStart=-/sbin/agetty --noclear -a USERNAME %I 38400
[...]

[Install]
WantedBy=getty.target
Sugerencia: 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.
Nota: Si utiliza mingetty, cambie /sbin/agetty por /sbin/mingetty.

Por último, es necesario desactivar el antiguo getty@ttyX.service para la tty específica y activar el nuevo autologin@ttyX.service. Por ejemplo:

# systemctl daemon-reload
# systemctl disable getty@tty1
# systemctl enable autologin@tty1
# systemctl start autologin@tty1
Advertencia: Si se está en una sesión X en la misma tty configurada en el archivo .service, iniciar autologin@ttyX.service romperá el servidor X.

Para evitar errores con display-manager.service en dmesg, debe configurar el target por defecto para multi-usuario en lugar del gráfico:

# systemctl enable multi-user.target

Véase también