Die Berechtigungen für den Ordner transmission.service wurden bei jedem Start geändert

Die Berechtigungen für den Ordner transmission.service wurden bei jedem Start geändert

Ich verwende archlinuxsystemd und transmission.servicelade Torrents herunter. Ich habe eine ext4Festplattenpartition, die automatisch mit eingebunden ist fstab. /var/lib/transmissionDort speichere ich alle abgeschlossenen Downloads und teile dieses Verzeichnis mit einem Samba-Server im lokalen Netzwerk.

Das Problem ist, dass ich bei jedem Booten des Computers sehe, /var/lib/transmissiondass nicht jeder Leseberechtigungen hat. Das bedeutet, dass der Samba-Server den vollständigen Pfad zu diesem Verzeichnis nicht lesen kann und ich letztendlich nicht mit einem Samba-Client auf die Dateien zugreifen kann. Nach dem Booten kann ich es ausführen sudo chmod a+rX /var/lib/transmissionund erst dann ist das Verzeichnis zugänglich. Es scheint, als würden die Berechtigungen bei jedem Booten transmissionneu geschrieben .drwxr-x---

Gibt es eine elegante Möglichkeit, einige systemd-Dateien zu bearbeiten und das Problem zu beheben? Vielleicht mithilfe von sudo systemctl edit transmission.service?

Antwort1

Die Lösung ergänzt /etc/systemd/system/multi-user.target.wants/transmission.servicedas Folgendeoderverwenden sudo systemctl edit transmission.serviceund schreiben:

[Service]
ExecStartPost=/bin/chmod a+rX /var/lib/transmission

systemctl editöffnet einen Texteditor, mit dem Sie die Einträge für die ursprüngliche Servicedatei überschreiben können, ohne die vom Paketmanager bereitgestellte Originaldatei zu ändern.

Nach dem Hinzufügen erfolgte ein Neustart und das Problem wurde behoben.

Notiz:Es könnte mehr seinpragmatischzu verwenden systemctl edit, da dieser Befehl vermutlich erstellt wurde, damit Sie die vom Paketmanager bereitgestellten ursprünglichen Servicedateien nicht bearbeiten.

Notiz:chmodMöglicherweise müssen Sie den Pfad zur ausführbaren Datei entsprechend Ihren Verteilungspfaden anpassen .

Bearbeiten:

Ganz ähnlich wie bei Verzeichnissen in /var/runhabe ich herausgefunden, warum systemd bei jedem Systemstart sicherstellt, dass dieses Verzeichnis über diese Berechtigungen verfügt. Die ursprüngliche Erklärung hierzu finden Sie hier:https://serverfault.com/questions/824393/var-run-directory-creation-even-though-service-is-disabled/824394#824394

Zitat:

Mit systemd gibt es eine neue Funktionalität namens , tmpfiles.d(5)mit der beim Booten Dateien oder Verzeichnisse außerhalb der Datei erstellt werden können .service. Openvpnund ejabberdverwenden diese beide, weshalb die Verzeichnisse in /var/runtrotzdem erstellt werden, auch wenn sie beim Booten nicht gestartet werden.

Die Konfigurationsdateien tmpfiles werden gespeichert in/usr/lib/tmpfiles.d/

Eine andere Möglichkeit, dieses Problem zu lösen, besteht darin, die Umask-Nummer wie /usr/lib/tmpfiles.d/transmission.conffolgt zu bearbeiten:

d /var/lib/transmission 0755 transmission transmission

verwandte Informationen