Os arquivos devem ser executáveis?
Pense nas unidades do systemd como arquivos de configuração, não como scripts. Eles não são executados pelo kernel, não possuem a linha #!
shebang e, portanto, não precisam ser executáveis. (Na verdade, se você fizer torná-los executáveis, o systemd imprimirá um aviso para os logs do sistema.)
Os arquivos devem ser legíveis por usuários não-root?
Sim, não faz sentido esconder o conteúdo (que pode ser recuperado via systemctl
mesmo assim). Novamente, o systemd alertará sobre tentativas inúteis de tornar as unidades não públicas.
Os arquivos devem ser graváveis por usuários não-root?
Somente se o usuário for totalmente confiável (por exemplo, um administrador do sistema). Pense no que eles poderiam alcançar: eles poderiam colocar comandos arbitrários no arquivo de unidade, reinicializar o sistema e esses comandos seriam executados com privilégios completos root .
Assim, se um usuário não confiável puder gravar nos arquivos .service do sistema, eles poderão se tornar root muito rapidamente.
Os arquivos devem ser de propriedade de root ou não?
Eles são arquivos de configuração do sistema, localizados em /etc
, então root seria a escolha natural. (Não importa muito - mas faça veja a seção anterior sobre writability).
Os outros arquivos são realmente "completamente abertos"?
Eles não são. Seu exemplo é um link simbólico, não um arquivo. Os links simbólicos não têm suas próprias permissões - o sistema sempre retorna o mesmo valor fictício, mas nunca o usa para nada. (A propósito, rwx rwx rwx
é 0777, não 0755.)
Se você olhar todos os arquivos regulares em /etc/systemd/system
ou /usr/lib/systemd/system
, verá que quase todos eles têm permissões 0644 ( rw- r-- r--
).