Problemas de contraseña al cambiar usuarios en la Terminal

1

Me gustaría cambiar entre el usuario predeterminado en Terminal y el usuario 'postgres', creado cuando instalé PostgreSQL 9.2.

Si escribo su postgres , se me solicita una contraseña que no conozco y que no recuerdo haber configurado nunca. Intento con la contraseña de root y no funciona.

Si escribo sudo su postgres , se me solicita mi contraseña de root, la cual ingrese, y eso funciona.

Pero ahora, si intento volver al usuario predeterminado usando sudo su user , se me solicita una contraseña y la contraseña de root no funciona. Tampoco la contraseña que utilizo para iniciar sesión en ese usuario en OSX.

No entiendo lo que está pasando aquí: solo he establecido una contraseña, pero el único contexto en el que parece funcionar es cuando se pasa del usuario normal a 'postgres'. ¿Qué está pasando y cómo puedo solucionarlo?

    
pregunta GChorn 02.04.2013 - 08:58

2 respuestas

2
  • Para cambiar al usuario postgres , escriba Terminal:

    sudo su - postgres
    

    Si se le solicita una contraseña, escriba la suya.

    (El - en sudo su - cambia el entorno al del nuevo usuario, y es probablemente lo que desea. Consulte man su para más detalles.)

  • Ahora, para volver a tu usuario, simplemente escribe:

    exit
    

    para salir de la sesión de bash actual y volver a su sesión de bash original.

Tenga en cuenta que si escribe sudo su <user> como usuario postgres necesita identificarse con sudo y escribir la contraseña de postgres , pero como dice, no tiene ninguna, por lo que no trabajo. Incluso puede darse el caso de que el usuario postgres tenga no permiso para usar sudo en absoluto.

    
respondido por el jaume 02.04.2013 - 10:15
1

Creo que estás mezclando varios conceptos aquí, lo que lleva a cierta confusión.

  • sudo requiere la contraseña del usuario actual para la autorización. Entonces, si lo ejecuta como usted mismo, ingrese su propia contraseña. Si lo ejecuta como postgres (por ejemplo, después de haber cambiado a ese usuario), se requerirá la contraseña del usuario postgres . Como es muy probable que esto no esté establecido (y postgres tampoco está incluido en /etc/sudoers ), postgres no podrá ejecutar sudo
  • En la forma en que lo usas, sudo crea un nuevo shell que se ejecuta con el nuevo usuario. Para volver al usuario anterior, simplemente salga del shell ( Ctrl-D )
  • En lugar de usar sudo su <username> , puede ser más fácil omitir la parte su y simplemente usar sudo -su <username> (o simplemente sudo -s si quieres convertirte en root )

En la práctica, me resultó mucho más fácil abrir varias pestañas en Terminal e iniciar sesión en diferentes usuarios en cada pestaña. De esta manera, no tiene que preocuparse por cambiar de un lado a otro todo el tiempo.

Desde sudo(8) :

  

Si el usuario que invoca es root o si el usuario de destino es el mismo que el usuario          invocando usuario, no se requiere contraseña. De lo contrario, sudo requiere que los usuarios se autentiquen.          con una contraseña por defecto (NOTA: en la configuración predeterminada, esta es la contraseña del usuario, no la          contraseña de root ). Una vez que un usuario ha sido autenticado, una marca de tiempo se actualiza y el usuario puede entonces          use sudo sin contraseña por un corto período de tiempo (5 minutos, a menos que se invalide en sudoers)

    
respondido por el nohillside 02.04.2013 - 10:13

Lea otras preguntas en las etiquetas