|
Dimensione: 3675
Commento:
|
Dimensione: 8861
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: |
| [...] | |
| Linea 12: | Linea 12: |
| <<Anchor(preliminari)>> = Operazioni preliminari = |
Questa guida spiega cosa sono le console virtuali in Ubuntu e illustra alcuni possibili utilizzi e configurazioni. |
| Linea 15: | Linea 14: |
| 0. Avviare la '''Live''' di '''Ubuntu''' oppure l'altro sistema GNU/Linux presente nel computer. | Le console virtuali - in poche parole - non sono altro che dei dispositivi astratti attraverso i quali è possibile interagire con la macchina: fornire input e ricevere output.<<BR>> Il sottosistema '''TTY''' è centrale per come è concepito GNU/Linux, come anche i sistemi UNIX in generale. |
| Linea 17: | Linea 17: |
| 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. |
= 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>> Infatti 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 caricati da remoto su supporti fisici (spesso schede perforate) e, una volta raccolti e processati, 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é su carta (si pensi al comando `print` in alcuni linguaggi di programmazione) * '''terminale''': rappresenta il termine o parte 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 all'utente di avere sempre 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 problemi. Nei sistemi basati su UNIX, TTY, è un dispositivo astratto. Può riferirsi ad un dispositivo di input fisico come una porta seriale, oppure a un 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. Tuttavia per questi aspetti si rimanda agli approfondimenti.<<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. Solitamente i moderni sistemi GNU/Linux rendono disponibili fino a sette console virtuali TTY, di cui una riservata all'utilizzo grafico ('''tty7''' in Ubuntu ed altre distribuzioni). = Utilizzo = Come detto in precedenza, su un comune sistema Ubuntu desktop sarà in funzione la console '''tty7'''.<<BR>> È possibile cambiare console per utilizzare il sistema da con la sola riga di comando, senza sessione grafica. Non saranno presenti finestre, ma soltanto una schermata con sfondo scuro, dal quale digitare le istruzioni. A tale scopo premere la combinazione di tasti '''Ctrl+Alt+F2'''.<<BR>> Sarà quindi possibile eseguire il login con il proprio utente, inserire la password e quindi impartire i comandi.<<BR>> Per ritornare alla sessione grafica premere la combinazione di tasti '''Ctrl+Alt+F7'''. {{{#!wiki note Su Ubuntu per impostazione predefinita le console da '''tty1''' a '''tty6''' sono testuali, mentre la console '''tty7''' è riservata all'uso grafico.<<BR>> Si noti che passando da una console virtuale testuale (ad esempio '''tty2''') a quella dell'ambiente grafico ('''tty7'''), in quest'ultima la sessione desktop non viene interrotta e non è quindi necessario rieseguire il login.<<BR>> La numerazione delle console potrebbe essere però differente su altri sistemi operativi, oppure se su Ubuntu sono state eseguite modifiche alle configurazioni. Pertanto, se le combinazioni di tasti non dovessero funzionare, è possibile provare con altri tasti funzione (es: '''Ctrl+Alt+F3''', '''Ctrl+Alt+F4''' e così via). }}} {{{#!wiki tip Questo metodo può rivelarsi utile in casi di emergenza, come ad esempio malfunzionamenti improvvisi della sessione grafica. }}} = Comandi utili = Digitando in un qualsiasi terminale 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 imput corrente. È possibile individuare quali utenti stanno utilizzando il sistema e con quale console con il comando:{{{ who }}} L'output sara simile al seguente:{{{ mario tty7 2025-04-20 09:30 (:0) }}} che indica l'utente '''mario''', collegato a tty7 (sessione desktop) eseguendo il login alle ore 09:30 del 20 aprile 2025. Informazoni aggiuntive con il comando{{{ w }}} come:{{{ 12:20:01 up 56 min, 2 users, load average: 1,06, 0,82, 0,84 UTENTE TTY DA LOGIN@ IDLE JCPU PCPU WHAT user tty2 - 12:19 47.00s 0.17s 0.08s -bash user tty7 - 11:23 56:24 3:05 0.07s lightdm --session- }}} = Disabilitare console inutilizzate = |
| Linea 22: | Linea 94: |
| Di seguito verranno mostrati comandi con nomi fittizi delle partizioni. Sostituirli con quelli reali, individuati precedentemente. | Eseguire un backup e procedere solo se si è coscienti di cosa comporta l'operazione. |
| Linea 25: | Linea 97: |
| <<Anchor(accesso)>> = Accesso al sistema = |
In sistemi server e/o multi-utente potrebbe convenire ridurre il numero delle console virtuali oppure disabilitare quelle non utilizzate. Alcuni vantaggi: Possibili vantaggi: * Ridurre la portata potenziale di attacco: ogni TTY inutilizzata rappresenta un possibile vettore di attacco. Un aggressore potrebbe utilizzare queste interfacce per tentare un accesso non autorizzato. Disabilitandole, si chiudono di fatto questi punti di ingresso. |
| Linea 28: | Linea 101: |
| 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 |
* Ridurre l'utilizzo delle risorse : sebbene il carico di risorse di un TTY inattivo possa sembrare trascurabile, la riduzione del numero di sessioni aperte può portare a un utilizzo più efficiente delle risorse di sistema, in particolare in ambienti limitati. * Monitoraggio del sistema : con meno dispositivi TTY, si semplifica il monitoraggio delle attività degli utenti diventa più semplice (meno attività amministrative come l'analisi dei log ecc.). 0. Comando who o w per identificare numero console attive (es: tty3). 0. Vedere in `/etc/systemd/system/getty.target.wants` o directory con nome simile. 0. Comando:{{{ sudo systemctl disable getty@ttyX.service |
| Linea 31: | Linea 110: |
| 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 |
come ad esempio per tty3 {{{ sudo systemctl disable getty@tty3.service |
| Linea 34: | Linea 113: |
| 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=/@ |
0. Per evitare avvio manuale:{{{ sudo systemctl mask getty@tty3.service |
| Linea 38: | Linea 116: |
| 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 }}} |
0. Riavviare il sistema e verificare. |
| Linea 54: | Linea 118: |
| {{{#!wiki note 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.). {{{#!wiki important 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. |
Vedere anche {{{ cat /etc/default/console-setup |
| Linea 69: | Linea 123: |
| = Ulteriori risore = * [[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]] |
|
| Linea 70: | Linea 132: |
| 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 è possibile interagire con la macchina: fornire input e ricevere output.
Il sottosistema TTY è centrale per come è concepito GNU/Linux, come anche 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).
Infatti 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 caricati da remoto su supporti fisici (spesso schede perforate) e, una volta raccolti e processati, 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é su carta (si pensi al comando print in alcuni linguaggi di programmazione)
terminale: rappresenta il termine o parte 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 all'utente di avere sempre 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 problemi.
Nei sistemi basati su UNIX, TTY, è un dispositivo astratto. Può riferirsi ad un dispositivo di input fisico come una porta seriale, oppure a un 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. Tuttavia per questi aspetti si rimanda agli approfondimenti.
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.
Solitamente i moderni sistemi GNU/Linux rendono disponibili fino a sette console virtuali TTY, di cui una riservata all'utilizzo grafico (tty7 in Ubuntu ed altre distribuzioni).
Utilizzo
Come detto in precedenza, su un comune sistema Ubuntu desktop sarà in funzione la console tty7.
È possibile cambiare console per utilizzare il sistema da con la sola riga di comando, senza sessione grafica. Non saranno presenti finestre, ma soltanto una schermata con sfondo scuro, dal quale digitare le istruzioni.
A tale scopo premere la combinazione di tasti Ctrl+Alt+F2.
Sarà quindi possibile eseguire il login con il proprio utente, inserire la password e quindi impartire i comandi.
Per ritornare alla sessione grafica premere la combinazione di tasti Ctrl+Alt+F7.
Su Ubuntu per impostazione predefinita le console da tty1 a tty6 sono testuali, mentre la console tty7 è riservata all'uso grafico.
Si noti che passando da una console virtuale testuale (ad esempio tty2) a quella dell'ambiente grafico (tty7), in quest'ultima la sessione desktop non viene interrotta e non è quindi necessario rieseguire il login.
La numerazione delle console potrebbe essere però differente su altri sistemi operativi, oppure se su Ubuntu sono state eseguite modifiche alle configurazioni. Pertanto, se le combinazioni di tasti non dovessero funzionare, è possibile provare con altri tasti funzione (es: Ctrl+Alt+F3, Ctrl+Alt+F4 e così via).
Questo metodo può rivelarsi utile in casi di emergenza, come ad esempio malfunzionamenti improvvisi della sessione grafica.
Comandi utili
Digitando in un qualsiasi terminale 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 imput corrente.
È possibile individuare quali utenti stanno utilizzando il sistema e con quale console con il comando:
who
L'output sara simile al seguente:
mario tty7 2025-04-20 09:30 (:0)
che indica l'utente mario, collegato a tty7 (sessione desktop) eseguendo il login alle ore 09:30 del 20 aprile 2025.
Informazoni aggiuntive con il comando
w
come:
12:20:01 up 56 min, 2 users, load average: 1,06, 0,82, 0,84 UTENTE TTY DA LOGIN@ IDLE JCPU PCPU WHAT user tty2 - 12:19 47.00s 0.17s 0.08s -bash user tty7 - 11:23 56:24 3:05 0.07s lightdm --session-
Disabilitare console inutilizzate
Eseguire un backup 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. Alcuni vantaggi: Possibili vantaggi:
- Ridurre la portata potenziale di attacco: ogni TTY inutilizzata rappresenta un possibile vettore di attacco. Un aggressore potrebbe utilizzare queste interfacce per tentare un accesso non autorizzato. Disabilitandole, si chiudono di fatto questi punti di ingresso.
- Ridurre l'utilizzo delle risorse : sebbene il carico di risorse di un TTY inattivo possa sembrare trascurabile, la riduzione del numero di sessioni aperte può portare a un utilizzo più efficiente delle risorse di sistema, in particolare in ambienti limitati.
- Monitoraggio del sistema : con meno dispositivi TTY, si semplifica il monitoraggio delle attività degli utenti diventa più semplice (meno attività amministrative come l'analisi dei log ecc.).
- Comando who o w per identificare numero console attive (es: tty3).
Vedere in /etc/systemd/system/getty.target.wants o directory con nome simile.
Comando:
sudo systemctl disable getty@ttyX.service
come ad esempio per tty3
sudo systemctl disable getty@tty3.service
Per evitare avvio manuale:
sudo systemctl mask getty@tty3.service
- Riavviare il sistema e verificare.
Vedere anche
cat /etc/default/console-setup
Ulteriori risore
The TTY demystified (articolo con aspetti storici e tecnici)
Securing Your Linux Server: Disabling Unused TTYs for Enhanced Safety
