Tengo un directorio con archivos de registro y estoy poniendo registros de secuencias de comandos iniciadas por los usuarios en ellos. No es posible iniciar sesión con syslog en este caso. (rsync no demonio)
Quiero que los usuarios solo tengan permisos de escritura en los archivos de registro. El problema es que los permisos de escritura deben restringirse aún más, de modo que los usuarios (script) solo puedan agregar a esos archivos. El sistema de archivos subyacente es XFS.
Lo siguiente no funciona:
# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log
¿Hay alguna otra solución para esto? Gracias por tus sugerencias.
chattr +a
funciona para mí aquí (kernel 3.2). Tenga en cuenta que debe ser root para usarchattr
(un$
mensaje sugiere que no es superusuario), aunque obtendría un mensaje de error diferente sichattr +a
fuera compatible y no fuera root.Respuestas:
La
chattr
utilidad está escrita para los sistemas de archivos ext2 / ext3 / ext4. Emite ioctls en los archivos, por lo que depende del sistema de archivos subyacente decidir qué hacer con ellos. El controlador XFS en los nuevos núcleos de Linux es compatible con el mismoFS_IOC_SETFLAGS
ioctl que ext [234] para controlar los indicadores como append-only, pero es posible que esté ejecutando un kernel anterior donde no lo hace (¿CentOS?). Intente usar laxfs_io
utilidad en su lugar:Tenga en cuenta que, para XFS, como para ext [234], solo la raíz puede cambiar el indicador de solo agregar (más precisamente, necesita la
CAP_LINUX_IMMUTABLE
capacidad).fuente
¿Tienes permisos para hacer eso? De
man 1 chattr
:fuente
Alternativamente, puede lograr lo mismo usando SELinux , lo más probable es que esté habilitado y ejecutándose si está usando una distribución compatible con Red Hat. Esto funciona en todos los sistemas de archivos, SELinux bloquea los procesos para que no realicen operaciones no permitidas.
Desafortunadamente, debe escribir una política para su aplicación para permitir el acceso a todos los recursos del sistema, excepto para agregar archivos particulares. Esto puede ser un poco desafiante si lo hace por primera vez, pero esto tiene una ventaja: una capa adicional de seguridad.
Tengo un ejemplo de cómo escribir una regla de archivo de solo agregar en esta charla: https://www.youtube.com/watch?v=zQcYXJkwTns
fuente