systemd内部の画面には/run/screenに対する777権限が必要ですが、外部では775権限が必要です。

systemd内部の画面には/run/screenに対する777権限が必要ですが、外部では775権限が必要です。

アプリケーションを実行しようとしています。システム内部サービス画面コンテナ。

サービスを開始しようとすると、次のエラーメッセージで失敗します。

screen[11648]: Directory '/run/screen' must have mode 777.

単純な間違いのように見えますが、簡単な解決策があります。これにより権限を変更すると、/run/screenサービスが問題なく開始されます。

ただし、スクリーンセッションを接続しようとすると(またはscreen通常のユーザーまたはrootで何らかの方法で実行しようとすると)、エラーメッセージが表示されます。

Directory '/run/screen' must have mode 775.

権限を変更すると、明らかに最初のエラーに戻り、そこで一日中画面で猫とラットをプレイできました。

Screen version 4.05.00 (GNU) 10-Dec-16

オペレーティングシステムはDebian 9(仕える人)。

これはバグですか、それとも私が間違っているのですか?とにかく、どのように動作させることができますか?

答え1

Debian 9でsystemdにMinecraftサーバーを設定しようとしたときにも同じ問題が発生しました。私が知っている限り、修正はありませんが、ここに部分的な解決策があります。デバイス設定ファイルに次の行を追加しました。

PermissionsStartOnly=true
ExecStartPre=/bin/chmod 777 /run/screen

したがって、サービスの開始に必要な権限に基づいて権限が調整されます。画面を直接使用する必要があるたびに、権限を775に戻すことができます。

答え2

NoNewPrivileges=trueに変更しますNoNewPrivileges=false(セクションにない場合は行を追加します[Service])。これにより、通常のように画面がsetgidモードで実行できるため、777の権限を要求しません。

関連情報