Dateiberechtigungen für systemd init-Skript


1

Ich fange gerade an, systemd init-Skripts nach einem Upgrade auf Ubuntu 16.04LTS zu erkunden. Was sollten die Eigentums- und Dateiberechtigungen für mich sein? .service Dateien?

Es ist derzeit standardmäßig:

-rw-rw-r-- 1 me me  225 Dec 20 21:57 my.service

Nach dem symbolischen Verknüpfen mit dem systemd-Verzeichnis sieht es so aus, als wären andere Dateien vollständig geöffnet (777), sogar meine:

lrwxrwxrwx  1 root root   40 Dec 20 21:31 dbus-org.freedesktop.Avahi.service -> /lib/systemd/system/avahi-daemon.service

Antworten:


1

Sollten die Dateien ausführbar sein?

Stellen Sie sich systemd units als Konfigurationsdateien vor, nicht als Skripte. Sie werden nicht vom Kernel ausgeführt, haben den nicht #! shebang line und müssen daher nicht ausführbar sein. (In der Tat, wenn Sie tun Wenn Sie diese ausführbar machen, gibt systemd eine Warnung in den Systemprotokollen aus.)

Sollen die Dateien für Nicht-Root-Benutzer lesbar sein?

Ja, es hat keinen Sinn, den Inhalt zu verbergen (der über abgerufen werden kann) systemctl sowieso). Auch hier warnt systemd vor nutzlosen Versuchen, die Einheiten nicht öffentlich zu machen.

Sollten die Dateien sein schreibbar von Nicht-Root-Benutzern?

Nur wenn der Benutzer voll vertrauenswürdig ist (d. H. Ein Systemadministrator). Überlegen Sie, was sie erreichen könnten: Sie könnten beliebige Befehle in die Unit-Datei einfügen, das System neu starten und diese Befehle würden mit vollem Inhalt ausgeführt Wurzel Privilegien.

Wenn also ein nicht vertrauenswürdiger Benutzer in System-Service-Dateien schreiben könnte, könnte er sehr schnell root werden.

Sollten die Dateien im Besitz von root sein oder nicht?

Es handelt sich um Systemkonfigurationsdateien, die sich in befinden /etc, Wurzel wäre also die natürliche Wahl. (Es ist nicht so wichtig - aber tun Informationen zur Beschreibbarkeit finden Sie im vorherigen Abschnitt.)

Sind andere Dateien wirklich "vollständig geöffnet"?

Sie sind nicht. Ihr Beispiel ist a symlink, keine Datei. Symlinks haben überhaupt keine eigenen Berechtigungen - das System gibt immer den gleichen Dummy-Wert zurück, verwendet ihn jedoch nie für irgendetwas. (Apropos, rwx rwx rwx ist 0777, nicht 0755.)

Wenn du dir alles ansiehst regulär Dateien in /etc/systemd/system oder /usr/lib/systemd/system, Sie werden sehen, dass fast alle von ihnen Berechtigungen 0644 haben ( rw- r-- r-- ).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.