Terminal Linux · 3 min read · Dec 15, 2025

Compartilhando Sessões do Terminal Linux Com Tmux e Screen

tmux e GNU Screen são utilitários bem conhecidos que permitem o multiplexamento de consoles virtuais. Usando qualquer um deles, é possível iniciar uma sessão, desanexar, mover para uma máquina diferente e retomar a sessão em progresso ininterrupto. Também é possível usar essas ferramentas para compartilhar uma única sessão entre mais de um usuário ao mesmo tempo.

Compartilhamento Básico de Sessões de Terminal Com Uma Única Conta

Se uma conta é mantida em conjunto entre dois ou mais usuários, então o compartilhamento do console do terminal é muito simples. Nem tmux nem screen requerem nada fora do comum para o compartilhamento básico entre uma única conta logada várias vezes. O compartilhamento básico é muito fácil se ambos estiverem logados como o mesmo usuário.

Compartilhamento básico com screen

Em um terminal, crie uma nova sessão para o screen, onde foobar é o nome da sua sessão do screen:

screen -S *foobar*

Então, no outro terminal, anexe-se a essa sessão.

screen -x *foobar*

É isso, foram apenas dois passos.

Compartilhamento básico com tmux

Novamente, há apenas dois passos. No primeiro terminal, inicie o tmux onde shared é o nome da sessão:

tmux new-session -s *shared*

Então, no segundo terminal, anexe-se à sessão compartilhada.

tmux attach-session -t *shared*

É isso.

Compartilhando Sessões de Terminal Entre Duas Contas Diferentes

O compartilhamento entre duas contas diferentes requer alguns passos adicionais para conceder os privilégios necessários para que uma conta acesse a sessão da outra. Em alguns casos, será necessária a ajuda do administrador do sistema para preparar a configuração.

Compartilhamento entre duas contas diferentes com tmux

Para usuários diferentes, você deve definir as permissões no socket do tmux para que ambos os usuários possam lê-lo e escrevê-lo. Há apenas um pré-requisito, que haja um grupo em comum entre os dois usuários. Se tal grupo não existir, será necessário criar um.

No primeiro terminal, inicie o tmux onde shared é o nome da sessão e shareds é o nome do socket:

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

Então, mude o grupo do socket para um grupo que ambos os usuários compartilham. Neste exemplo, joint é o grupo que ambos os usuários compartilham. Se houver outros usuários no grupo, eles também terão acesso. Portanto, pode ser recomendado que o grupo tenha apenas os dois membros.

chgrp joint /tmp/shareds

No segundo terminal, anexe-se usando aquele socket e sessão.

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

É isso. A sessão pode ser tornada somente leitura para o segundo usuário, mas apenas de forma voluntária. A decisão de trabalhar em modo somente leitura é feita quando o segundo usuário se anexa à sessão.

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

Compartilhamento entre duas contas diferentes com screen

Se você estiver logado como dois usuários diferentes, há três pré-requisitos para usar o screen. Primeiro, o screen deve ser definido como SUID e é necessário remover o acesso de gravação do grupo de /var/run/screen. A segurança de usar SUID neste contexto é algo a considerar. Em seguida, você deve usar as ACLs do screen para conceder permissão ao segundo usuário.

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

No terminal do primeiro usuário, inicie o screen como no compartilhamento básico acima, onde foobar é o nome da sessão do screen. Em seguida, ative o modo multiusuário e adicione user2 à ACL, onde user2 é a segunda conta que compartilhará a sessão.

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

A sessão pode ser tornada somente leitura para o segundo usuário inserindo a seguinte alteração de ACL: ^A:aclchg user2 -w “#?”

Então, no outro terminal, anexe-se à sessão do primeiro usuário.

screen -x *user1*/foobar

Também é possível colocar multiuser on e acladd user2 no .screenrc para que isso tenha efeito automaticamente ao iniciar o screen. Se as alterações não forem desejadas em todas as sessões do screen, então um arquivo de configuração .screenrc separado pode ser especificado usando a opção -c ao iniciar o screen.

Considerações Finais

Tenha cuidado ao sair. Se você apenas sair do shell, isso encerrará a sessão do terminal para todas as partes. Se você, em vez disso, desanexar a sessão, o outro usuário pode continuar trabalhando ininterruptamente. No tmux, isso é ^B-d e no screen, isso é ^A-d

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.