Para mantener la seguridad de la base de datos, puedes limitar los privilegios de los usuarios autorizados que no sean root, permitiéndoles realizar operaciones administrativas sin concederles todos los privilegios de root.
Esta página demuestra cómo permitir que usuarios no root inicien, detengan y reinicien mongod procesos en sistemas Linux, sin permitirles acceso a todos los privilegios del usuario root. Este procedimiento se aplica a los usuarios que pertenecen a un grupo Linux no-root, distinto del grupo bajo el cual se ejecuta el proceso mongod.
Antes de comenzar
Instalar MongoDB Community or MongoDB Enterprise.
Considerations
Importante
El siguiente procedimiento requiere acceso root para la configuración. Una configuración incorrecta puede provocar un sistema que no responda, así que siempre hay que probarla en un entorno de desarrollo antes de implementarla en producción. Asegúrate de tener una copia de seguridad actual de tus datos.
Recomendamos realizar este procedimiento al configurar un sistema nuevo. Si esto no es posible, realiza el procedimiento durante el periodo de mantenimiento.
Este procedimiento afecta solo a la configuración de un sistema local. Si utiliza un set de réplicas o un clúster, realice este procedimiento de forma escalonada. No actualice todos sus nodos a la vez.
Este procedimiento funciona con todas las distribuciones Linux, pero solo se ha probado con CentOS 6/7, RHEL 6/7, Ubuntu 18.04 y Amazon Linux 2.
Procedimiento
Selecciona la pestaña para tu proveedor de sistemas a continuación.
Este procedimiento funciona en CentOS 7 y RHEL 7.
Actualice los permisos del archivo de configuración.
Utilice los siguientes comandos para actualizar los permisos en el archivo de configuración, que se encuentra en /etc/mongod.conf:
sudo chown mongod:mongod /etc/mongod.conf sudo chmod 600 /etc/mongod.conf ls -l /etc/mongod.conf -rw-------. 1 mongod mongod 330 Feb 27 18:43 /etc/mongod.conf
Esta configuración garantiza que solo el usuario mongod y la raíz tengan permisos para acceder y editar el archivo mongod.conf.
Actualiza el archivo sudoers.
Agregue las siguientes líneas de configuración al sudoers archivo con visudo:
%mongod ALL =(ALL) NOPASSWD: /bin/systemctl start mongod.service, /bin/systemctl stop mongod.service, /bin/systemctl restart mongod.service %testuser ALL =(ALL) NOPASSWD: /bin/systemctl start mongod.service, /bin/systemctl stop mongod.service, /bin/systemctl restart mongod.service
Nota
Un error de sintaxis en el archivo sudoers puede afectar la funcionalidad de la cuenta de usuario root.
Confirme los permisos del usuario que no es root.
Su nuevo usuario ahora puede iniciar y detener el servicio mongod, pero no puede leer el archivo /etc/mongod.conf.
Haga que su nuevo usuario ejecute el siguiente comando para iniciar mongod y confirme que no recibe un mensaje [Permission Denied]:
sudo /bin/systemctl start mongod.service
Pueden ejecutar una prueba similar usando sudo /bin/systemctl stop mongod.service para garantizar que pueden detener el servicio mongod sin errores.
Ahora, haz que ejecuten el siguiente comando para intentar acceder al archivo /etc/mongod.conf:
sudo vi /etc/mongod.conf
Este comando debería devolver un mensaje [Permission Denied].
Este procedimiento funciona para CentOS 6, RHEL 6, Amazon Linux 2 y Ubuntu 18.04.
Actualice los permisos del archivo de configuración.
Utilice los siguientes comandos para actualizar los permisos en el archivo de configuración, que se encuentra en /etc/mongod.conf:
sudo chown mongod:mongod /etc/mongod.conf sudo chmod 600 /etc/mongod.conf ls -l /etc/mongod.conf -rw-------. 1 mongod mongod 330 Feb 27 18:43 /etc/mongod.conf
Esta configuración garantiza que solo el usuario mongod y la raíz tengan permisos para acceder y editar el archivo mongod.conf.
Actualiza el archivo sudoers.
Agrega las siguientes líneas de configuración al archivo sudoers usando visudo.
Para CentOS 6, RHEL 6 y Amazon Linux 2:
%mongod ALL =(ALL) NOPASSWD: /sbin/service mongod start, /sbin/service mongod stop, /sbin/service mongod restart %testuser ALL =(ALL) NOPASSWD: /sbin/service mongod start, /sbin/service mongod stop, /sbin/service mongod restart
For Ubuntu 18.04:
%mongod ALL =(ALL) NOPASSWD: /usr/sbin/service mongod start, /usr/sbin/service mongod stop, /usr/sbin/service mongod restart %testuser ALL =(ALL) NOPASSWD: /usr/sbin/service mongod start, /usr/sbin/service mongod stop, /usr/sbin/service mongod restart
Nota
Un error de sintaxis en el archivo sudoers puede afectar la funcionalidad de la cuenta de usuario root.
Confirme los permisos del usuario que no es root.
Su nuevo usuario ahora puede iniciar y detener el servicio mongod, pero no puede leer el archivo /etc/mongod.conf.
Pide a tu nuevo usuario que ejecute los siguientes comandos para iniciar mongod:
sudo service mongod start
Asegúrese de que reciban la siguiente confirmación en el shell:
Starting mongod: [ OK ]
Pueden ejecutar una prueba similar usando sudo service mongod stop para garantizar que pueden detener el servicio mongod sin errores.
Ahora, haz que ejecuten el siguiente comando para intentar acceder al archivo /etc/mongod.conf:
sudo vi /etc/mongod.conf
Este comando debería devolver un mensaje [Permission Denied].