Debian 10 システムで転送デーモン 2.94 をサービスとして実行しています。
Apacheが保存ファイルを読み取ることができ、逆に転送がApacheファイルを読み取ることを望んでいたので、転送デーモンを実行しているユーザーをデフォルトからApacheユーザーdebian-transmission
に変更しました。www-data
これを行うには、次のプロファイルをユーザー設定に変更しました。
User=www-data
存在する/lib/systemd/system/transmission-daemon.service
USER=www-data
存在する/etc/init.d/transmission-daemon
setuid www-data
setgid www-data
そして/etc/init/transmission-daemon.conf
転送されたJSON設定ファイルはまだ存在します。ディレクトリとwww-dataの両方が新しいユーザーに属していることを/etc/transmission-daemon/settings.json
確認しました。/var/lib/transmission-daemon
/etc/transmission-daemon
sudo systemctl start transmission-daemon
ただし、サービスを使用または再起動すると、トランスsudo service transmission-daemon start
ポートログに次の情報が表示されます。
Couldn't create "/var/www/.config": Permission denied (file-posix.c:189)
Couldn't read "/var/www/.config/transmission-daemon/settings.json": No such file or directory (utils.c:238)
Couldn't save temporary file "/var/www/.config/transmission-daemon/settings.json.tmp.jq3qtN": No such file or directory (variant.c:1285)
...そして他の同様のエラーが発生しました。
したがって、トランスポートデーモンはwww-data
ユーザーのホームパスを使用し、そこに設定ディレクトリを再作成しようとするようです。
なぜそんなことですか?転送のために古いデフォルト設定パスをどのように使用できますか?ユーザーのホームパスに依存する転送設定は表示されません。
追加の質問:サービスを実行するユーザーを設定する3つの構成ファイルの違いは何ですか?
答え1
Transmission-Daemonは、それを実行しているユーザーのホームフォルダに設定を保存します。デフォルトでは、ユーザーのtransmissio-daemon
ホームフォルダは次のとおりです。
/var/lib/transmission-daemon
定義どおり/etc/passwd
Debian の settings.json ファイルは、
/var/lib/transmission-daemon/.config/transmission-daemon/
次を指すポインタだけです。/etc/transmission-daemon/settings.json
ホームフォルダなので書き込みが可能です。発生するエラーは、転送が実行されているユーザーのホームフォルダに設定/統計を書き込めないために発生します。
しかし、最善のアプローチは、settings.jsonを使用してumask
他の人が転送によって生成されたファイルにアクセスできるようにし、ダウンロードフォルダをWebサーバーがアクセスできる場所(おそらく/ var /フォルダ)に書き込むことでwwwを設定することです。転送権限)
ユースケースの詳細については、トランスポートユーザーを変更せずにニーズに合った設定を作成できます。