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

From ArchWiki
Jump to: navigation, search
m (Mingetty: rimossa nota e allineata pagina)
m (Usare systemd: Sezione rivista. allineata)
Line 89: Line 89:
 
{{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. {{ic|tty1}}, {{ic|tty2}}, .., {{ic|tty8}}, etc''.
+
Una volta creato creare un link dal nuovo {{ic|autologin@.service}} alla tty scelta: ''Ad esempio {{ic|tty1}}, {{ic|tty2}}, .., {{ic|tty8}}, etc''.
  
  #ln -s /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
+
  #ln -sf /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 rimuovere la riga {{ic|1=Type=idle}} o cambiarla in {{ic|1=Type=simple}}:
+
Aprire {{ic|autologin@.service}} con un editor di testo e modificare le righe {{ic|ExecStart}}:
 
{{hc|/etc/systemd/system/autologin@.service|2=
 
{{hc|/etc/systemd/system/autologin@.service|2=
 
[Service]
 
[Service]
 
[...]
 
[...]
 
ExecStart=-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
 
ExecStart=-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
<s>Type=idle</s>
+
Type=idle
 
[...]
 
[...]
 
}}
 
}}
L'idea che sta alla base di {{ic|1=Type=simple}} è di permettere un leggero ritardo per l'esecuzione di agetty fino a che tutti i processi non siano completati. Vedere {{ic|man systemd.service}} per ulterioti informazioni.
+
{{Tip|È possibile cambiare {{ic|1=Type=idle}} in {{ic|1=Type=simple}} per permettere un leggero ritardo per l'esecuzione di agetty fino a che tutti i processi non siano completati. Questa opzione è molto utile quando si [[Far partire X al boot|avvia X al boot in modo automatico]]. Vedere {{ic|man systemd.service}} per ulterioti informazioni.
 +
{{Nota|{{ic|1=Type=simple}} può provocare messaggi di debug da parte di systemd che vanno a "sovrascrivere" le tty.}}}}
  
 
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}}.

Revision as of 09:41, 4 September 2012

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

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

Se invece si vuole un login automatica, ma si vuole comunque digitare la password, la riga da aggiungere a /etc/inittab è la seguente:

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

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

/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

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 alla tty scelta: Ad esempio tty1, tty2, .., tty8, etc.

#ln -sf /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:

/etc/systemd/system/autologin@.service
[Service]
[...]
ExecStart=-/sbin/agetty --noclear -a USERNAME %I 38400
Type=idle
[...]
Tip: È possibile cambiare Type=idle in Type=simple per permettere un leggero ritardo per l'esecuzione di agetty fino a che tutti i processi non siano completati. Questa opzione è molto utile quando si avvia X al boot in modo automatico. Vedere man systemd.service per ulterioti informazioni.
Nota: Type=simple può provocare messaggi di debug da parte di systemd che vanno a "sovrascrivere" le tty.

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