Preparar os usuários e o grupo
Crie um grupo que será usado para compartilhamento do tmux (se ainda não existir):
sudo groupadd multiplexer
Adicione os usuários ao grupo:
sudo usermod -aG multiplexer bob
sudo usermod -aG multiplexer alice
Para que as alterações tenham efeito, os usuários devem sair e entrar novamente na sessão.
Criar a sessão tmux com socket personalizado
Um dos usuários (por exemplo, bob) cria a sessão tmux especificando um socket customizado:
tmux -S /tmp/our_socket new -s our_session
Aqui, -S /tmp/our_socket define o arquivo de socket que será usado para conexão compartilhada.-s our_session é o nome da sessão.
Ajustar permissões do socket
Mude o grupo do socket para o grupo compartilhado:
chgrp multiplexer /tmp/our_socket
Adicione permissão de leitura/escrita para o grupo:
chmod g+rw /tmp/our_socket
Agora qualquer usuário do grupo multiplexer pode ler e escrever no socket.
Permitir explicitamente o acesso do outro usuário
A partir do tmux 3.3a, apenas ajustar permissões do socket não é suficiente. É necessário informar ao tmux que o outro usuário tem permissão.
Se você não executar o passo abaixo irá receber erro de “access not allowed” ou “acesso não permitido“
Execute
tmux
Agora, já dentro do tmux, digite:
tmux server-access -a alice
Isso deve ser feito pelo usuário que criou a sessão (bob).
Dica: Também é possível dar acesso apenas de leitura:
tmux server-access -r -a alice
O parâmetro -r define acesso somente leitura.
Conectar-se à sessão compartilhada
O outro usuário (alice) pode agora conectar-se sem sudo:
tmux -S /tmp/our_socket attach -t our_session
Um pouco sobre “tmux server-access”
Como disse acima. no tmux 3.3a ou superior, você pode listar os usuários que já têm acesso ao servidor tmux usando o comando:
tmux server-access -l
Explicação:
-a username→ adiciona um usuário à lista de acesso.-d username→ remove um usuário da lista.-l→ lista todos os usuários que atualmente têm permissão de acesso à sessão tmux.
Então, depois de adicionar alice com:
tmux server-access -a alice
você pode verificar se funcionou com:
tmux server-access -l
Isso vai mostrar algo como:
alice
bob
Cada nome corresponde a um usuário autorizado a conectar-se ao servidor tmux.
Veja também: Tmux: Como Matar Todas as Sessões tmux exceto a atual?