Com allotjar diversos terminals Linux per visualitzar-los i col·laborar amb Wemux


En un article anterior, vam explicar com utilitzar tmux, (Terminal MUltipleXer), per accedir i controlar una sèrie de terminals (o finestres) des d'un únic terminal.

Ara us presentarem wemux (una versió multiusuari de tmux), que no només inclou les funcions proporcionades per tmux, sinó que també permet als usuaris allotjar un entorn multiterminal on els clients poden unir-se en mode de visualització o col·laboració.

És a dir, pots organitzar una sessió on altres puguin veure el que fas al terminal (per fer una demostració, per exemple) o col·laborar amb ells.

Per ajudar-vos a treure el màxim profit de wemux, us recomano que feu una ullada a la guia anterior sobre tmux abans de revisar el present article.

Instal·lació i configuració del terminal multiusuari de Wemux

Com a requisit previ abans d'instal·lar wemux, utilitzarem git per clonar el dipòsit del projecte al nostre sistema local. Si l'ordre següent mostra que git no es troba al vostre sistema:

# which git 

tal com indica:

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

Instal·leu-lo abans de continuar (utilitzeu yum o aptitude segons la vostra distribució):

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

Llavors,

1. Cloneu el dipòsit remot.

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

2. Creeu un enllaç simbòlic a l'executable wemux dins de /usr/local/bin o un altre directori de la vostra variable PATH.

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

3. Copieu el fitxer de configuració d'exemple de configuració a /usr/local/etc.

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

I inseriu la línia següent:

host_list=(user1 user2 user3) 

on usuari1, usuari2 i usuari3 són usuaris que tenen permís per iniciar servidors wemux. Podeu afegir tants usuaris com sigui necessari separats per espais. Altres usuaris es podran connectar a un servidor wemux en execució, però no se'n permetran iniciar-ne cap.

Presentació del terminal multiusuari de wemux

Per simplificar les coses, tingueu en compte que podeu pensar en wemux com una eina que facilita la visualització de la consola i la col·laboració mútua en la mateixa sessió tmux.

Com s'ha explicat anteriorment, al fitxer de configuració (/usr/local/etc/wemux.conf), ja heu d'haver indicat quins usuaris podran iniciar un servidor wemux, és a dir, un sessió tmux a la qual es podran connectar altres usuaris. En aquest context, aquests usuaris s'anomenen clients.

Resumir:

  1. Servidor Wemux: una sessió tmux.
  2. Clients Wemux: usuaris que s'uneixen a la sessió tmux descrita anteriorment.

Aquestes són les ordres que s'utilitzen per gestionar els servidors wemux:

  1. wemux or wemux start: starts a new wemux server (if none exists; otherwise creates a new one) and creates a socket in /tmp/wemux-wemux whose permissions need to be set to 1777 so that other users may connect or attach to it:
  2. # chmod 1777 /tmp/wemux-wemux 
    
  3. wemux attach hooks you up to an existing wemux server.
  4. wemux stop kills the wemux server and removes the socket created earlier. This command needs to be executed from a separate terminal. Alternatively, you can use the exit shell builtin to close panes and eventually to return to your regular shell session.
  5. wemux kick username gets rid of the user currently logged on via SSH from the wemux server and removes his / her rogue sessions (more on this in a minute). This command requires that the wemux server has been started as root or with sudo privileges.
  6. wemux config opens the configuration file in the text editor indicated by the environment variable $EDITOR (only if such variable is configured in your system, which you can verify with echo $EDITOR).

Totes les ordres tmux enumerades anteriorment són vàlides dins de wemux, amb l'avantatge que el client es pot connectar a un servidor wemux en un dels tres modes.

Per fer-ho, executeu l'ordre que es troba a la columna COMANDA a continuació en un client potencial, per dir-ho d'alguna manera (es convertirà en un client real un cop s'hagi unit al servidor wemux):

Fem una ullada al següent screencast per obtenir una breu demostració dels tres modes de client descrits a la taula anterior (mateix ordre). Tingueu en compte que he utilitzat Terminator per iniciar el servidor (com a usuari gacanepa) al panell esquerre i connectar un client (com a prova d'usuari) al panell dret.

Així, podeu veure fàcilment com funciona un servidor wemux mentre interactueu amb un client. En repetir el procés que fa servir un client per unir-se a un servidor wemux, podeu fer que diversos clients facin el mateix simultàniament.

Altres característiques del terminal wemux

Si els paràgrafs anteriors no us van donar prou raons per provar wemux, esperem que les funcions següents us convenguin.

Els usuaris que tenen permís per iniciar servidors wemux (segons la directiva host_list del fitxer /usr/local/etc/wemux.conf) poden allotjar diverses sessions simultàniament si la directiva allow_server_change s'estableix en true:

allow_server_change="true"

Per iniciar dues sessions anomenades la i emea, executeu les ordres següents en dos terminals diferents:

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

De nou, utilitzarem Terminator per veure els dos terminals alhora (això és similar al que podríeu esperar canviant a diferents consoles amb Ctrl+Alt+F1 a F7):

Després de prémer Intro, les dues sessions s'inicien per separat:

A continuació, podeu fer que un client s'uneixi a qualsevol sessió amb:

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

Finalment, perquè un usuari remot (que es connecti mitjançant SSH) s'iniciï automàticament a wemux després de la sessió i el desconnecti del servidor quan es desconnecti, afegiu l'estrofa següent al seu fitxer ~/.bash_profile:

wemux [mode]; exit

on [mode] és un dels modes de client enumerats anteriorment.
Alternativament, un client pot canviar d'un servidor a un altre mitjançant:

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

Resum

En aquest article us hem explicat com utilitzar wemux per configurar la visualització remota del vostre terminal (i fins i tot la col·laboració mútua) molt fàcilment. Al ser publicat sota la llicència MIT, wemux és programari de codi obert i el podeu personalitzar encara més segons les vostres necessitats.

El codi font es troba a wemux Github i està disponible al vostre sistema a /usr/local/bin/wemux. Al mateix repositori de Github podeu trobar més informació sobre aquest programa.

Heu trobat útil aquesta publicació? Si us plau, fes-nos saber què en penses utilitzant el formulari següent.

Referència: https://github.com/zolrath/wemux