- 参考
- みやすい概要 - https://mistymagich.wordpress.com/2011/11/08/multiuser_screen_command
- multiuser mode 権限制御系操作 - http://aperiodic.net/screen/multiuser
- 概要
- Screenコマンドを使うと、Linuxコンソールを複数ユーザセッション間で共有できます。
- ユースケース
- Devチームのペアプログラミングよろしく、Opsチームにも部下育成やダブルチェックを兼ねて、Linuxサーバオペレーションを複数名で行う場合があります。そんな時は、物理コンソールに人が集まって行うのもよいですが、ターミナルのセッションをSSHで皆が共有できるScreenを使うと捗ります。
- 環境例
- Debian Jessie +
- 共有元ユーザ: parent
- 共有先ユーザ: child
事前準備
- screen インストール
sudoer_console
sudoer@test:~$ sudo apt-get update && sudo apt-get install screen
- screen セッションを各ユーザで共有可能にする設定
sudoer_console
sudoer@test:~$ sudo chmod u+s /usr/bin/screen
sudoer@test:~$ sudo chmod 755 /var/run/screen
セッション公開
- screen セッション share を立てる
parent_console
parent@test:~$ screen -S share
- childユーザへ share セッションを共有する
parent_console
parent@test:~$
(Ctrl+a)
:multiuser on
Multiuser mode enabled
parent@test:~$
(Ctrl+a)
:acladd child
parent@test:~$
セッション参加
- parent ユーザが立てたscreenのセッション名を確認し、乗り込む
child_console
child@test:~$ screen -ls parent/
There is a suitable screen on:
1448.share (03/07/2017 10:49:09 AM) (Multi, attached)
1 Socket in /var/run/screen/S-parent.
child@test:~$ screen -x parent/share
ログアウトとデタッチの動作
- parent ユーザが screen セッションとして起動されているloginセッションからログアウトする
parent_console
parent@test:~$ exit
[screen is terminating]
parent@test:~$
- child ユーザが screen セッションとして起動されているloginセッションからログアウトする
child_console
parent@test:~$ exit
[screen is terminating]
child@test:~$
- parent ユーザが screen セッションshareをデタッチする
parent_console
parent@test:~$
(Ctrl+A) (d)
[detached from 1448.share]
parent@test:~$
- child ユーザが screen セッションshareをデタッチする
child_console
parent@test:~$
(Ctrl+A) (d)
[detached from 1448.share]
child@test:~$