웹사이트 검색

Tmux 및 Screen과 Linux 터미널 세션 공유


이 페이지에서

  1. 단일 계정으로 기본 터미널 세션 공유
    1. 화면 기본 공유\n
    2. tmux와 기본 공유

    1. tmux를 사용하여 서로 다른 두 계정 간 공유\n
    2. 화면으로 서로 다른 두 계정 간 공유\n

    GNU Screen은 가상 콘솔의 멀티플렉싱을 허용하는 잘 알려진 유틸리티입니다. 둘 중 하나를 사용하여 세션을 시작하고, 분리하고, 다른 시스템으로 이동하고 중단 없이 세션을 재개할 수 있습니다. 또한 이러한 도구를 사용하여 동시에 두 명 이상의 사용자 간에 단일 세션을 공유할 수도 있습니다.

    단일 계정으로 기본 터미널 세션 공유

    두 명 이상의 사용자가 공동으로 계정을 보유하는 경우 터미널 콘솔 공유는 매우 간단합니다. tmux나 screen 모두 여러 번 로그인한 단일 계정 간의 기본 공유를 위해 평범하지 않은 것을 요구하지 않습니다. 둘 다 동일한 사용자로 로그인되어 있으면 기본 공유가 매우 쉽습니다.

    화면과 기본 공유

    한 터미널에서 screen에 대한 새 세션을 만듭니다. 여기서 foobar는 screen 세션의 이름입니다.

    screen -S foobar

    그런 다음 다른 터미널에서 해당 세션에 연결합니다.

    screen -x foobar

    그게 다야, 단지 두 단계가 있었다.

    tmux와 기본 공유

    다시 말하지만 두 단계만 있습니다. 첫 번째 터미널에서 shared가 세션 이름인 tmux를 시작합니다.

    tmux new-session -s shared

    그런 다음 두 번째 터미널에서 공유 세션에 연결합니다.

    tmux attach-session -t shared

    그게 다야.

    서로 다른 두 계정 간에 터미널 세션 공유

    서로 다른 두 계정 간에 공유하려면 한 계정이 다른 계정에 액세스하는 데 필요한 권한을 부여하는 몇 가지 추가 단계가 필요합니다. 경우에 따라 설정을 준비하려면 시스템 관리자의 도움이 필요합니다.

    tmux를 사용하여 서로 다른 두 계정 간 공유

    다른 사용자의 경우 두 사용자 모두 읽고 쓸 수 있도록 tmux 소켓에 대한 권한을 설정해야 합니다. 두 사용자 간에 공통된 그룹이 있어야 한다는 전제 조건이 하나뿐입니다. 그러한 그룹이 존재하지 않는 경우 새로 만들어야 합니다.

    첫 번째 터미널에서 tmux를 시작합니다. 여기서 shared는 세션 이름이고 shareds는 소켓 이름입니다.

    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 사용의 안전성을 고려해야 합니다. 그런 다음 스크린 ACL을 사용하여 두 번째 사용자에게 권한을 부여해야 합니다.

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

    첫 번째 사용자 터미널에서 위의 기본 공유와 같이 화면을 시작합니다. 여기서 foobar는 화면 세션의 이름입니다. 그런 다음 다중 사용자 모드를 켜고 user2ACL에 추가합니다. 여기서 user2는 세션을 공유하는 두 번째 계정입니다.

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

    다음 ACL 변경을 입력하여 두 번째 사용자에 대해 세션을 읽기 전용으로 만들 수 있습니다. ^A:aclchg user2 -w "#?"

    그런 다음 다른 터미널에서 첫 번째 사용자 세션에 연결합니다.

    screen -x user1/foobar

    다중 사용자를 켜고 사용자 2를 .screenrc에 추가하여 화면 시작 시 자동으로 적용되도록 할 수도 있습니다. 모든 screen 세션에서 변경을 원하지 않는 경우 screen을 시작할 때 -c 옵션을 사용하여 별도의 .screenrc 구성 파일을 지정할 수 있습니다.

    보적

    나갈 때 조심하세요. 셸을 종료하면 모든 당사자의 터미널 세션이 종료됩니다. 대신 세션을 분리하면 다른 사용자가 중단 없이 작업을 계속할 수 있습니다. ^B-d인 tmux와 ^A-d인 화면에서