En esta guía, le mostraremos cómo cambiar a otra o una cuenta de usuario específica sin requerir una contraseña. Por ejemplo, tenemos una cuenta de usuario llamada postgres (el valor por defecto PostgreSQL cuenta del sistema de superusuario), queremos que todos los usuarios (normalmente nuestro PostgreSQL administradores de bases de datos y sistemas) en el grupo llamado postgres para cambiar a la postgres cuenta usando el su
comando sin ingresar una contraseña.
De forma predeterminada, solo el usuario root 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 les pedirá que ingresen su contraseña), si no proporcionan la contraseña correcta, obtienen un "autenticación fallida”Como se muestra en la siguiente captura de pantalla.
Puede utilizar cualquiera de las dos soluciones que se proporcionan a continuación para resolver el problema anterior.
PAM (Módulos de autenticación conectables) 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 predeterminada de PAM para el su comando en el /etc/pam.d/su expediente.
# vim /etc/pam.d/su. O. $ sudo vim /etc/pam.d/su.
Agregue las siguientes configuraciones después "Auth suficiente pam_rootok.so”Como se muestra en la siguiente captura de pantalla.
auth [éxito = ignorar predeterminado = 1] pam_succeed_if.so user = postgres. auth suficiente pam_succeed_if.so use_uid usuario ingroup postgres.
En la configuración anterior, la primera línea comprueba si el usuario de destino es postgres, si es así, el servicio verifica al usuario actual, de lo contrario, el predeterminado = 1
Se omite la línea y se ejecutan los pasos de autenticación normales.
auth [éxito = ignorar predeterminado = 1] pam_succeed_if.so user = postgres.
La línea que sigue comprueba si el usuario actual está en el grupo postgres, Si sí
, el proceso de autenticación se considera exitoso y, como resultado, devuelve suficiente. De lo contrario, se ejecutan los pasos de autenticación normales.
auth suficiente pam_succeed_if.so use_uid usuario ingroup postgres.
Guarde el archivo y ciérrelo.
A continuación, agregue el usuario (por ejemplo Aaronk) que quieres su
a la cuenta postgres sin contraseña para el grupo postgres utilizando comando usermod.
$ sudo usermod -aG postgres aaronk.
Ahora intenta su
al postgres cuenta como usuario Aaronk, no se le debe solicitar una contraseña como se muestra en la siguiente captura de pantalla:
$ su - postgres.
Tú también puedes 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 TODOS = (TODOS: TODOS) TODOS"
como se muestra en la siguiente captura de pantalla.
aaronk TODOS = NOPASSWD: / bin / su - postgres.
Guarde y cierre el archivo.
Ahora intenta su
a la cuenta postgres como el usuario Aaronk, el shell no debería pedirle 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 del manual de PAM (hombre pam.conf) y el de comando sudo también (hombre sudo).
$ man pam.conf. $ man sudo.