
Tmux 및 Screen을 사용하여 Linux 터미널 세션 공유
tmux 및 GNU Screen 가상 콘솔의 다중화를 허용하는 잘 알려진 유틸리티입니다. 둘 중 하나를 사용하여 세션을 시작하고, 분리하고, 다른 시스템으로 이동하고, 중단 없이 세션을 재개할 수 있습니다. 이러한 도구를 사용하여 동시에 둘 이상의 사용자 간에 단일 세션을 공유할 수도 있습니다.
두 명 이상의 사용자가 계정을 공동으로 보유하는 경우 터미널 콘솔을 공유하는 것은 매우 간단합니다. tmux나 screen은 여러 번 로그인한 단일 계정 간의 기본 공유를 위해 특별한 것이 필요하지 않습니다. 기본 공유는 둘 다 같은 사용자로 로그인하면 매우 쉽습니다.
한 터미널에서 screen에 대한 새 세션을 만듭니다. 여기서 foobar는 화면 세션의 이름입니다.
다시 말하지만, 두 단계만 있습니다. 첫 번째 터미널에서 tmux를 시작합니다. 여기서 shared는 세션 이름입니다.
두 개의 서로 다른 계정 간에 공유하려면 한 계정이 다른 계정의 세션에 액세스하는 데 필요한 권한을 부여하기 위해 몇 가지 추가 단계가 필요합니다. 어떤 경우에는 설정을 준비하기 위해 시스템 관리자의 도움이 필요합니다.
다른 사용자의 경우 두 사용자가 모두 읽고 쓸 수 있도록 tmux 소켓에 대한 권한을 설정해야 합니다. 전제 조건은 두 사용자 사이에 공통 그룹이 있다는 것입니다. 그러한 그룹이 존재하지 않으면 하나 만들어야 합니다.
첫 번째 터미널에서 tmux를 시작합니다. 여기서 shared는 세션 이름이고 shared는 소켓 이름입니다.
두 명의 다른 사용자로 로그인한 경우 screen을 사용하기 위한 세 가지 전제 조건이 있습니다. 먼저 화면에 SUID를 설정해야 하며/var/run/screen에서 그룹 쓰기 권한을 제거해야 합니다. 이 컨텍스트에서 SUID를 사용할 때의 안전성은 고려해야 할 사항입니다. 그런 다음 screen의 ACL을 사용하여 두 번째 사용자에게 권한을 부여해야 합니다.
그런 다음 다른 터미널에서 첫 번째 사용자의 세션에 연결합니다.
나갈 때 조심하세요. 쉘을 종료하면 모든 당사자의 터미널 세션이 종료됩니다. 대신 세션을 분리하면 다른 사용자가 중단 없이 계속 작업할 수 있습니다. ^B-d인 tmux와 ^A-d인 화면에서
단일 계정으로 기본 터미널 세션 공유
두 명 이상의 사용자가 계정을 공동으로 보유하는 경우 터미널 콘솔을 공유하는 것은 매우 간단합니다. tmux나 screen은 여러 번 로그인한 단일 계정 간의 기본 공유를 위해 특별한 것이 필요하지 않습니다. 기본 공유는 둘 다 같은 사용자로 로그인하면 매우 쉽습니다.
화면과의 기본 공유
한 터미널에서 screen에 대한 새 세션을 만듭니다. 여기서 foobar는 화면 세션의 이름입니다.
screen -S foobar그런 다음 다른 터미널에서 해당 세션에 연결합니다.
screen -x foobar즉, 두 단계 만 수행했습니다.
tmux를 통한 기본 공유
다시 말하지만, 두 단계만 있습니다. 첫 번째 터미널에서 tmux를 시작합니다. 여기서 shared는 세션 이름입니다.
tmux new-session -s shared그런 다음 두 번째 터미널에서 공유 세션에 연결합니다.
tmux attach-session -t shared그게 다야
두 개의 다른 계정 간에 터미널 세션 공유
두 개의 서로 다른 계정 간에 공유하려면 한 계정이 다른 계정의 세션에 액세스하는 데 필요한 권한을 부여하기 위해 몇 가지 추가 단계가 필요합니다. 어떤 경우에는 설정을 준비하기 위해 시스템 관리자의 도움이 필요합니다.
tmux를 사용하여 두 개의 다른 계정 간 공유
다른 사용자의 경우 두 사용자가 모두 읽고 쓸 수 있도록 tmux 소켓에 대한 권한을 설정해야 합니다. 전제 조건은 두 사용자 사이에 공통 그룹이 있다는 것입니다. 그러한 그룹이 존재하지 않으면 하나 만들어야 합니다.
첫 번째 터미널에서 tmux를 시작합니다. 여기서 shared는 세션 이름이고 shared는 소켓 이름입니다.
tmux -S /tmp/shareds new -s shared그런 다음 두 사용자가 공통으로 공유하는 그룹에 소켓을 chgrp합니다. 이 예에서 joint는 두 사용자가 공유하는 그룹입니다. 그룹에 다른 사용자가 있는 경우 해당 사용자도 액세스할 수 있습니다. 따라서 그룹에 두 명의 구성원만 있는 것이 좋습니다.
chgrp joint /tmp/shareds두 번째 터미널에서 해당 소켓과 세션을 사용하여 연결합니다.
tmux -S /tmp/shareds attach -t shared그게 다야 세션은 두 번째 사용자에 대해 읽기 전용으로 설정할 수 있지만 자발적으로만 가능합니다. 두 번째 사용자가 세션에 연결할 때 읽기 전용으로 작업하기로 결정합니다.
tmux -S /tmp/shareds attach -t shared -r
화면으로 두 개의 다른 계정 간 공유
두 명의 다른 사용자로 로그인한 경우 screen을 사용하기 위한 세 가지 전제 조건이 있습니다. 먼저 화면에 SUID를 설정해야 하며/var/run/screen에서 그룹 쓰기 권한을 제거해야 합니다. 이 컨텍스트에서 SUID를 사용할 때의 안전성은 고려해야 할 사항입니다. 그런 다음 screen의 ACL을 사용하여 두 번째 사용자에게 권한을 부여해야 합니다.
sudo chmod u+s /usr/bin/screen첫 번째 사용자의 터미널에서 위의 기본 공유와 같이 화면을 시작합니다. 여기서 foobar는 화면 세션의 이름입니다. 그런 다음 다중 사용자 모드를 켜고 user2를 ACL에 추가합니다. 여기서 user2는 세션을 공유할 두 번째 계정입니다.
sudo chmod 755 /var/run/screen
screen -S foobar다음 ACL 변경을 입력하여 세션을 두 번째 사용자에 대해 읽기 전용으로 만들 수 있습니다. ^A:aclchg user2 -w "#?"
^A:multiuser on
^A:acladd user2
그런 다음 다른 터미널에서 첫 번째 사용자의 세션에 연결합니다.
screen -x user1/foobar다중 사용자를 켜고 user2를 .screenrc에 추가하여 화면 시작 시 자동으로 적용되도록 할 수도 있습니다. 모든 화면 세션에서 변경을 원하지 않는 경우 화면을 시작할 때 -c 옵션을 사용하여 별도의 .screenrc 구성 파일을 지정할 수 있습니다.
보적
나갈 때 조심하세요. 쉘을 종료하면 모든 당사자의 터미널 세션이 종료됩니다. 대신 세션을 분리하면 다른 사용자가 중단 없이 계속 작업할 수 있습니다. ^B-d인 tmux와 ^A-d인 화면에서