Hola,
Hoy vamos a hablaros de un nuevo parámetro introducido en MongoDB 3.6. Este parámetro no aparece en el fichero de configuración y puede dar varios quebraderos de cabeza. Veamos por qué.
¿Qué función tiene este parámetro?
Este parámetro no aplica a sistemas operativos Windows y asigna por defecto en cada nueva instalación o actualización a MongoDB 3.6 unos permisos bastantes restrictivos para nuevas carpetas y ficheros. Concretamente establece a las carpetas permisos de 700 y a los ficheros permisos de 600. Este hecho puede ser bastante útil a priori ya que mejora la seguridad de la instalación, pero ¿qué pasa si tenemos o queremos implementar por ejemplo un backup del fichero de log de MongoDB a través de cron? En ese caso podríamos tener un problema.
¿Cómo lo solucionamos?
En primer lugar, tendremos que revisar cómo está configurado dicho parámetro en la base de datos. Para ello nos conectamos a nuestro servidor y ejecutamos con una cuenta con permisos de administrador:
db.adminCommand( { getParameter : 1, "honorSystemUmask" : 1 } )
Por defecto el valor está establecido a false. Para que no aplique los permisos comentados anteriormente, deberemos establecer el valor a true. Para ello tenemos dos opciones, en ambas es necesario reiniciar el servicio. La primera opción es parar el servicio de mongod y arrancarlo de la siguiente manera:
mongod --setParameter honorSystemUmask=true
La segunda opción (y la que recomendamos) es cambiando el fichero de configuración. Generalmente ubicado en /etc/mongod.conf. Antes que nada hacemos una copia del fichero actual por si tuviéramos algún problema en el arranque. Hay que añadir las siguientes líneas al fichero de configuración para establecerlo a true entre “# wiredTiger:” y “# how the process runs”:
# wiredTiger:
setParameter:
honorSystemUmask: true
# how the process runs
Una vez hecho esto, reiniciamos el servicio y comprobamos con el comando anterior que efectivamente se ha realizado el cambio.
Esperamos que os sea de ayuda,
Equipo de base de datos