Dans l'Ubuntu normal, j'avais l'habitude de créer un répertoire pour les sockets Unix comme suit (disons pour le projet foo
) :
- Créer un script systemd dans :
/usr/lib/tmpfiles.d/foo.conf
-
Placez le code suivant dans le script :
/run/foo 0770 <username> <groupname>
Puis, au prochain redémarrage, le répertoire /run/foo
sera créé avec les permissions requises. La raison pour laquelle je fais cela est que seul root peut écrire dans le fichier /var/run
qui renvoie à -> /run
et il est courant que de nombreuses applications perdent leurs privilèges et changent d'utilisateur avant de créer la socket, ce qui fait qu'elles ne parviennent pas à écrire dans la socket. /var/run
.
Maintenant j'utilise WSL2, avec Ubuntu 20.04, et systemd
n'existe pas. On peut sauter à travers de nombreux cerceaux pour le faire fonctionner mais ils sont bogués.
Comment créer un dossier avec les permissions souhaitées qui est effacé après un redémarrage avant que les applications installées (par exemple nginx/postgresql) ne tentent de créer leurs sockets (et donc échouent à cause des sockets périmés d'avant le redémarrage) ?