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/sharedsNo 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* -rCompartilhamento 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/screenNo 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*/foobarTambé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
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.