Cómo evitar la modificación externa de la salida de log4j

1

Recibí una solicitud para encontrar una solución para proteger un archivo de registro de la edición del usuario (no del usuario root) que ejecuta la instancia JBoss de una aplicación (entorno Linux)

La primera idea que tuve fue utilizar el 'chattr + a' del usuario root para permitir solo agregar nuevos archivos en bruto en el archivo de registro.

Pero el archivo Log4j está configurado para rotar el archivo cada día y, por esta razón, supongo que debo repetir el comando 'chattr' para cada archivo creado todos los días. Tampoco estoy seguro de que el archivo del día anterior en su estado de "solo anexado" se pueda comprimir de la rotación.

Cualquier sugerencia o forma alternativa de proceder es bienvenida.

    
pregunta AndroX 28.01.2014 - 14:03
fuente

2 respuestas

2

Puede usar SyslogAppender

Esto envía todos los registros a syslogd (que puede estar en un servidor separado). Puede configurar los archivos de registro para que no sean accesibles para el usuario de la aplicación, mientras que syslog se encarga de la rotación.

    
respondido por el paj28 28.01.2014 - 14:40
fuente
0

Puede intentar establecer la umask en el entorno del proceso que está creando los archivos. Por ejemplo, si desea que los permisos de los nuevos archivos sean -r - r - r-- (0444), puede configurar su umask en 222:

localhost> umask
77
localhost> touch x
localhost> ls -l 
total 0
-rw-------  1 user1  wheel  0 Mar 17 12:54 x
localhost> umask 222
localhost> touch y
localhost> ls -l 
total 0
-rw-------  1 user1  wheel  0 Mar 17 12:54 x
-r--r--r--  1 user1  wheel  0 Mar 17 12:54 y

Esto hará que los archivos escritos desde ese entorno tengan estos permisos de forma predeterminada, por lo que, dependiendo de sus otros requisitos no mencionados aquí, esto puede o no funcionar para usted.

    
respondido por el user3159132 17.03.2014 - 19:59
fuente

Lea otras preguntas en las etiquetas