66 votes

Quelles sont les permissions nécessaires pour écrire un fichier PID dans /var/run ?

Sur Ubuntu :

touch: cannot touch `/var/run/test.pid': Permission denied

Je démarre start-stop-daemon et j'aimerais écrire le fichier PID dans /var/run start-stop-daemon est exécuté sous le nom de mon-programme-utilisateur

/var/run setting is drwxr-xr-x  9 root  root

J'aime éviter de mettre mon utilisateur-programme dans le groupe racine.

88voto

Chris Bennet Points 403

Par défaut, vous ne pouvez écrire dans /var/run qu'en tant qu'utilisateur avec un ID utilisateur effectif de 0 (c'est-à-dire en tant que root). C'est pour de bonnes raisons, donc quoi que vous fassiez, n'allez pas changer les permissions de /var/run... A la place, en tant que root, créez un répertoire sous /var/run :

# mkdir /var/run/mydaemon

Ensuite, changez son propriétaire pour l'utilisateur/groupe sous lequel vous souhaitez exécuter votre processus :

# chown myuser:myuser /var/run/mydaemon

Spécifiez maintenant d'utiliser /var/run/mydaemon plutôt que /var/run.

Vous pouvez toujours tester cela en exécutant un test en tant que l'utilisateur en question.

17voto

Andrew Clegg Points 140
mkdir /var/run/mydaemon
chown myuser:myuser /var/run/mydaemon

cela ne fonctionnera pas, car il sera perdu au prochain redémarrage ( /var/run est un tmpfs sur Ubuntu).

La seule solution possible est d'exécuter mkdir et chmod dans le cadre des scripts de démarrage.

3voto

proy Points 1179

Vous pouvez essayer ceci. Créez un répertoire /var/run/test/ et changez ensuite les droits de ce répertoire pour le même utilisateur que celui qui exécute votre programme. " chown /var/run/test/" . Maintenant, dans votre application, changez l'emplacement du fichier PID en /var/run/test/test.pid. Cela devrait vous permettre de faire fonctionner votre programme.

3voto

user68971 Points 39

Pourquoi ne pas utiliser le bit "sticky" sur /var/run ?

chmod +t /var/run ?

Cela perturbera probablement d'autres applications, mais il semble que ce soit une autre solution.

Je m'en tiendrai toutefois à la création d'un dossier /var/run distinct pour l'instant.

2voto

user432133 Points 21

Les entrées dans le /etc/permissions sont permanents. Faites une entrée à cet endroit pour rendre la propriété et les permissions d'un répertoire permanentes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X