急流をダウンロードするためにsystemdを実行してarchlinux
使用していますtransmission.service
。自動的にマウントされたext4
ハードドライブパーティションがあります。完了したすべてのダウンロードをここに保存し、ローカルネットワーク上のSambaサーバーとディレクトリを共有します。fstab
/var/lib/transmission
問題は、コンピュータが起動するたびに/var/lib/transmission
誰もが読み取り権限を持っていないことがわかるということです。これは、Sambaサーバーがディレクトリのフルパスを読み取ることができず、最終的にSambaクライアントを使用してファイルにアクセスできないことを意味します。起動後に実行でき、sudo chmod a+rX /var/lib/transmission
その後にディレクトリにアクセスできます。起動するたびに権限が再作成されるようですtransmission
。drwxr-x---
いくつかのシステムファイルを編集して修正するエレガントな方法はありますか?たぶん使用しますかsudo systemctl edit transmission.service
?
答え1
解決策は、/etc/systemd/system/multi-user.target.wants/transmission.service
以下を追加することです。または使用sudo systemctl edit transmission.service
して作成します。
[Service]
ExecStartPost=/bin/chmod a+rX /var/lib/transmission
systemctl edit
パッケージマネージャが提供するソースファイルを変更せずに、ソースサービスファイルのエントリを上書きできるテキストエディタを開きます。
追加して再起動すると問題が解決します。
メモ:おそらくもっと忙しいこのコマンドを使用する
systemctl edit
と、パッケージマネージャによって提供されたソースサービスファイルを編集する必要がなくなります。メモ:
chmod
配布パスによっては、実行可能ファイルのパスを調整する必要があります。
編集する:
のディレクトリによく似ています/var/run
。 systemdがディレクトリが起動するたびにこれらの権限があることを保証する理由を見つけました。最初の説明は次のとおりです。https://serverfault.com/questions/824393/var-run-directory-creation-even-though-service-is-disabled/824394#824394
引用:
tmpfiles.d(5)
systemdには、起動時に.service
ファイルの外部にファイルまたはディレクトリを作成するために使用できるという新機能があります。Openvpn
どちらもこれを使用するため、起動時に起動しなくてもejabberd
ディレクトリは作成され続けます。/var/run
tmpfiles 構成ファイルは次の場所に保存されます。
/usr/lib/tmpfiles.d/
とにかく、この問題を解決するもう1つの方法は、umask番号を/usr/lib/tmpfiles.d/transmission.conf
次のように編集することです。
d /var/lib/transmission 0755 transmission transmission