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--
).