¿Existen posibles riesgos al cambiar los permisos de los archivos de configuración en /etc a un usuario no root?

¿Existen posibles riesgos al cambiar los permisos de los archivos de configuración en /etc a un usuario no root?

Hay varios servicios que se ejecutan en nuestras máquinas, por ejemplo, cassandra, datadog, etc.

Ocasionalmente, necesitamos cambiar la configuración y deseamos automatizar la propagación de los archivos de configuración y los reinicios.

Usamos Jenkins para automatizar el flujo de trabajo de nuestro software de aplicación y estábamos pensando en usarlo también para los servicios. No deseamos que el servidor en el que se ejecuta Jenkins tenga acceso remoto de raíz (o incluso sudo) al servidor host.

Me preguntaba si podríamos cambiar de forma segura el propietario de /etc/cassandra a cassandra, /etc/datadog a dd-agent, etc., porque nos ayudaría a automatizar. (En realidad, ¿se recomienda que dichas carpetas/archivosdeberíaser propiedad del usuario apropiado y que tener root como propietario es incorrecto?)

Respuesta1

La idea de este directorio ha sido que el /etcdirectorio contenga todostodo el sistemaconfiguración: a diferencia de la configuración de cada usuario individual, que en la mayoría de los casos reside en $HOME/.configalgún lugar debajo. Dado que la configuración de todo el sistema afecta a todos los usuarios, es correcto que esos archivos sean propiedad del root.

Ahora, no conozco su sistema, pero probablemente esté ejecutando cassandra, etc. una vez por sistema y, por lo tanto, probablemente no necesite un archivo de configuración de usuarios individuales. No veo ningún problema en cambiar la propiedad de esos archivos/subdirectorios, excepto que contradice la forma en que han sido diseñados. (¡Siempre y cuando no cambie la propiedad del /etcdirectorio principal!)

Personalmente, configuraría un directorio de instancia (probablemente en su carpeta de inicio) y usaría la configuración almacenada allí, pero eso depende de usted.

Respuesta2

Root no debe ser propietario de archivos de configuración, etc. pertenecientes a las aplicaciones. La solución elegante sería algo como esto: la aplicación datadog la ejecuta el usuario datadog y los archivos de configuración son propiedad de datadog y del grupo datadog. Pero ahora aparece jenkins y necesita buscar/editar algunos archivos en /etc/datadog, pero quizás no todos.

Entonces creamos un nuevo grupo llamado "datadogjenkins" y hacemos que AMBOS datadog y jenkins sean miembros de ese grupo. Luego cambiamos el propietarioGROUP para los archivos/carpetas que jenkins necesita leer/escribir/ejecutar en nuestro nuevo grupo.

Ahora, tanto datadog como jenkins pueden acceder a esos activos. Y ninguno de ellos necesita escalar privilegios a root. Y podemos mantener a jenkins fuera de lo que no necesita ver, en caso de que jenkins se vea comprometido.

Espero que eso lo explique lo suficientemente bien.

información relacionada