Problemas de contraseña al cambiar de usuario en Terminal

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. Probé con la contraseña de root y no funciona.

Si escribo sudo su postgres, se me solicita mi contraseña raíz, la ingreso y funciona.

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

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

¿Realmente tuviste que ingresar la contraseña del rootusuario para sudo su postgres? En caso afirmativo, ¿cómo configuró esto en primer lugar?

Respuestas (2)

  • Para cambiar a usuario postgres, escriba en Terminal:

    sudo su - postgres
    

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

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

  • Ahora, para volver a su usuario, simplemente escriba:

    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, debe identificarse sudoy escribir postgresla contraseña, pero como dice, no tiene ninguna, por lo que no funcionará. Incluso puede darse el caso de que al usuario nopostgres se le permita usar nada.sudo

Ver mi comentario anterior; Estaba confundiendo mi uso de Linux y OSX. Gracias a los dos por aclarar.

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

  • sudorequiere 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 (por ejemplo, después de haber cambiado a ese usuario), se requerirá postgresla contraseña del usuario. postgresComo es muy probable que esto no esté configurado (y postgresno esté incluido en /etc/sudoersninguno de los dos), postgresno podrá ejecutarsesudo
  • En la forma en que lo usa, sudocrea un nuevo shell que se ejecuta con el nuevo usuario. Para volver al usuario anterior, simplemente salga del shell ( Ctrl-D)
  • En lugar de usarlo sudo su <username>, podría ser más fácil omitir la suparte y simplemente usar sudo -su <username>(o simplemente sudo -ssi 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.


de sudo(8):

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

sudoLa configuración predeterminada (al menos en algunas variantes de Linux) requiere que el usuario escriba la contraseña de root . Por ejemplo, desde /etc/sudoersSUSE Linux Enterprise Server:In the default (unconfigured) configuration, sudo asks for the root password.
OS X! = Linux :-)
Lo sé, también vi la página de manual, pero cuando leí esto en la pregunta del OP: I'm prompted for my root passwordpensé que se refería a la contraseña para el usuario root.
Buen punto, pero según la pregunta, me sorprendería si el OP realmente habilitara la cuenta raíz y cambiara sudoers en consecuencia.
Completamente de acuerdo. Edité mi respuesta en consecuencia.
Muchas gracias. Creo que me confundí porque estoy acostumbrado a hacer este tipo de cosas en Linux y pensé que sería lo mismo en OSX. Pero tiene razón: nunca me han pedido que cree una contraseña de root, por lo que mi pregunta no tenía mucho sentido.