GNU/Linux >> Linux Esercitazione >  >> Linux

Condivisione di sessioni del terminale Linux con Tmux e Screen

tmux e GNU Screen sono utilità ben note che consentono il multiplexing di console virtuali. Usando entrambi, è possibile avviare una sessione, staccare, passare a un altro computer e riprendere la sessione senza interruzioni. È anche possibile utilizzare questi strumenti per condividere una singola sessione tra più utenti contemporaneamente.

Condivisione di base della sessione del terminale con un singolo account

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

Condivisione di base con lo schermo

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

screen -S foobar

Quindi, nell'altro terminale, collega 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 condiviso è il nome della sessione:

tmux new-session -s shared

Quindi nel secondo terminale collega alla sessione condivisa.

tmux attach-session -t shared

Questo è tutto.

Condivisione di sessioni del terminale tra due account diversi

La condivisione tra due account diversi richiede alcuni passaggi aggiuntivi per concedere i privilegi necessari a un account per accedere alla sessione di un altro. In alcuni casi, sarà necessario l'aiuto dell'amministratore di sistema per preparare l'installazione.

Condivisione tra due account diversi con tmux

Per utenti diversi, devi impostare i permessi sul socket tmux in modo che entrambi gli utenti possano leggerlo e scriverlo. C'è un solo 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 condiviso è il nome della sessione e le condivisioni è il nome del socket:

tmux -S /tmp/shareds new -s shared

Quindi chgrp il socket in un gruppo condiviso da entrambi gli utenti. In questo esempio, joint è il gruppo condiviso da entrambi gli utenti. Se ci sono altri utenti nel gruppo, anche loro hanno accesso. Quindi potrebbe essere consigliabile che il gruppo abbia solo i due membri.

chgrp joint /tmp/shareds

Nel secondo terminale collega usando quel socket e quella sessione.

tmux -S /tmp/shareds attach -t shared

Questo è tutto. La sessione può essere resa in 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 diversi account con schermo

Se hai effettuato l'accesso come due utenti diversi, ci sono tre prerequisiti per utilizzare lo schermo. Innanzitutto, screen deve essere impostato SUID ed è necessario rimuovere l'accesso in scrittura di gruppo da /var/run/screen. La sicurezza dell'utilizzo di SUID in questo contesto è qualcosa da considerare. Quindi devi utilizzare gli ACL dello schermo per concedere l'autorizzazione al secondo utente.

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

Nel terminale del primo utente, avvia la schermata come nella condivisione di base sopra, dove foobar è il nome della sessione dello schermo. Quindi attiva la modalità multiutente e aggiungi user2 all'ACL, dove user2 è il secondo account a condividere la sessione.

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

La sessione può essere resa di sola lettura per il secondo utente immettendo la seguente modifica ACL:^A:aclchg user2 -w "#?"

Quindi, nell'altro terminale, collega alla sessione del primo utente.

screen -x user1/foobar

È anche possibile attivare multiutente e aggiungere user2 in .screenrc per farlo funzionare automaticamente all'avvio della schermata. Se le modifiche non sono desiderate in tutte le sessioni dello schermo, è possibile specificare un file di configurazione .screenrc separato utilizzando l'opzione -c all'avvio dello schermo.

Ripensamento

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


Linux
  1. 4 multiplexer di terminali Linux da provare

  2. Come riprodurre le sessioni del terminale registrate con il comando di script Linux

  3. Come acquisire le sessioni del terminale e l'output con il comando di script Linux

  4. Registrazione dello schermo in Linux con OBS e Wayland

  5. Usa il comando dello schermo per gestire le sessioni del terminale in Ubuntu 20.04

Esempi di comandi Tmux per gestire più sessioni di terminale in Linux

Come lavorare con il processo in primo piano e in background in Linux

Come installare e utilizzare Tmux (terminal multiplexer) in Linux

tmate:condividi istantaneamente la sessione del terminale con altri utenti Linux

Come installare e utilizzare Tmux (Terminal Multiplexer) nel sistema Linux

Linux - Imposta la dimensione del terminale e la posizione dello schermo predefinite?