Должны ли файлы быть исполняемыми?
Думайте о единицах systemd как о файлах конфигурации, а не как о скриптах. Они не запускаются ядром, не имеют #!
строка Шебанга, и, следовательно, не должны быть исполняемыми. (Фактически, если вы сделаете их исполняемыми, systemd выведет предупреждение в системные журналы.)
Должны ли файлы быть доступны для чтения пользователям без полномочий root?
Да, нет смысла скрывать содержимое (которое в любом случае можно получить через systemctl
). Опять же, systemd предупредит о бесполезных попытках сделать юниты закрытыми.
Должны ли файлы быть доступны для записи пользователям без полномочий root?
Только если пользователь полностью доверен (то есть системный администратор). Подумайте о том, чего они могут достичь: они могут поместить произвольные команды в файл модуля, перезагрузить систему, и эти команды будут выполняться с полными привилегиями суперпользователя .
Таким образом, если ненадежный пользователь может записывать в системные файлы .service, они могут очень быстро стать пользователем root.
Должны ли файлы принадлежать пользователю root или нет?
Это файлы конфигурации системы, расположенные в /etc
, поэтому естественным выбором будет root. (Это не имеет значения , что многое - но смотрите предыдущий раздел о writability.)
Действительно ли другие файлы "полностью открыты"?
Это не так. Ваш пример - символическая ссылка, а не файл. Симлинки вообще не имеют своих собственных разрешений - система всегда возвращает одно и то же фиктивное значение, но никогда не использует его ни для чего. (Кстати, rwx rwx rwx
это 0777, а не 0755.)
Если вы посмотрите на все обычные файлы в /etc/systemd/system
или /usr/lib/systemd/system
, вы увидите, что почти все они имеют разрешения 0644 (rw- r-- r--
).