Ubuntu
touch: impossible de toucher `/var/run/test.pid ': autorisation refusée
Je démarre start-stop-daemon et j'écris le fichier PID dans / var / run. Start-stop-daemon est exécuté en tant que my-program-user
Le paramètre / var / run est drwxr-xr-x 9 racine racine
J'aime éviter de mettre mon utilisateur de programme dans le groupe racine.
la source
/var/run/mydaemon
répertoire a disparu./tmp
ou~
.cela ne fonctionnera pas, car il sera perdu lors du prochain redémarrage (
/var/run
est un tmpfs sur Ubuntu).La seule solution envisageable consiste à exécuter mkdir et chmod dans le cadre des scripts de démarrage.
la source
Vous pouvez essayer ça. Créez un répertoire / var / run / test /, puis modifiez l'autorisation de ce répertoire sur le même utilisateur que votre programme. "chown / var / run / test /". Maintenant, dans votre application, modifiez l'emplacement du fichier PID en /var/run/test/test.pid. Cela devrait faire fonctionner les choses pour vous.
la source
Qu'en est-il d'utiliser le bit "collant" sur / var / run?
chmod + t / var / run?
Probablement gâcher d'autres applications, mais il semble que ce serait une autre solution.
Je m'en tiendrai à la création d'un dossier / var / run séparé pour l'instant, cependant.
la source
Les entrées dans le
/etc/permissions
sont permanentes. Faites une entrée pour rendre la propriété et les autorisations d'un répertoire permanentes.la source
Pour éviter de placer votre utilisateur de programme dans le groupe racine, autorisez les autres utilisateurs à accéder en écriture:
la source
chmod 757
cela ne fonctionnera que jusqu'au prochain redémarrage. Désolé de créer une nouvelle réponse, mais il semble n'y avoir aucun moyen de répondre à l'autre commentaire.chmod
sur/var/run
. L'auteur peut l'avoir voulu dire pour le sous-répertoire de l'application. Je ne sais pas de quoi tout le monde parle.