root ユーザーは他のユーザーの画面を管理できますか?

root ユーザーは他のユーザーの画面を管理できますか?

私たちは、スクリーン セッションを長時間放置し、何らかの方法でセッション タイムアウトを回避したユーザーのために、厳格なスクリーン セッション キラーを書き直そうとしています。

現在の方法は、screen の pid を見つけてそれを強制終了することです。screen プログラムは、他のユーザーのセッションにフックできるように記述されているようですが、root として何かをしようとすると、screen ディレクトリは別のディレクトリになります。これはセキュリティ上の理由によるものだと思いますが、意図的にこれを上書きして、screen -r somedude/33333 -d -X quitroot として ? のような操作を実行できるようにする方法はありますか?

答え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、そのユーザーのマルチユーザー画面は無効になることに注意してください。

関連情報