SSHを介して誰かが管理するMinecraftサーバー用のchroot Jailを設定しました。 chrootが正しく設定され、procとlibバインディングが刑務所の/ディレクトリにインストールされ、chroot / usrフォルダにはJava 17.0.7の動作インストールが含まれ、passwd / groupはchroot / etcファイルに含まれています。 chrootユーザーはscreenセッションを作成してscreenのすべての機能を使用できますが、コンソールに出力されるコマンドを実行しようとするとこのエラーが発生しますwrite error: Bad file descriptor
。もう1つの症状は、chrootユーザーがスクリーンセッション内でMinecraftサーバーを起動したときにコンソールに何も出力しないが、コンソールに何の証拠も表示せず、まだバックグラウンドで起動して実行されることです。このエラーは、chroot ユーザーが screen セッションにない場合には発生せず、screen セッション内でのみ発生します。
chroot刑務所でscreenが機能するには、mount run / screenをバインドし、次のコマンドdev/pts
セットを使用する必要がありましたdev/ptmx
。
mount -t devpts none "chroot/dev/pts" -o ptmxmode=0666,newinstance
ln -fs "pts/ptmx" "chroot/dev/ptmx"
rootでスクリーンセッションを開始してサーバーを起動したりコマンドを実行したりすると、これらの問題は発生しないため、stdoutとstdinがchroot / devフォルダにないことに関連していると推測されます。どんな助けやアイデアにも感謝します。重要な追加情報を提供することができます。