Difference between revisions of "Automatic login to virtual console (Italiano)"

From ArchWiki
Jump to: navigation, search
(Allineata alla versione inglese)
Line 12: Line 12:
  
 
__TOC__
 
__TOC__
== Usare inittab ==
+
== Initscript ==
{{Nota|Sebbene sia una derivata di mingetty, fgetty non supporta il parametro --autologin}}
+
===Agetty===
 
+
Questo è il metodo migliore e più "pulito". Modificare così le righe di {{ic|/etc/inittab}}:
Questo è il metodo migliore e più "pulito". Modificare le seguenti righe di {{ic|/etc/inittab}} da:
+
{{hc|/etc/inittab|
{{bc|
+
c1:2345:respawn:/sbin/agetty -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
+
}}
+
 
+
in:
+
 
+
{{bc|
+
 
c1:2345:respawn:/sbin/agetty -a USERNAME -8 -s 38400 tty1 linux
 
c1:2345:respawn:/sbin/agetty -a USERNAME -8 -s 38400 tty1 linux
 
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
 
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
Line 37: Line 25:
 
per avere un autologin al boot dell'utente USERNAME sulla prima console (tty1).
 
per avere un autologin al boot dell'utente USERNAME sulla prima console (tty1).
  
Alternativamente, installare il pacchetto {{pkg|mingetty}} dai [[Official Repositories (Italiano)| repository ufficiali]]. Mingetty è progettato per essere un [[getty]] minimale e per permettere login automatici. Poi bisogna cambiare {{ic|/etc/inittab}} in:
+
=== Mingetty ===
{{bc|
+
{{Nota|Sebbene sia una derivata di {{pkg|mingetty}}, {{aur|fgetty}} non supporta il parametro {{ic|--autologin}} }}
 +
 
 +
Installare il pacchetto {{pkg|mingetty}} dai [[Official Repositories (Italiano)| repository ufficiali]]. Mingetty è progettato per essere un [[getty]] minimale e per permettere login automatici. Poi bisogna cambiare {{ic|/etc/inittab}} in:
 +
{{hc|/etc/inittab|
 
c1:2345:respawn:/sbin/mingetty --autologin USERNAME tty1 linux
 
c1:2345:respawn:/sbin/mingetty --autologin USERNAME tty1 linux
 
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
 
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
Line 47: Line 38:
 
}}
 
}}
  
Con questo metodo non sarà possibile uscire da tty1, in quanto si accederà di nuovo all'infinito. Se si desidera che l'accesso automatico avvenga solo all'avvio, e che sia possibile uscire, è possibile modificare {{ic|/etc/inittab}} in questo modo (nota: così non sarà possibile accedere alle altre consolle virtuali fino a dopo l'uscita):
+
Con questo metodo non sarà possibile uscire da tty1, in quanto si accederà di nuovo all'infinito. Se si desidera che l'accesso automatico avvenga solo all'avvio, e che sia possibile uscire, è possibile modificare {{ic|/etc/inittab}} in questo modo  
 +
 
 
{{Nota| con questo metodo non si potrà effetturare login su altre tty se non dopo l'uscita da tty1
 
{{Nota| con questo metodo non si potrà effetturare login su altre tty se non dopo l'uscita da tty1
 
}}
 
}}
{{bc|
+
{{hc|/etc/inittab|
 
a1:2345:wait:/sbin/mingetty --autologin USERNAME tty1 linux
 
a1:2345:wait:/sbin/mingetty --autologin USERNAME tty1 linux
 
c1:2345:respawn:/sbin/agetty -8 -s 38400 tty1 linux
 
c1:2345:respawn:/sbin/agetty -8 -s 38400 tty1 linux
Line 60: Line 52:
 
}}
 
}}
  
== Usare un programma di accesso in C ==
+
=== Usare un programma di accesso in C ===
 
Come alternativa può essere scritto un programma di accesso in C:
 
Come alternativa può essere scritto un programma di accesso in C:
 
{{hc|autologin.c|<nowiki>
 
{{hc|autologin.c|<nowiki>
Line 70: Line 62:
 
</nowiki>}}
 
</nowiki>}}
  
Qui la funzione in C {{ic|execlp}} esegue il comando {{ic|login -f NOMEUTENTE}}.
+
Qui la funzione in C {{ic|execlp}} esegue il comando {{ic|login -f ''USERNAME''}}.
  
 
Il programma deve essere compilato e copiato in una posizione appropriata:
 
Il programma deve essere compilato e copiato in una posizione appropriata:
Line 77: Line 69:
 
  # cp autologin /usr/local/sbin/
 
  # cp autologin /usr/local/sbin/
  
Alla fine modificare {{ic|etc/inittab}} e cambiare:
+
Alla fine modificare {{ic|etc/inittab}} in questo modo:
  
{{bc|
+
{{hc|/etc/inittab|
c1:2345:respawn:/sbin/agetty -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
+
}}
+
 
+
in:
+
 
+
{{bc|
+
 
c1:2345:respawn:/sbin/agetty -n -l /usr/local/sbin/autologin -s 38400 tty1 linux
 
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
 
c2:2345:respawn:/sbin/agetty -8 -s 38400 tty2 linux
Line 103: Line 84:
 
Creare un nuovo servizio tipo {{ic|getty@.service}} e copiarlo in {{ic|/etc/systemd/system/}}
 
Creare un nuovo servizio tipo {{ic|getty@.service}} e copiarlo in {{ic|/etc/systemd/system/}}
  
  cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
+
  # cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
  
 
{{Nota|{{ic|/etc/systemd/system/}} ha la precedenza su {{ic|/usr/lib/systemd/system/}}}}
 
{{Nota|{{ic|/etc/systemd/system/}} ha la precedenza su {{ic|/usr/lib/systemd/system/}}}}
  
Una volta creato creare un link dal nuovo {{ic|autologin@.service}} al "target" scelto: tty, ''e.g. tty1, tty2, .., tty8, etc''.
+
Una volta creato creare un link dal nuovo {{ic|autologin@.service}} al "target" scelto: tty, ''e.g. {{ic|tty1}}, {{ic|tty2}}, .., {{ic|tty8}}, etc''.
  
  ln -s /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
+
  #ln -s /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
  
Aprire {{ic|autologin@.service}} con un editor di testo e modificare le righe {{ic|ExecStart}} e {{ic|Alias}} come segue:
+
Aprire {{ic|autologin@.service}} con un editor di testo e modificare le righe {{ic|ExecStart}} come segue:
 
{{hc|/etc/systemd/system/autologin@.service|
 
{{hc|/etc/systemd/system/autologin@.service|
 
[Service]
 
[Service]
 
...
 
...
ExecStart&#61;-/sbin/agetty -a USERNAME %I 38400
+
ExecStart&#61;-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
...
+
...}}
[Install]
+
Alias&#61;getty.target.wants/getty@tty1.service
+
}}
+
 
Per questioni di sicurezza potrebbe essere consigliabile cambiare {{ic|1=Restart=always}} in {{ic|1=Restart=no}}.
 
Per questioni di sicurezza potrebbe essere consigliabile cambiare {{ic|1=Restart=always}} in {{ic|1=Restart=no}}.
  
 
Infine, ricaricare il demone e avviare il servizio:
 
Infine, ricaricare il demone e avviare il servizio:
  systemctl daemon-reload
+
  # systemctl daemon-reload
  systemctl start getty@tty1.service
+
  # systemctl start getty@tty1.service

Revision as of 17:00, 24 July 2012

Sommario help replacing me
Descrive come accedere automaticamente a una consolle virtuale.
Articoli correlati
Display Manager (Italiano)
Start X at Boot (Italiano)

Questo articolo descrive come accedere automaticamente a una “consolle virtuale” o tty alla fine del processo di boot. Questo articolo tratta solamente dell'accesso alla consolle; i metodi per avviare il server X sono descritti in Start X at Boot.

Initscript

Agetty

Questo è il metodo migliore e più "pulito". Modificare così le righe di /etc/inittab:

/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

per avere un autologin al boot dell'utente USERNAME sulla prima console (tty1).

Mingetty

Nota: Sebbene sia una derivata di mingetty, fgettyAUR non supporta il parametro --autologin

Installare il pacchetto mingetty dai repository ufficiali. Mingetty è progettato per essere un getty minimale e per permettere login automatici. Poi bisogna cambiare /etc/inittab in:

/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

Con questo metodo non sarà possibile uscire da tty1, in quanto si accederà di nuovo all'infinito. Se si desidera che l'accesso automatico avvenga solo all'avvio, e che sia possibile uscire, è possibile modificare /etc/inittab in questo modo

Nota: con questo metodo non si potrà effetturare login su altre tty se non dopo l'uscita da tty1
/etc/inittab
a1:2345:wait:/sbin/mingetty --autologin USERNAME tty1 linux
c1:2345:respawn:/sbin/agetty -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

Usare un programma di accesso in C

Come alternativa può essere scritto un programma di accesso in C:

autologin.c
#include <unistd.h>

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

Qui la funzione in C execlp esegue il comando login -f USERNAME.

Il programma deve essere compilato e copiato in una posizione appropriata:

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

Alla fine modificare etc/inittab in questo modo:

/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

Usare systemd

Creare un nuovo servizio tipo getty@.service e copiarlo in /etc/systemd/system/

# cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
Nota: /etc/systemd/system/ ha la precedenza su /usr/lib/systemd/system/

Una volta creato creare un link dal nuovo autologin@.service al "target" scelto: tty, e.g. tty1, tty2, .., tty8, etc.

#ln -s /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service

Aprire autologin@.service con un editor di testo e modificare le righe ExecStart come segue:

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

Per questioni di sicurezza potrebbe essere consigliabile cambiare Restart=always in Restart=no.

Infine, ricaricare il demone e avviare il servizio:

# systemctl daemon-reload
# systemctl start getty@tty1.service