J'ai un processus serveur de démon http (lacet) que j'aimerais que le serveur écrive tous les nouveaux fichiers avec un umask de 002, afin qu'un autre utilisateur du même groupe puisse modifier, déplacer ou supprimer les fichiers créés par le processus démon. C'est sur Ubuntu 10.04.
Contrairement à Apache, le pian n'a pas d'option de configuration pour umask, alors quelles méthodes existe-t-il pour définir le umask de tout processus démon?
J'ai trouvé cette réponse sur la modification du script d'initialisation à ajouter umask 002
. Cela a fonctionné, mais je ne suis pas sûr que la modification du script init soit le meilleur moyen de rendre cela facile à documenter et à configurer sur plusieurs machines.
J'ai également trouvé une référence au module pam_umask ici . Il semble que cela permet de configurer les paramètres par utilisateur du umask dans le champ GECOS de / etc / passwd.
Existe-t-il d'autres façons de définir le umask pour les processus démon? Et quelle serait la voie recommandée?
sudo
pour lire/etc/passwd
. Oucat
d'ailleurs (grep
acceptera un nom de fichier comme argument ou utilisera simplementgetent
comme Janne l'a souligné).sudo -u daemon bash -c umask
. J'ai testé non interactif en modifiant les paramètres et en redémarrant le démon et en regardant les autorisations sur les fichiers qu'il crée.dash
, mais jeumask
devrais y travailler.Sur Ubuntu 10.04, les paramètres umask globaux par défaut peuvent être contrôlés avec le module pam_umask.
Quelques détails ont été trouvés sur ce blog concernant Debian en général: http://muzso.hu/2008/01/22/default-permissions-with-libpam-umask
Le module pam_umask est installé par défaut sur Ubuntu 10.04, mais doit être configuré.
Modifiez /etc/pam.d/common-session, en ajoutant la ligne:
Ensuite, les paramètres par utilisateur peuvent être modifiés en exécutant la commande:
pour ajouter un paramètre umask au champ GECOS dans / etc / passwd.
Cela ne fonctionne que pour les shells non interactifs et sans connexion, comme lorsqu'un script de démarrage de démon est exécuté au démarrage.
Pour les shells de connexion, les paramètres umask doivent être supprimés des autres fichiers de configuration du shell tels que / etc / profile, /etc/login.defs, ou le répertoire personnel des utilisateurs .profile, .bashrc, etc. Sinon, les paramètres pam_umask sont remplacés. Consultez la page de manuel pam_umask pour l'ordre de configuration.
la source
Si le service est démarré via l'outil "start-stop-daemon" le umask peut être spécifié au niveau de la ligne de commande avec le paramètre "--umask" par exemple:
Ajuster le script de démarrage pour lire ces détails à partir d'un fichier de configuration peut être plus transparent que l'ajout de paramètres basés sur l'utilisateur - cela dépend bien sûr de la procédure de démarrage utilisée pour le démon.
Plus d'informations peuvent être récupérées sur la page de manuel: man start-stop-daemon
la source