
私たちは、スクリーン セッションを長時間放置し、何らかの方法でセッション タイムアウトを回避したユーザーのために、厳格なスクリーン セッション キラーを書き直そうとしています。
現在の方法は、screen の pid を見つけてそれを強制終了することです。screen プログラムは、他のユーザーのセッションにフックできるように記述されているようですが、root として何かをしようとすると、screen ディレクトリは別のディレクトリになります。これはセキュリティ上の理由によるものだと思いますが、意図的にこれを上書きして、screen -r somedude/33333 -d -X quit
root として ? のような操作を実行できるようにする方法はありますか?
答え1
標準screen
インスタンスは ですsingleuser
。つまり、各インスタンスにはそれを作成したユーザーのみがアクセスできます。
マルチユーザーscreen
インスタンスを許可するには、次のコマンドを追加する必要があります。
multiuser on
addacl root,<user1>,<user2>,...
グローバルscreen
設定に追加します/etc/screenrc
。
これ以降のすべてのscreen
インスタンスはマルチユーザーである必要があります。つまり、ユーザー固有のコマンドによって上書きされない限りscreen
、 で指定された別のユーザーが接続できます。addacl
ユーザー画面を一覧表示できます
$ find /var/run/screen -type s
/var/run/screen/S-<user>/<pid>.<tty>.<host>
他のユーザーの画面に添付するには
$ screen -d -r <user>/<pid>
チェックman screen
詳細については、カスタマイズ セクションを参照してくださいscreenrc
。
各ユーザーはファイルに独自のユーザー固有のscreenrc
コマンドを追加することもできるため$HOME/.screenrc
、そのユーザーのマルチユーザー画面は無効になることに注意してください。