私はPHPからスクリーンセッションに入力を送信しようとしています。これまでのところ、ここで説明されている手順に従いました。
マルチユーザー モードを機能させる唯一の方法は、GNU Screen を suid root で実行することでしょうか?
そして、screenrcファイル(いや、-cオプションで使用している別のファイルではそうではないのですが)に「multiuser on」と「acladd www-data」を設定しました。
私の問題は、PHPで画面にアクセスしようとするたびに
exec('screen -S user/session -p 0 -X stuff "test"'."\n", $ret);
次のエラーが発生します:
Cannot opendir /var/run/screen/S-user: Permission denied
答え1
権限、権限、権限
PHP インタープリターを実行しているユーザーには、実行中のスクリーン セッションにアクセスするために必要な権限がありません。
ユーザー www-data に画面を使用する権限を与えましたが、画面ファイルへのアクセスは拒否されました。ファイルの権限を変更して、www-data ユーザーが読み取り/書き込みできるようにしてください。