Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "andreas-xavier/Prova00"
Differenze tra le versioni 2 e 44 (in 42 versioni)
Versione 2 del 04/07/2024 22.11.23
Dimensione: 3675
Commento:
Versione 44 del 02/09/2025 11.06.11
Dimensione: 14099
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 2: Linea 2:
#LANGUAGE it
Linea 6: Linea 7:
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=636196"; rilasci="14.04 16.04 18.04 20.04 22.04")>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?XXXXXXX"; rilasci="24.04 22.04 20.04")>> 
Linea 10: Linea 11:
Questa guida spiega cosa sono le console virtuali in Ubuntu e illustra alcuni possibili utilizzi e configurazioni.

Le console virtuali - in poche parole - non sono altro che dei dispositivi astratti attraverso i quali uno o più utenti possono interagire con la macchina: fornire input e ricevere output (usando [[AmministrazioneSistema/Terminale|righe di comando]] o anche sessioni grafiche).<<BR>>
Il sottosistema '''TTY''' è centrale per GNU/Linux, come anche per i sistemi UNIX in generale.

= Concetti fondamentali =

== Cenni storici ==

Per comprendere alcuni concetti e la terminologia, sono necessari alcuni approfondimenti di tipo storico.<<BR>>
Il termine '''TTY''' fa riferimento alle [[https://it.wikipedia.org/wiki/Telescrivente|telescriventi]] (in inglese ''teleprinter'', ''teletypewriter'' o ''teletype'' abbreviato quindi in ''TTY'').<<BR>>
I primi sistemi informatici (approssimativamente negli anni '50 - '70) consistevano di grandi [[https://it.wikipedia.org/wiki/Mainframe|mainframe]] o computer centrali; non erano dotati di interfacce hardware/software di I/O paragonabili a quelle attuali (mouse, tastiere e schermi) e gli utenti di solito non vi lavoravano direttamente. I dati venivano compilati da remoto su supporti fisici (spesso schede perforate); poi una volta raccolti, caricati e processati, venivano infine restituiti agli utenti sotto forma di stampe cartacee.<<BR>>
Per semplificare il flusso di lavoro, fu pensato di collegare i computer a delle telescriventi connesse tramite cablaggio. In questo modo si potevano impartire istruzioni direttamente al calcolatore tramite una tastiera. Furono poi introdotti degli schermi video che non rendevano più necessaria la stampa.<<BR>>
Nascono così alcuni termini ed espressioni utilizzate ancora oggi, tra cui:
 * '''prompt''': era un simbolo stampato che fungeva come segnale con cui la telescrivente notificava di essere pronta all'utilizzo.
 * '''console''': nel senso di quadro di comando dotato di pulsanti e tasti.
 * '''stampare a schermo''': far comparire un output su un monitor anziché stamparlo su carta (si pensi al comando `print` in alcuni linguaggi di programmazione).
 * '''terminale''': rappresenta il termine (l'estremità finale) della connessione fisica fra la macchina e l'operatore.<<BR>>
Si arrivò quindi ad un punto in cui fu possibile collegare più terminali ad un calcolatore centrale con sistema multi-utente. Anche nei primi personal computer (come l'Apple I) era presente una TTY all'interno dei circuiti.<<BR>>

Successivamente, con il progresso tecnologico, le telescriventi furono virtualizzate grazie all'elettronica. In questo modo non era più necessario un dispositivo TTY meccanico collegato fisicamente. Le TTY delle moderne distribuzioni GNU/Linux sono infatti '''virtuali'''; pur collegandosi a tastiere e schermi, nel loro ''core'' simulano una classica macchina telescrivente.

== Descrizione ==

L'implementazione delle TTY in GNU/Linux serve principalmente per permettere agli utenti di avere sempre almeno un'interfaccia con cui operare.<<BR>>
È infatti disponibile un terminale TTY quando si utilizza un sistema senza GUI (come su sistema Arch, Debian o Ubuntu minimali) oppure quando il sistema non riesce a caricare la sessione grafica in seguito a problemi.

Per Unix fu implementato '''getty''' ('''get tty'''), un programma che gestisce terminali fisici o virtuali per permettere l'accesso multi-utente su sistemi host (per GNU/Linux sono stati implementati l'equivalente '''agetty''' ed altri).<<BR>>
Inoltre nei sistemi basati su Unix, TTY è un dispositivo astratto. Può riferirsi ad un dispositivo di input fisico come una porta seriale, oppure a una TTY virtuale che consente agli utenti di interagire con il sistema. Consiste anche di un sottosistema che consente la gestione dei processi, la gestione delle sessioni a livello di kernel tramite driver TTY.<<BR>>
Ogni volta che si avvia un emulatore di terminale o si utilizza qualsiasi tipo di shell nel sistema, questo interagisce con TTY virtuali, detti anche pseudo-TTY o PTY.<<BR>>
Tuttavia per questi aspetti si rimanda agli [[#Ulteriori_risorse|approfondimenti]].

Solitamente i moderni sistemi GNU/Linux offrono fino a sette console virtuali TTY, di cui una riservata all'utilizzo grafico (tradizionalmente '''tty7''' in molte distribuzioni).

<<BR>>
||<style="border:none;"><<Immagine(./tty1.png,500,)>>||<style="border:none;">Nell'immagine accanto un esempio di una schermata di schermata di login a riga di comando, in cui viene specificato l'utilizzo del dispositivo/console '''tty1'''.||
<<BR>>

= Utilizzo =

Da un sistema '''Ubuntu''' desktop è possibile passare ad un'altra console per utilizzare il sistema con la sola riga di comando, senza sessione grafica. Non saranno presenti finestre, ma soltanto una schermata con sfondo scuro dalla quale digitare le istruzioni. A tale scopo è sufficiente premere una combinazione di tasti.<<BR>>

Di seguito sono riportate le combinazioni di tasti necessarie per '''Ubuntu''' (versione standard con desktop '''[[AmbienteGrafico/Gnome|GNOME]]'''):

||<tablestyle="width:45%;":35%>'''Combinazione''' ||<:>'''Modalità operativa'''||<:>'''Console virt.'''||
||<:>'''Ctrl+Alt+F1''' || Schermata di login ('''[[AmbienteGrafico/Gnome|GDM]]''') ||<:> '''tty1''' ||
||<:>'''Ctrl+Alt+F2''' || Sessione grafica (desktop) ||<:> '''tty2''' ||
||<:>'''Ctrl+Alt+F3''' || Riga di comando ||<:> '''tty3''' ||
||<:>'''Ctrl+Alt+F4''' || Riga di comando ||<:> '''tty4''' ||
||<:>'''Ctrl+Alt+F5''' || Riga di comando ||<:> '''tty5''' ||
||<:>'''Ctrl+Alt+F6''' || Riga di comando ||<:> '''tty6''' ||

Di seguito sono riportate le combinazioni di tasti tradizionali per accedere alle '''tty''', valide per alcune derivate (es.: '''Xubuntu'''), oppure per versioni precedenti di Ubuntu o anche altre distribuzioni GNU/Linux:

||<tablestyle="width:45%;":35%>'''Combinazione''' ||<:>'''Modalità operativa'''||<:>'''Console virt.'''||
||<:>'''Ctrl+Alt+F1''' || Riga di comando ||<:> '''tty1''' ||
||<:>'''Ctrl+Alt+F2''' || Riga di comando ||<:> '''tty2''' ||
||<:>'''Ctrl+Alt+F3''' || Riga di comando ||<:> '''tty3''' ||
||<:>'''Ctrl+Alt+F4''' || Riga di comando ||<:> '''tty4''' ||
||<:>'''Ctrl+Alt+F5''' || Riga di comando ||<:> '''tty5''' ||
||<:>'''Ctrl+Alt+F6''' || Riga di comando ||<:> '''tty6''' ||
||<:>'''Ctrl+Alt+F7''' || Sessione grafica (desktop) ||<:> '''tty7''' ||

Sarà così possibile eseguire il login con il proprio utente, inserire la password e quindi impartire i comandi.<<BR>>
Per ritornare alla sessione grafica premere la relativa combinazione di tasti (es: '''Ctrl+Alt+F2''' o '''Ctrl+Alt+F7''').<<BR>>
Da notare che, una volta passati da una console di tipo grafico ad una testuale, sarà possibile ritornare poi sulla prima senza che la sessione desktop venga interrotta; non sarà quindi necessario rieseguire il login.

{{{#!wiki note
La numerazione delle console potrebbe essere differente non soltanto su altri sistemi operativi, su derivate, o su vecchie versioni, ma anche se su Ubuntu sono state eseguite modifiche alle configurazioni. Pertanto, se le combinazioni di tasti sopra riportate non dovessero funzionare, è possibile provare con altri tasti funzione.<<BR>>
In alcune tastiere (es.: quelle che integrano funzionalità multimediali) potrebbe essere necessario premere anche il tasto '''Fn''' (es.: '''Fn+Ctrl+Alt+F2''').<<BR>>
}}}

{{{#!wiki tip
Questo metodo può rivelarsi utile in casi di emergenza, come ad esempio malfunzionamenti o blocchi improvvisi della sessione grafica.
}}}

= Comandi utili =

Di seguito una lista di comandi utilizzabili in un qualsiasi [[AmministrazioneSistema/Terminale|terminale]].

 * '''Controllo del dispositivo in uso''': digitare il comando:{{{
tty
}}}
 Verrà restituito un output simile al seguente:{{{
/dev/pts/0
}}}
 che indica che è in uso lo pseudo terminale `/dev/pts/0` come dispositivo di input corrente.

 * '''Versione''': digitare il comando:{{{
tty --version
}}}

 * '''Elencare dispositivi tty''': digitare il comando:{{{
ls -l /dev | grep 'tty'
}}}
 L'output sarà simile al seguente:{{{
crw-rw-rw- 1 root tty 5, 2 feb 20 12:44 ptmx
crw-rw-rw- 1 root tty 5, 0 feb 20 12:27 tty
crw--w---- 1 root tty 4, 0 feb 20 11:23 tty0
crw--w---- 1 root tty 4, 1 feb 20 12:19 tty1
Linea 11: Linea 112:

<<Anchor(preliminari)>>
= Operazioni preliminari =

 0. Avviare la '''Live''' di '''Ubuntu''' oppure l'altro sistema GNU/Linux presente nel computer.

 0. [[Hardware/DispositiviPartizioni/IndividuarePartizioni|Individuare]] le partizioni e su cui è installato il sistema, nonché il tipo di filesystem.<<BR>>Infatti, a seconda delle operazioni che si desidera eseguire, potrebbe essere necessario individuare:
  * Partizione [[AmministrazioneSistema/Uefi|EFI]], se presente.
  * Eventuali [[Hardware/DispositiviPartizioni/SpostareHomePartizioneSeparata|partizioni separate]] per `/boot`, `/home`, `/var` ecc.
crw------- 1 root root 5, 3 feb 20 11:23 ttyprintk
crw-rw---- 1 root dialout 4, 64 feb 20 11:23 ttyS0
crw-rw---- 1 root dialout 4, 65 feb 20 11:23 ttyS1
crw-rw---- 1 root dialout 4, 74 feb 20 11:23 ttyS10
[...]
crw-rw---- 1 root tty 7, 0 feb 20 11:23 vcs
crw-rw---- 1 root tty 7, 1 feb 20 11:23 vcs1
crw-rw---- 1 root tty 7, 2 feb 20 11:23 vcs2
}}}

 * '''Visionare i dispositivi tty attivi''': digitare il comando:{{{
cat /proc/tty/drivers
}}}
 L'output sarà simile al seguente:{{{
cat /proc/tty/drivers
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
serial /dev/ttyS 4 64-95 serial
pty_slave /dev/pts 136 0-1048575 pty:slave
pty_master /dev/ptm 128 0-1048575 pty:master
unknown /dev/tty 4 1-63 console
}}}

 * '''Elencare utenti loggati''': È possibile individuare quali utenti stanno utilizzando il sistema, e tramite quale console, con il comando:{{{
w
}}}
 L'output sarà simile al seguente:{{{
 13:01:28 up 1:37, 2 users, load average: 0,58, 0,86, 0,87
UTENTE TTY DA LOGIN@ IDLE JCPU PCPU WHAT
mario tty2 - 12:19 42:14 0.17s 0.08s -bash
mario tty7 - 11:23 1:37m 6:09 0.07s lightdm --session-
}}}
 che mostra l'utente '''mario''', che ha eseguito il login su un PC desktop sia su '''tty2''' (con shell bash) sia su '''tty7''' (sessione desktop). Mentre il seguente output:{{{
 12:27:59 up 11 days, 1:08, 1 user, load average: 0,21, 0,10, 0,03
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
maria pts/0 192.168.1.44 12:10 3.00s 0.06s 0.02s w
}}}
 mostra l'utente '''maria''' che ha eseguito il login su un server da computer collegato a rete locale.<<BR>>
 In alternativa, per elencare i soli utenti e le console senza informazioni aggiuntive, digitare:{{{
who
}}}
 {{{#!wiki tip
I precedenti comandi potrebbero essere utili per individuare eventuali accessi non autorizzati.
}}}
 
= Disabilitare console inutilizzate =
Linea 22: Linea 162:
Di seguito verranno mostrati comandi con nomi fittizi delle partizioni. Sostituirli con quelli reali, individuati precedentemente.
}}}

<<Anchor(accesso)>>
= Accesso al sistema =

 0. Prima di accedere al sistema occorre [[AmministrazioneSistema/ComandiBase#Gestione_del_filesystem|montare]] la partizione ''root'', più altre le altre se presenti (`/boot` oppure `/home`, `/var` ecc.). Digitare quindi nel [[AmministrazioneSistema/Terminale|terminale]] un comando simile al seguente:{{{
sudo mount /dev/sda3 /mnt
}}}
 0. Qualora la partizione di sistema __non__ sia di tipo [[Hardware/DispositiviPartizioni/Btrfs|btrfs]], passare al punto successivo. Per filesystem di tipo btrfs, digitare invece nel terminale il seguente comando per verificare l'eventuale presenza di subvolumi:{{{
findmnt -t btrfs -T / ##comando da correggere
}}}
 In presenza di subvolumi l'output sarà simile al seguente:{{{
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda3[/@] btrfs rw,noatime,seclabel,compress=zstd:1,ssd,discard=async,space_cache=v2,subvolid=975,subvol=/@
}}}
 dove è presente il subvolume '''@''' per la root di sistema. Montare quindi i subsolumi eventualmente presenti:{{{
sudo chroot /mnt/@
}}}
 {{{#!wiki note
In Ubuntu 24.04 usando il nuovo installer non vengono creati subvolumi selezionando il filesystem btrfs. Vengono invece creati usando l'installer Calamares (presente nelle immagini delle derivate Kubuntu e Lubuntu).
}}}

 0. Se presente, montare l'eventuale partizione '''EFI''' (saltare questo passaggio se non necessario). A tal fine digitare:{{{
sudo mount -t vfat /dev/sda2 /mnt/boot/efi/
}}}

 <<Anchor(mount)>>
 0. Montare in `/mnt` anche le directory virtuali `/dev`, `/proc`, `/sys` e `/run` con il comando:{{{
for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
}}}
Eseguire un backup preventivo e procedere solo se si è coscienti di cosa comporta l'operazione.
}}}

In sistemi server e/o multi-utente potrebbe convenire ridurre il numero delle console virtuali oppure disabilitare quelle non utilizzate. Ciò potrebbe talvolta avere dei vantaggi, come ad esempio:

 * '''Sicurezza''': limitare il numero di console disponibili può restringere le occasioni per accessi non autorizzati.
 * '''Ridurre l'utilizzo delle risorse''': sebbene il carico di risorse di una o più console virtuali tty inattive possa sembrare trascurabile, ridurne il numero vuol dire meno servizi precaricati all'avvio e/o meno potenziali sessioni aperte. Ciò significa un utilizzo più efficiente delle risorse di sistema, in particolare in ambienti o hardware limitati.
 * '''Semplificazione''': concentrarsi solo sulle console utilizzate frequentemente (es: tty1, tty2, tty3) potrebbe migliorare l'efficienza operativa. Meno dispositivi TTY vuol dire anche avere meno interfacce attive da gestire e su cui operare, come anche meno utenti da monitorare (es: meno attività amministrative come l'analisi dei log ecc.).

Nel seguente esempio verranno disabilitate le console '''tty4''' e '''tty5'''.

 0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/systemd/logind.conf`.
 0. Individuare la seguente riga:{{{
#NAutoVTs=
}}}
 0. Modificarla con:{{{
NAutoVTs=3
}}}
 0. Salvare il file.
 0. Riavviare il sistema e verificare.
Linea 55: Linea 184:
In presenza di filesystem btrfs con subvolumi, il comando andrà opportunamente modificato, ad esempio: `for i in dev proc sys run; do sudo mount --bind /$i /mnt/@/$i; done`.
}}}

 0. Effettuare il '''chroot''' sul sistema montato digitando: {{{
sudo chroot /mnt
}}}

Arrivati a questo punto, all'interno dell'ambiente '''chroot''' sarà possibile effettuare qualsiasi operazione sull'altro sistema tramite [[AmministrazioneSistema/Terminale|terminale]] (ad esempio installare/rimuovere/aggiornare pacchetti, modificare o eliminare file, ripristinarne il corretto avvio ecc.).
Il parametro `NAutoVTs=X` indica a '''[[AmministrazioneSistema/Systemd|systemd]]''' quanti terminali virtuali (VTs) creare dinamicamente. Non verranno toccati eventuali tty già in uso dal sistema (ad esempio '''tty7''' per l'ambiente grafico). Per maggiori informazioni consultare [[https://www.freedesktop.org/software/systemd/man/latest/logind.conf.html|questa pagina]].
}}}
Linea 65: Linea 188:
Quando è in uso chroot si ottiene l'accesso come [[AmministrazioneSistema/PrivilegiDiAmministrazione|root]]. Quindi prestare particolare attenzione ai comandi che vengono eseguiti.<<BR>>Si ricorda che __non__ occorre anteporre «`sudo`» a nessun comando.
}}}
Dopo questa modifica, premendo la combinazione di tasti relativa ad una tty disattivata (es.: '''Ctrl+Alt+F4'''), comparirà una schermata scura con il solo cursore lampeggiante. Premere la combinazione di tasti necessaria per tornare alla console desiderata (es.: '''Ctrl+Alt+F2''' o '''Ctrl+Alt+F7''').
}}}

= Ulteriori risorse =
 
 * [[https://en.wikipedia.org/wiki/Virtual_console|Pagina enciclopedica]]
 * [[https://www.linusakesson.net/programming/tty/index.php|The TTY demystified]] (articolo con aspetti storici e tecnici)
 * [[https://wafatech.sa/blog/linux/linux-security/securing-your-linux-server-disabling-unused-ttys-for-enhanced-safety/|Securing Your Linux Server: Disabling Unused TTYs for Enhanced Safety]]
 * [[https://www.linux.it/~rubini/docs/pty/pty.html|Pseudo-terminali]]
 * [[https://docs.kernel.org/driver-api/tty/index.html|Voce TTY su kernel.org]]
 * [[https://linuxhub.it/articles/howto-getty/|howto - usare e comprendere i getty terminals]]
Linea 70: Linea 201:
CategoryHomepage CategoryNuoviDocumenti ##CategoryAmministrazione
CategoryHomepage


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Guida verificata con Ubuntu: 22.04 24.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida spiega cosa sono le console virtuali in Ubuntu e illustra alcuni possibili utilizzi e configurazioni.

Le console virtuali - in poche parole - non sono altro che dei dispositivi astratti attraverso i quali uno o più utenti possono interagire con la macchina: fornire input e ricevere output (usando righe di comando o anche sessioni grafiche).
Il sottosistema TTY è centrale per GNU/Linux, come anche per i sistemi UNIX in generale.

Concetti fondamentali

Cenni storici

Per comprendere alcuni concetti e la terminologia, sono necessari alcuni approfondimenti di tipo storico.
Il termine TTY fa riferimento alle telescriventi (in inglese teleprinter, teletypewriter o teletype abbreviato quindi in TTY).
I primi sistemi informatici (approssimativamente negli anni '50 - '70) consistevano di grandi mainframe o computer centrali; non erano dotati di interfacce hardware/software di I/O paragonabili a quelle attuali (mouse, tastiere e schermi) e gli utenti di solito non vi lavoravano direttamente. I dati venivano compilati da remoto su supporti fisici (spesso schede perforate); poi una volta raccolti, caricati e processati, venivano infine restituiti agli utenti sotto forma di stampe cartacee.
Per semplificare il flusso di lavoro, fu pensato di collegare i computer a delle telescriventi connesse tramite cablaggio. In questo modo si potevano impartire istruzioni direttamente al calcolatore tramite una tastiera. Furono poi introdotti degli schermi video che non rendevano più necessaria la stampa.
Nascono così alcuni termini ed espressioni utilizzate ancora oggi, tra cui:

  • prompt: era un simbolo stampato che fungeva come segnale con cui la telescrivente notificava di essere pronta all'utilizzo.

  • console: nel senso di quadro di comando dotato di pulsanti e tasti.

  • stampare a schermo: far comparire un output su un monitor anziché stamparlo su carta (si pensi al comando print in alcuni linguaggi di programmazione).

  • terminale: rappresenta il termine (l'estremità finale) della connessione fisica fra la macchina e l'operatore.

Si arrivò quindi ad un punto in cui fu possibile collegare più terminali ad un calcolatore centrale con sistema multi-utente. Anche nei primi personal computer (come l'Apple I) era presente una TTY all'interno dei circuiti.

Successivamente, con il progresso tecnologico, le telescriventi furono virtualizzate grazie all'elettronica. In questo modo non era più necessario un dispositivo TTY meccanico collegato fisicamente. Le TTY delle moderne distribuzioni GNU/Linux sono infatti virtuali; pur collegandosi a tastiere e schermi, nel loro core simulano una classica macchina telescrivente.

Descrizione

L'implementazione delle TTY in GNU/Linux serve principalmente per permettere agli utenti di avere sempre almeno un'interfaccia con cui operare.
È infatti disponibile un terminale TTY quando si utilizza un sistema senza GUI (come su sistema Arch, Debian o Ubuntu minimali) oppure quando il sistema non riesce a caricare la sessione grafica in seguito a problemi.

Per Unix fu implementato getty (get tty), un programma che gestisce terminali fisici o virtuali per permettere l'accesso multi-utente su sistemi host (per GNU/Linux sono stati implementati l'equivalente agetty ed altri).
Inoltre nei sistemi basati su Unix, TTY è un dispositivo astratto. Può riferirsi ad un dispositivo di input fisico come una porta seriale, oppure a una TTY virtuale che consente agli utenti di interagire con il sistema. Consiste anche di un sottosistema che consente la gestione dei processi, la gestione delle sessioni a livello di kernel tramite driver TTY.
Ogni volta che si avvia un emulatore di terminale o si utilizza qualsiasi tipo di shell nel sistema, questo interagisce con TTY virtuali, detti anche pseudo-TTY o PTY.
Tuttavia per questi aspetti si rimanda agli approfondimenti.

Solitamente i moderni sistemi GNU/Linux offrono fino a sette console virtuali TTY, di cui una riservata all'utilizzo grafico (tradizionalmente tty7 in molte distribuzioni).


Nell'immagine accanto un esempio di una schermata di schermata di login a riga di comando, in cui viene specificato l'utilizzo del dispositivo/console tty1.


Utilizzo

Da un sistema Ubuntu desktop è possibile passare ad un'altra console per utilizzare il sistema con la sola riga di comando, senza sessione grafica. Non saranno presenti finestre, ma soltanto una schermata con sfondo scuro dalla quale digitare le istruzioni. A tale scopo è sufficiente premere una combinazione di tasti.

Di seguito sono riportate le combinazioni di tasti necessarie per Ubuntu (versione standard con desktop GNOME):

Combinazione

Modalità operativa

Console virt.

Ctrl+Alt+F1

Schermata di login (GDM)

tty1

Ctrl+Alt+F2

Sessione grafica (desktop)

tty2

Ctrl+Alt+F3

Riga di comando

tty3

Ctrl+Alt+F4

Riga di comando

tty4

Ctrl+Alt+F5

Riga di comando

tty5

Ctrl+Alt+F6

Riga di comando

tty6

Di seguito sono riportate le combinazioni di tasti tradizionali per accedere alle tty, valide per alcune derivate (es.: Xubuntu), oppure per versioni precedenti di Ubuntu o anche altre distribuzioni GNU/Linux:

Combinazione

Modalità operativa

Console virt.

Ctrl+Alt+F1

Riga di comando

tty1

Ctrl+Alt+F2

Riga di comando

tty2

Ctrl+Alt+F3

Riga di comando

tty3

Ctrl+Alt+F4

Riga di comando

tty4

Ctrl+Alt+F5

Riga di comando

tty5

Ctrl+Alt+F6

Riga di comando

tty6

Ctrl+Alt+F7

Sessione grafica (desktop)

tty7

Sarà così possibile eseguire il login con il proprio utente, inserire la password e quindi impartire i comandi.
Per ritornare alla sessione grafica premere la relativa combinazione di tasti (es: Ctrl+Alt+F2 o Ctrl+Alt+F7).
Da notare che, una volta passati da una console di tipo grafico ad una testuale, sarà possibile ritornare poi sulla prima senza che la sessione desktop venga interrotta; non sarà quindi necessario rieseguire il login.

La numerazione delle console potrebbe essere differente non soltanto su altri sistemi operativi, su derivate, o su vecchie versioni, ma anche se su Ubuntu sono state eseguite modifiche alle configurazioni. Pertanto, se le combinazioni di tasti sopra riportate non dovessero funzionare, è possibile provare con altri tasti funzione.
In alcune tastiere (es.: quelle che integrano funzionalità multimediali) potrebbe essere necessario premere anche il tasto Fn (es.: Fn+Ctrl+Alt+F2).

Questo metodo può rivelarsi utile in casi di emergenza, come ad esempio malfunzionamenti o blocchi improvvisi della sessione grafica.

Comandi utili

Di seguito una lista di comandi utilizzabili in un qualsiasi terminale.

  • Controllo del dispositivo in uso: digitare il comando:

    tty

    Verrà restituito un output simile al seguente:

    /dev/pts/0

    che indica che è in uso lo pseudo terminale /dev/pts/0 come dispositivo di input corrente.

  • Versione: digitare il comando:

    tty --version
  • Elencare dispositivi tty: digitare il comando:

    ls -l /dev | grep 'tty'

    L'output sarà simile al seguente:

    crw-rw-rw-  1 root tty         5,     2 feb 20 12:44 ptmx
    crw-rw-rw-  1 root tty         5,     0 feb 20 12:27 tty
    crw--w----  1 root tty         4,     0 feb 20 11:23 tty0
    crw--w----  1 root tty         4,     1 feb 20 12:19 tty1
    [...]
    crw-------  1 root root        5,     3 feb 20 11:23 ttyprintk
    crw-rw----  1 root dialout     4,    64 feb 20 11:23 ttyS0
    crw-rw----  1 root dialout     4,    65 feb 20 11:23 ttyS1
    crw-rw----  1 root dialout     4,    74 feb 20 11:23 ttyS10
    [...]
    crw-rw----  1 root tty         7,     0 feb 20 11:23 vcs
    crw-rw----  1 root tty         7,     1 feb 20 11:23 vcs1
    crw-rw----  1 root tty         7,     2 feb 20 11:23 vcs2
  • Visionare i dispositivi tty attivi: digitare il comando:

    cat /proc/tty/drivers

    L'output sarà simile al seguente:

    cat /proc/tty/drivers
    /dev/tty             /dev/tty        5       0 system:/dev/tty
    /dev/console         /dev/console    5       1 system:console
    /dev/ptmx            /dev/ptmx       5       2 system
    /dev/vc/0            /dev/vc/0       4       0 system:vtmaster
    serial               /dev/ttyS       4 64-95 serial
    pty_slave            /dev/pts      136 0-1048575 pty:slave
    pty_master           /dev/ptm      128 0-1048575 pty:master
    unknown              /dev/tty        4 1-63 console
  • Elencare utenti loggati: È possibile individuare quali utenti stanno utilizzando il sistema, e tramite quale console, con il comando:

    w

    L'output sarà simile al seguente:

     13:01:28 up  1:37,  2 users,  load average: 0,58, 0,86, 0,87
    UTENTE   TTY      DA               LOGIN@   IDLE   JCPU   PCPU  WHAT
    mario    tty2     -                12:19   42:14   0.17s  0.08s -bash
    mario    tty7     -                11:23    1:37m  6:09   0.07s lightdm --session-

    che mostra l'utente mario, che ha eseguito il login su un PC desktop sia su tty2 (con shell bash) sia su tty7 (sessione desktop). Mentre il seguente output:

     12:27:59 up 11 days,  1:08,  1 user,  load average: 0,21, 0,10, 0,03
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    maria    pts/0    192.168.1.44     12:10    3.00s  0.06s  0.02s w

    mostra l'utente maria che ha eseguito il login su un server da computer collegato a rete locale.
    In alternativa, per elencare i soli utenti e le console senza informazioni aggiuntive, digitare:

    who

    I precedenti comandi potrebbero essere utili per individuare eventuali accessi non autorizzati.

Disabilitare console inutilizzate

Eseguire un backup preventivo e procedere solo se si è coscienti di cosa comporta l'operazione.

In sistemi server e/o multi-utente potrebbe convenire ridurre il numero delle console virtuali oppure disabilitare quelle non utilizzate. Ciò potrebbe talvolta avere dei vantaggi, come ad esempio:

  • Sicurezza: limitare il numero di console disponibili può restringere le occasioni per accessi non autorizzati.

  • Ridurre l'utilizzo delle risorse: sebbene il carico di risorse di una o più console virtuali tty inattive possa sembrare trascurabile, ridurne il numero vuol dire meno servizi precaricati all'avvio e/o meno potenziali sessioni aperte. Ciò significa un utilizzo più efficiente delle risorse di sistema, in particolare in ambienti o hardware limitati.

  • Semplificazione: concentrarsi solo sulle console utilizzate frequentemente (es: tty1, tty2, tty3) potrebbe migliorare l'efficienza operativa. Meno dispositivi TTY vuol dire anche avere meno interfacce attive da gestire e su cui operare, come anche meno utenti da monitorare (es: meno attività amministrative come l'analisi dei log ecc.).

Nel seguente esempio verranno disabilitate le console tty4 e tty5.

  1. Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/systemd/logind.conf.

  2. Individuare la seguente riga:

    #NAutoVTs=
  3. Modificarla con:

    NAutoVTs=3
  4. Salvare il file.
  5. Riavviare il sistema e verificare.

Il parametro NAutoVTs=X indica a systemd quanti terminali virtuali (VTs) creare dinamicamente. Non verranno toccati eventuali tty già in uso dal sistema (ad esempio tty7 per l'ambiente grafico). Per maggiori informazioni consultare questa pagina.

Dopo questa modifica, premendo la combinazione di tasti relativa ad una tty disattivata (es.: Ctrl+Alt+F4), comparirà una schermata scura con il solo cursore lampeggiante. Premere la combinazione di tasti necessaria per tornare alla console desiderata (es.: Ctrl+Alt+F2 o Ctrl+Alt+F7).

Ulteriori risorse


CategoryHomepage