Tengo una aplicación que escribe un archivo de registro en /var/app/applog.log. Esta aplicación debe iniciarse como root, pero se ejecuta como app: app y también puede ser degradada a nadie: nadie
¿Qué es exactamente nadie: nadie y qué privilegios tiene?
¿Es mejor ejecutar mi aplicación como aplicación: aplicación o nadie: nadie?
El archivo de registro tiene el mismo usuario que el demonio que los crea (aplicación o nobody). Pero por alguna razón pertenece al grupo raíz.
He visto que rsyslog usa el usuario de syslog y, dependiendo de la configuración, usa el grupo adm (he visto muchas guías que recomiendan el uso de este grupo para rsyslog. ¿Qué hace este grupo y es seguro usarlo para rsyslog?)
Mi rsyslog.conf tiene este aspecto:
$ FileOwner syslog
$ FileGroup adm
$ FileCreateMode 0640
$ DirCreateMode 0755
$ Umask 0022
$ PrivDropToUser syslog
$ PrivDropToGroup adm
Para que rsyslog pueda leer el registro de mi aplicación, tengo que cambiar el grupo de archivos de registro a adm y, por alguna razón, también tengo que agregar rsyslog al grupo de adm (aunque especifique el grupo adm en conf) para que rsyslog pueda lee el archivo.
¿Qué usuario: grupo deberían ser los archivos de registro y cuál es la forma más segura de permitir que ryslog los lea?
Al final, quiero que mi demonio solo pueda escribir en estos registros y rsyslog solo pueda leerlos. Ningún otro usuario debería poder leer / modificar los registros que no sean root. ¿Alguna idea?