Terminale Linux · 3 min read · Dec 15, 2025

Condivisione delle sessioni del terminale Linux con Tmux e Screen

tmux e GNU Screen sono utilità ben note che consentono il multiplexing delle console virtuali. Utilizzando uno dei due, è possibile avviare una sessione, scollegarsi, spostarsi su un’altra macchina e riprendere la sessione senza interruzioni. È anche possibile utilizzare questi strumenti per condividere una singola sessione tra più utenti contemporaneamente.

Condivisione di sessioni terminali di base con un singolo account

Se un account è detenuto congiuntamente da due o più utenti, la condivisione della console del terminale è molto semplice. Né tmux né screen richiedono nulla di straordinario per la condivisione di base tra un singolo account connesso più volte. La condivisione di base è molto facile se entrambi siete connessi come lo stesso utente.

Condivisione di base con screen

In un terminale crea una nuova sessione per screen, dove foobar è il nome della tua sessione screen:

screen -S *foobar*

Poi, nell’altro terminale, collegati a quella sessione.

screen -x *foobar*

Ecco fatto, ci sono stati solo due passaggi.

Condivisione di base con tmux

Ancora una volta, ci sono solo due passaggi. Nel primo terminale, avvia tmux dove shared è il nome della sessione:

tmux new-session -s *shared*

Poi, nel secondo terminale, collegati alla sessione condivisa.

tmux attach-session -t *shared*

Ecco fatto.

Condivisione delle sessioni terminali tra due account diversi

La condivisione tra due account diversi richiede alcuni passaggi aggiuntivi per concedere i privilegi necessari affinché un account possa accedere alla sessione di un altro. In alcuni casi, sarà necessario l’aiuto dell’amministratore di sistema per preparare la configurazione.

Condivisione tra due account diversi con tmux

Per utenti diversi, devi impostare i permessi sul socket di tmux in modo che entrambi gli utenti possano leggerlo e scriverci. C’è solo un prerequisito, che ci sia un gruppo in comune tra i due utenti. Se tale gruppo non esiste, sarà necessario crearne uno.

Nel primo terminale, avvia tmux dove shared è il nome della sessione e shareds è il nome del socket:

tmux -S /tmp/shareds new -s *shared*

Poi cambia il gruppo del socket a un gruppo che entrambi gli utenti condividono. In questo esempio, joint è il gruppo che entrambi gli utenti condividono. Se ci sono altri utenti nel gruppo, anche loro avranno accesso. Quindi potrebbe essere consigliabile che il gruppo abbia solo i due membri.

chgrp joint /tmp/shareds

Nel secondo terminale, collegati utilizzando quel socket e quella sessione.

tmux -S /tmp/shareds attach -t *shared*

Ecco fatto. La sessione può essere resa di sola lettura per il secondo utente, ma solo su base volontaria. La decisione di lavorare in sola lettura viene presa quando il secondo utente si collega alla sessione.

tmux -S /tmp/shareds attach -t *shared* -r

Condivisione tra due account diversi con screen

Se sei connesso come due utenti diversi, ci sono tre prerequisiti per utilizzare screen. Prima di tutto, screen deve essere impostato SUID ed è necessario rimuovere l’accesso in scrittura per il gruppo da /var/run/screen. La sicurezza dell’uso di SUID in questo contesto è qualcosa da considerare. Poi devi utilizzare le ACL di screen per concedere il permesso al secondo utente.

sudo chmod u+s /usr/bin/screen  
sudo chmod 755 /var/run/screen

Nel terminale del primo utente, avvia screen come nella condivisione di base sopra, dove foobar è il nome della sessione screen. Poi attiva la modalità multiutente e aggiungi user2 all’ACL, dove user2 è il secondo account che condividerà la sessione.

screen -S *foobar*  
^A:multiuser on  
^A:acladd *user2*

La sessione può essere resa di sola lettura per il secondo utente inserendo la seguente modifica all’ACL: ^A:aclchg user2 -w “#?”

Poi, nell’altro terminale, collegati alla sessione del primo utente.

screen -x *user1*/foobar

È anche possibile attivare multiuser e acladd user2 nel .screenrc per farlo avere effetto automaticamente all’avvio di screen. Se le modifiche non sono desiderate in tutte le sessioni di screen, allora può essere specificato un file di configurazione .screenrc separato utilizzando l’opzione -c all’avvio di screen.

Riflessione finale

Fai attenzione quando esci. Se esci semplicemente dalla shell, terminerà la sessione del terminale per tutte le parti. Se invece scollegati dalla sessione, l’altro utente può continuare a lavorare senza interruzioni. In tmux è ^B-d e in screen è ^A-d

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.