Après réflexion, c'est sûrement la raison, plus que mon histoire de montage en RO sans /tmp/ ou /run/.
Oui, ça et la capacité a faire transiter des descripteurs de fichiers. Pas besoin des cgroups pour savoir qui envoie un message par contre, ça fait partie des «ancillary data» que l'on peut récupérer.
Mais ceci dit, tu peux aussi passer par une socket abstraite (sous Linux) qui n'est pas sur le disque
Je ne suis pas sûr de ce que tu appelles une socket abstraite, je n'ai pas souvenir avoir vu cette notion avant? Et pour rappel, même si je me doute que tu le sais, avoir un système de fichiers ne nécessite pas d'avoir un périphérique de stockage local, typiquement NFS et les ramdisk sont très utiles pour ça (et l'une des raisons pour lesquelles je mets mes fichiers de runit dans un ramdisk, c'est justement pour permettre de booter avec root en ro. Pas utile dans la plupart des cas, mais mes scripts sont déjà prêts, alors tant qu'a faire, autant réutiliser :D).
Je suis quand même peu convaincu par l'idée que créer un pipe par daemon serait lourd. Le nombre de daemon a créer est connu dès le départ, après tout.
Je pense vraiment que c'est lié au transfert de FDs, vu que je ne vois pas d'autres moyens d'implémenter ce truc:
FDSTORE=1
Store file descriptors in the service manager. File
descriptors sent this way will be held for the service by the
service manager and will later be handed back using the usual
file descriptor passing logic at the next start or restart of
the service, see sd_listen_fds(3).
[^] # Re: Après une récente vulnérabilité de SSH, Systemd réduit ses dépendances.
Posté par freem . En réponse au lien After a Recent SSH Vulnerability, Systemd Reduces Dependencies. Évalué à 2.
Oui, ça et la capacité a faire transiter des descripteurs de fichiers. Pas besoin des cgroups pour savoir qui envoie un message par contre, ça fait partie des «ancillary data» que l'on peut récupérer.
Je ne suis pas sûr de ce que tu appelles une socket abstraite, je n'ai pas souvenir avoir vu cette notion avant? Et pour rappel, même si je me doute que tu le sais, avoir un système de fichiers ne nécessite pas d'avoir un périphérique de stockage local, typiquement NFS et les ramdisk sont très utiles pour ça (et l'une des raisons pour lesquelles je mets mes fichiers de runit dans un ramdisk, c'est justement pour permettre de booter avec root en ro. Pas utile dans la plupart des cas, mais mes scripts sont déjà prêts, alors tant qu'a faire, autant réutiliser :D).
Je suis quand même peu convaincu par l'idée que créer un pipe par daemon serait lourd. Le nombre de daemon a créer est connu dès le départ, après tout.
Je pense vraiment que c'est lié au transfert de FDs, vu que je ne vois pas d'autres moyens d'implémenter ce truc: