Para mantener la seguridad de la base de datos, puede limitar los privilegios de los usuarios autorizados que no sean root, permitiéndoles realizar operaciones administrativas sin otorgarles privilegios de root completos.
Esta página demuestra cómo permitir que usuarios no root inicien, detengan y reinicien mongod Procesos en sistemas Linux, sin permitirles acceder a todos los privilegios de usuario root. Este procedimiento se aplica a usuarios que pertenecen a un grupo Linux no root, distinto del grupo en el que se ejecuta el proceso mongod.
Antes de comenzar
Instalar Comunidad MongoDB o MongoDB Enterprise.
Considerations
Importante
El siguiente procedimiento requiere acceso root para la configuración. Una configuración incorrecta puede provocar que el sistema no responda, por lo que siempre debe probarlo en un entorno de desarrollo antes de implementarlo en producción. Asegúrese de tener una copia de seguridad actualizada de sus datos.
Le recomendamos que realice este procedimiento al configurar un sistema nuevo. Si no es posible, realice el procedimiento durante el período de mantenimiento.
Este procedimiento afecta la configuración de un solo sistema local. Si utiliza un conjunto de réplicas o un clúster fragmentado, realice este procedimiento de forma gradual. No actualice todos los nodos a la vez.
Este procedimiento funciona con todas las distribuciones de Linux, pero solo se ha probado con CentOS 6/7, RHEL 6/7, Ubuntu 18.04 y Amazon Linux 2.
Procedimiento
Seleccione la pestaña correspondiente a su proveedor de sistema a continuación.
Este procedimiento funciona para 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.
Actualice el sudoers archivo.
Agregue las siguientes líneas de configuración al sudoersarchivo 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 raíz.
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 utilizando sudo /bin/systemctl stop mongod.service para asegurarse de que pueden detener el servicio mongod sin errores.
Ahora, pídales que ejecuten el siguiente comando para intentar acceder al archivo /etc/mongod.conf:
sudo vi /etc/mongod.conf
Este comando debe 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.
Actualice el sudoers archivo.
Agregue las siguientes líneas de configuración al archivo sudoers con 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 raíz.
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 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 utilizando sudo service mongod stop para asegurarse de que pueden detener el servicio mongod sin errores.
Ahora, pídales que ejecuten el siguiente comando para intentar acceder al archivo /etc/mongod.conf:
sudo vi /etc/mongod.conf
Este comando debe devolver un mensaje [Permission Denied].