En esta guía, le mostraremos cómo cambiar a otra cuenta de usuario o a una específica sin requerir una contraseña. Por ejemplo, tenemos una cuenta de usuario llamada postgres (el PostgreSQL predeterminado cuenta del sistema de superusuario), queremos que cada usuario (típicamente nuestro PostgreSQL administradores de bases de datos y sistemas) en el grupo llamado postgres para cambiar a postgres cuenta usando el su
comando sin ingresar una contraseña.
De manera predeterminada, solo el usuario raíz puede cambiar a otra cuenta de usuario sin ingresar una contraseña. A cualquier otro usuario se le pedirá que ingrese la contraseña de la cuenta de usuario a la que está cambiando (o si está usando el comando sudo, se le pedirá que ingrese su contraseña), si no proporciona la contraseña correcta, obtiene un “autenticación fallida ” como se muestra en la siguiente captura de pantalla.
Puede utilizar cualquiera de las dos soluciones proporcionadas a continuación para resolver el problema anterior.
1. Uso del módulo de autenticación PAM
PAM (Módulos de autenticación enchufables ) son el núcleo de la autenticación de usuarios en los sistemas operativos Linux modernos. Para permitir que los usuarios de un grupo específico cambien a otra cuenta de usuario sin contraseña, podemos modificar la configuración de PAM predeterminada para el comando su en el /etc/pam.d/su archivo.
# vim /etc/pam.d/su OR $ sudo vim /etc/pam.d/su
Agregue las siguientes configuraciones después de “auth enough pam_rootok.so ” como se muestra en la siguiente captura de pantalla.
auth [success=ignore default=1] pam_succeed_if.so user = postgres auth sufficient pam_succeed_if.so use_uid user ingroup postgres
En la configuración anterior, la primera línea verifica si el usuario objetivo es postgres , si es así, el servicio comprueba el usuario actual, de lo contrario, default=1
se omite la línea y se ejecutan los pasos normales de autenticación.
auth [success=ignore default=1] pam_succeed_if.so user = postgres
La línea que sigue comprueba si el usuario actual está en el grupo postgres , si yes
, el proceso de autenticación se considera exitoso y devuelve suficiente como resultado. De lo contrario, se ejecutan los pasos normales de autenticación.
auth sufficient pam_succeed_if.so use_uid user ingroup postgres
Guarde el archivo y ciérrelo.
A continuación, agregue el usuario (por ejemplo, aaronk ) que desea su
a la cuenta postgres sin contraseña al grupo postgres usando el comando usermod.
$sudo usermod -aG postgres aaronk
Ahora intenta su
a los postgres cuenta como el usuario aaronk , no se le debe solicitar una contraseña como se muestra en la siguiente captura de pantalla:
$ su - postgres
2. Uso del archivo Sudoers
También puede su
a otro usuario sin requerir una contraseña haciendo algunos cambios en el archivo sudoers. En este caso, el usuario (por ejemplo, aaronk ) que cambiará a otra cuenta de usuario (por ejemplo, postgres ) debe estar en el archivo sudoers o en el grupo sudo para poder invocar el comando sudo .
$ sudo visudo
Luego agregue la siguiente configuración debajo de la línea “%sudo ALL=(ALL:ALL) ALL”
como se muestra en la siguiente captura de pantalla.
aaronk ALL=NOPASSWD: /bin/su – postgres
Guarde y cierre el archivo.
Ahora intenta su
a la cuenta postgres como usuario aaronk , el shell no debería solicitarle que ingrese una contraseña:
$ sudo su - postgres
¡Eso es todo por ahora! Para obtener más información, consulte la página de entrada manual de PAM (man pam.conf ) y el del comando sudo también (man sudo ).
$ man pam.conf $ man sudoLectura relacionada :10 configuraciones útiles de Sudoers para configurar 'sudo' en Linux