Ricerca nel sito web

Come ospitare più terminali Linux per la visualizzazione e la collaborazione con Wemux


In un articolo precedente, abbiamo spiegato come utilizzare tmux, (Terminal MUltipleXer), per accedere e controllare più terminali (o finestre) da un unico terminale.

Ora ti presenteremo wemux (una versione multiutente di tmux), che non solo include le funzionalità fornite da tmux, ma anche consente agli utenti di ospitare un ambiente multi-terminale a cui i clienti possono partecipare in modalità di visualizzazione o collaborativa.

In altre parole, puoi ospitare una sessione in cui altri possono vedere ciò che fai nel terminale (per eseguire una dimostrazione, ad esempio) o collaborare con loro.

Per aiutarti a ottenere il massimo da wemux, ti consiglio vivamente di dare un'occhiata alla guida precedente su tmux prima di leggere il presente articolo.

Installazione e configurazione del terminale multiutente Wemux

Come prerequisito prima di installare wemux, utilizzeremo git per clonare il repository del progetto nel nostro sistema locale. Se il seguente comando mostra che git non è stato trovato nel tuo sistema:

which git 

come indicato da:

/usr/bin/which: no git in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) 

Installalo prima di procedere (usa yum o aptitude a seconda della tua distribuzione):

yum install git       [On RedHat based systems] 
dnf install git       [On Fedora 22+ versions]
aptitude install git  [On Debian based systems]

Poi,

1. Clona il repository remoto.

git clone git://github.com/zolrath/wemux.git /usr/local/share/wemux 

2. Crea un collegamento simbolico all'eseguibile wemux all'interno di /usr/local/bin o in un'altra directory nel tuo ` PATH variabile.

ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux 

3. Copia il file di configurazione di esempio in /usr/local/etc.

cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf 

E inserisci la seguente riga:

host_list=(user1 user2 user3) 

dove user1, user2 e user3 sono utenti a cui è consentito avviare i server wemux. Puoi aggiungere tutti gli utenti necessari separati da spazi. Altri utenti potranno connettersi a un server wemux in esecuzione ma non potranno avviarne uno.

Presentazione del terminale multiutente wemux

Per semplificare le cose, tieni presente che puoi pensare a wemux come uno strumento che facilita la visualizzazione della console e la collaborazione reciproca sulla stessa sessione tmux.

Come spiegato in precedenza, nel file di configurazione (/usr/local/etc/wemux.conf), è necessario aver già indicato quali utenti potranno avviare un server wemux , o in altre parole, una sessione tmux alla quale altri utenti potranno collegarsi. In questo contesto, questi “utenti” sono chiamati clienti.

Riassumere:

  1. Server Wemux: una sessione tmux.
  2. Client Wemux: utenti che si uniscono alla sessione tmux descritta sopra.

Questi sono i comandi che servono per gestire i server wemux:

  1. wemux o wemux start: avvia un nuovo server wemux (se non esiste; altrimenti ne crea uno nuovo) e crea un socket in /tmp/wemux-wemux le cui autorizzazioni devono essere impostate su 1777 in modo che altri utenti possano connettersi o collegarsi ad esso:
  2. chmod 1777 /tmp/wemux-wemux 
    
  3. wemux attach ti collega a un server wemux esistente.
  4. wemux stop uccide il server wemux e rimuove il socket creato in precedenza. Questo comando deve essere eseguito da un terminale separato. In alternativa, puoi utilizzare la shell di uscita integrata per chiudere i riquadri ed eventualmente tornare alla normale sessione della shell.
  5. wemux kick nome utente elimina l'utente attualmente connesso tramite SSH dal server wemux e rimuove le sue sessioni canaglia (ne parleremo più avanti tra un minuto). Questo comando richiede che il server wemux sia stato avviato come root o con privilegi sudo.
  6. wemux config apre il file di configurazione nell'editor di testo indicato dalla variabile d'ambiente $EDITOR (solo se tale variabile è configurata nel tuo sistema, cosa che puoi verificare con echo $EDITOR ).

Tutti i comandi tmux elencati in precedenza sono validi all'interno di wemux, con il vantaggio che il client può collegarsi a un server wemux in una delle tre modalità .

Per fare ciò, esegui il comando che trovi nella colonna COMANDO qui sotto in un “potenziale cliente“, per così dire (diventerà un vero cliente una volta entrato in wemux server):

Mode Description Commands
Mirror Read-only, non-interactive wemux mirror
Pair Interactive, client shares cursor with the server wemux pair
Rogue Joins an existing session but allows the client to uses independent windows wemux rogue

Diamo un'occhiata al seguente screencast per una breve dimostrazione delle tre modalità client descritte nella tabella sopra (stesso ordine). Tieni presente che ho utilizzato Terminator per avviare il server (come utente gacanepa) nel riquadro di sinistra e connettere un client (come utente test) nel riquadro di destra.

In questo modo puoi facilmente vedere come funziona un server wemux mentre interagisci con un client. Ripetendo il processo utilizzato da un client per unirsi a un server wemux, puoi fare in modo che più client facciano lo stesso contemporaneamente.

Altre caratteristiche del terminale wemux

Se i paragrafi precedenti non ti hanno dato ragioni sufficienti per provare wemux, speriamo che le seguenti funzionalità ti convincano.

Gli utenti autorizzati ad avviare server wemux (secondo la direttiva host_list nel file /usr/local/etc/wemux.conf) possono ospitare più sessioni contemporaneamente se la direttiva allow_server_change è impostata su true:

allow_server_change="true"

Per avviare due sessioni denominate la e emea, esegui i seguenti comandi in due terminali diversi:

wemux join la && wemux start
wemux join emea && wemux start

Ancora una volta, utilizzeremo Terminator per visualizzare i due terminali contemporaneamente (questo è simile a quello che potresti aspettarti passando a console diverse con Ctrl+Alt+F1 fino a F7):

Dopo aver premuto Invio, entrambe le sessioni vengono avviate separatamente:

Quindi puoi fare in modo che un cliente partecipi a entrambe le sessioni con:

wemux join la && wemux attach
Or
wemux join emea && wemux attach

Infine, per fare in modo che un utente remoto (che si connette tramite SSH) si avvii automaticamente su wemux dopo l'accesso e lo disconnette dal server quando si scollega, aggiungi la riga follow al suo file ~/.bash_profile:

wemux [mode]; exit

dove [mode] è una delle modalità client elencate in precedenza.
In alternativa, un client può passare da un server all'altro utilizzando:

exit
wemux join [server name here] && wemux [mode]

Riepilogo

In questo articolo ti abbiamo spiegato come utilizzare wemux per impostare molto facilmente la visualizzazione remota del tuo terminale (e anche la collaborazione reciproca). Essendo rilasciato sotto licenza MIT, wemux è un software open source ed è possibile personalizzarlo ulteriormente in base alle proprie esigenze.

Il codice sorgente si trova in wemux Github ed è disponibile nel tuo sistema in /usr/local/bin/wemux. Nello stesso repository Github puoi trovare maggiori informazioni su questo programma.

Hai trovato utile questo post? Fateci sapere cosa ne pensate utilizzando il modulo sottostante.