screen
ユーザーエラーによる問題を回避するために、読み取り専用モードで既存のセッションの進行状況と出力を確認できるようにしたいと思います。これを行う方法はありますか?
答え1
答え2
あなたは試すことができます:
aclchg username -w "#"
マルチユーザーモードで実行している場合screen
(ただし、単一の追加ユーザーとしてテストするときは、機能するために特別なタスクを実行する必要はありませんでした)。マルチユーザーモードに入る必要がある場合は、を使用してくださいmultiuser on
。
*
このユーザー名を使用して、すべてのユーザーに影響を与えることができます。
書き込みモードを有効にする+w
代わりに使用してください。-w
~からman screen
:
aclchg ユーザー名権限リスト
chacl ユーザー名権限リストカンマで区切られたユーザーリストの権限を変更します。許可ビットは「r」、「w」、「x」で表されます。プレフィックス「+」は権限を付与し、「-」は権限を削除します。 3番目の引数は、カンマで区切られたコマンドおよび/またはウィンドウのリストです(番号またはタイトルで指定)。特殊リスト「#」はすべてのウィンドウを表し、「?」はすべてのコマンドを表します。ユーザー名が単一の「*」で構成されると、すべての既知のユーザーが影響を受けます。ユーザーに「x」ビットがある場合は、コマンドを実行できます。ユーザーが「w」ビットを設定し、他のユーザーがウィンドウの書き込みロックを取得していない場合、ユーザーはウィンドウに入力を入力できます。他のビットは現在無視されます。ウィンドウ2で他のユーザーの書き込みロックをキャンセルするには: "aclchgユーザー名-w + w 2"。セッションへの読み取り専用アクセスを許可するには: 'aclchgユーザー名-w "#"'。画面のユーザー名がわかっている場合は、セッションに接続でき(デフォルトでは)、すべてのコマンドとウィンドウに対するフルアクセス権があります。 aclコマンド、「at」、およびその他のコマンドに対する実行権限も削除する必要があります。それ以外の場合、ユーザーは書き込み権限を再取得できます。特殊ユーザー名 none の権限は変更できません ("su" コマンドを参照)。 「Chacl」は「aclchg」の同義語です。マルチユーザーモードのみ。
答え3
出力を安全に監視する非常に簡単な解決策を見つけました。
screen セッションに入った直後に次のコマンドを実行します。
echo /tmp/$STY
touch /tmp/$STY
chmod 0600 /tmp/$STY
script -a -f /tmp/$STY
スクリプト出力を使用してセッションを分離し、Ctrl-A dスクリプト出力に従います。例:
tail -f /tmp/10751.test
答え4
「追加のお知らせがあるまで一時停止しました」で提供した回答をテストしました。動作しますが、コンテキストが必要な場合があります。 Debian 10で私が従ったステップは次のとおりです。
# chmod 4755 /usr/bin/screen # screen requires setuid for multiuser mode
# chmod 0755 /run/screen # screen requires this if setuid
$ screen -dR oneway # run as normaluser
^A:multiuser on # enable multiuser mode
^A:acladd readonlyuser # allow access by readonlyuser
^A:aclchg readonlyuser -w '#' # drop write access for readonlyuser
$
$ screen -x normaluser/oneway # run as readonlyuser
$ [enter] # try to enter text - should fail
write: permission denied (user readonlyuser)