¿Cómo debo de registro de un usuario no root Linux Debian demonio?

Estoy escribiendo un nuevo demonio, que será organizada en Linux Debian.

He encontrado que el /var/log tiene root permisos de escritura, por lo que mi demonio no puede escribir archivos de registro no.

Sin embargo, si se escribe allí, parece ganancia automática de la rotación de registros, y también trabajo como un usuario podría esperar.

¿Cuál es la forma recomendada para un demonio para escribir entradas del registro que aparecen en /var/log, sin tener que ser ejecutado como root?

El demonio es un servidor web, por lo que el registro de tráfico será similar a Apache.

4 Kommentare

  1. 41

    Debe crear un subdirectorio como /var/log/mydaemon tener el demonio del usuario de propiedad

    • Cómo dar permiso de escritura en el directorio /var/log/midemonio en lugar de hacer chown?
    • Definitivamente factible, pero tienes que confiar en un grupo común de lograr que por lo tanto es más complejo que el establecimiento de la propiedad adecuados.
  2. 13

    Como root, crear un archivo de allí y cambiar los archivos propietario al usuario del servidor de web:

    # touch /var/log/myserver.log
    # chown wwwuser /var/log/myserver.log
    

    A continuación, el servidor puede escribir en los archivos si se ejecuta como usuario wwwuser. No va a ganar automática de la rotación de registros, sin embargo. Usted tiene que agregar el archivo de registro para /etc/logrotate.conf o /etc/logrotate.d/... y hacer que el servidor vuelva a abrir el archivo de registro cuando logrotate señales de lo que debería.

    También se pueden utilizar syslog para el registro, si que se ajuste a tu situación mejor.

    • su mejor poner los registros en un subdirectorio como WiseTechi la respuesta de las menciones. Si usted tiene el archivo en /var/log y el archivo se elimina, la no-root proceso no será capaz de volver a crear el archivo
    • También el demonio no ser capaz de iniciar girar, ya que no tiene permisos para crear nuevos archivos en el logdir.
    • Generalmente el demonio no tiene que volver a crear el archivo, pero logrotated cambia el nombre del registro existente y crea un nuevo archivo de registro con los permisos correctos. Entonces dice el demonio para utilizar el nuevo archivo, que se puede ya que tiene los permisos correctos.
  3. 2

    Dos opciones:

    1. Inicio como root, abra el archivo, a continuación, suelte los permisos con setuid. (No recuerdo exactamente las llamadas del sistema, para dejar a los permisos). Tendrás que hacer esto de todos modos si desea enlazar el puerto TCP 80 o cualquiera de los puertos por debajo del 1024.
    2. Crear un subdirectorio como /var/log/midemonio tener el demonio del usuario de la propiedad, como WiseTechi dijo.

    Archivos bajo /var/log no gira automáticamente; en cambio, la rotación es controlada por /etc/logrotate.conf y archivos bajo /etc/logrotate.d.

  4. 1

    utilizar el «registrador» comando

    http://linux.die.net/man/1/logger

    • registrador está obligado por las mismas restricciones de permisos como cualquier otro programa. Usted todavía necesita para corregir esos antes de usar el registrador.
    • Que no parece ser correcta, para Ubuntu 18.04 al menos. echo "test" > /var/log/my_log van a fallar, pero logger "test" tendrá éxito.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea