Поиск по сайту:

Совместное использование сеансов терминала Linux с помощью Tmux и Screen


На этой странице

  1. Общий доступ к сеансу базового терминала с помощью одной учетной записи
    1. Базовый доступ к экрану
    2. Базовый общий доступ с помощью tmux

    1. Обмен данными между двумя разными аккаунтами с помощью tmux
    2. Обмен данными между двумя разными аккаунтами с помощью экрана

    GNU Screen — известные утилиты, позволяющие мультиплексировать виртуальные консоли. Используя любой из них, можно начать сеанс, отсоединиться, перейти на другой компьютер и возобновить сеанс в непрерывном режиме. Также возможно использовать эти инструменты для совместного использования одного сеанса между несколькими пользователями одновременно.

    Базовый общий доступ к сеансу терминала с одной учетной записью

    Если учетная запись используется совместно двумя или более пользователями, то совместное использование консоли терминала очень просто. Ни tmux, ни 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 — имя сеанса, а shareds — имя сокета:

    tmux -S /tmp/shareds new -s shared

    Затем измените сокет на группу, которую оба пользователя совместно используют. В этом примере join — это группа, которую используют оба пользователя. Если в группе есть другие пользователи, то они тоже имеют доступ. Поэтому можно рекомендовать, чтобы в группе было только два члена.

    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 — это имя сеанса экрана. Затем включите многопользовательский режим и добавьте user2 в ACL, где user2 является второй учетной записью для совместного использования сеанса.

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

    Сеанс можно сделать доступным только для чтения для второго пользователя, введя следующее изменение ACL: ^A:aclchg user2 -w \#?\

    Затем в другом терминале подключитесь к первому сеансу пользователя.

    screen -x user1/foobar

    Также можно включить многопользовательский режим и добавить user2 в .screenrc, чтобы он автоматически вступал в силу при запуске экрана. Если изменения нежелательны во всех сеансах экрана, можно указать отдельный файл конфигурации .screenrc, используя параметр -c при запуске экрана.

    Запоздалая мысль

    Будьте осторожны при выходе. Если вы просто выйдете из оболочки, сеанс терминала завершится для всех сторон. Если вместо этого вы отсоедините сеанс, другой пользователь сможет продолжить работу без перерыва. В tmux это ^B-d, а на экране ^A-d