Tengo un proceso de servidor http daemon (pian) que me gustaría que el servidor escriba cualquier archivo nuevo con una máscara de 002, para que otro usuario en el mismo grupo pueda modificar, mover o eliminar archivos creados por el proceso daemon. Esto está en Ubuntu 10.04.
A diferencia de Apache, yaws no tiene una opción de configuración para umask, entonces, ¿qué métodos existen para configurar umask en cualquier proceso de daemon?
Encontré esta respuesta sobre cambiar el script de inicio para agregar umask 002
. Esto funcionó, pero no estoy seguro de que editar el script de inicio sea la mejor manera de hacer que sea fácil de documentar y configurar en varias máquinas.
También encontré referencia al módulo pam_umask aquí . Parece que esto permite que la configuración por usuario de umask se configure en el campo GECOS de / etc / passwd.
¿Hay alguna otra forma de configurar la umask para los procesos de daemon? ¿Y cuál sería la forma recomendada?
sudo
para leer/etc/passwd
. Ocat
para el caso (grep
aceptará un nombre de archivo como argumento o simplemente lo usarágetent
como señaló Janne).sudo -u daemon bash -c umask
. Probé no interactivo cambiando la configuración y reiniciando el demonio y mirando los permisos en los archivos que crea.dash
, peroumask
debería funcionar en ello.En Ubuntu 10.04, la configuración global predeterminada de umask se puede controlar con el módulo pam_umask.
Se encontraron algunos detalles en este blog relacionados con Debian en general: http://muzso.hu/2008/01/22/default-permissions-with-libpam-umask
El módulo pam_umask está instalado de forma predeterminada en Ubuntu 10.04, pero debe configurarse.
Edite /etc/pam.d/common-session, agregando la línea:
Luego, la configuración por usuario se puede cambiar ejecutando el comando:
para agregar una configuración de umask al campo GECOS en / etc / passwd.
Esto solo funciona para shells no interactivos y sin inicio de sesión, como cuando se ejecuta un script de inicio de daemon en el arranque.
Para los shells de inicio de sesión, la configuración de umask debe eliminarse de otros archivos de configuración de shell como / etc / profile, /etc/login.defs o el directorio de inicio de los usuarios .profile, .bashrc, etc. De lo contrario, la configuración de pam_umask se anula. Consulte la página de manual de pam_umask para ver el orden de configuración.
fuente
Si el servicio se inicia a través de la herramienta "start-stop-daemon", la umask se puede especificar a nivel de línea de comando con el parámetro "--umask", por ejemplo:
Ajustar el script de inicio para leer dichos detalles de un archivo de configuración podría ser más transparente que agregar configuraciones basadas en el usuario; esto, por supuesto, depende del procedimiento de inicio utilizado para el demonio.
Se puede obtener más información de la página man: man start-stop-daemon
fuente