Problemi di password che cambiano gli utenti nel terminale

1

Vorrei passare tra l'utente predefinito in Terminal e l'utente "postgres", creato quando ho installato PostgreSQL 9.2.

Se digito su postgres , viene richiesta una password che non conosco e che non ricordo di aver mai impostato. Provo la password di root e non funziona.

Se digito sudo su postgres , viene richiesta la mia password di root, che inserisco e che funziona.

Ma ora, se provo a tornare all'utente predefinito utilizzando sudo su user , viene richiesta una password e la password di root non funziona. Nemmeno la password che uso per accedere a quell'utente in OSX.

Non capisco cosa sta succedendo qui - Ho sempre e solo impostato una password, ma l'unico contesto in cui sembra funzionare è quando passi dal normale utente a "postgres". Cosa sta succedendo e come posso risolverlo?

    
posta GChorn 02.04.2013 - 08:58
fonte

2 risposte

2
  • Per passare all'utente postgres , digita Terminale:

    sudo su - postgres
    

    Se ti viene richiesta una password, digita la tua.

    (il - in sudo su - cambia l'ambiente in quello del nuovo utente ed è probabilmente quello che vuoi.Vedi man su per i dettagli.)

  • Ora, per tornare al tuo utente, digita semplicemente:

    exit
    

    per uscire dalla sessione bash corrente e tornare alla sessione bash originale.

Nota che se digiti sudo su <user> come utente postgres devi identificarti a sudo e digitare postgres 's password, ma come dici tu non ne ha, quindi non lo farà lavoro. Potrebbe anche accadere che l'utente postgres sia non autorizzato a utilizzare sudo .

    
risposta data 02.04.2013 - 10:15
fonte
1

Penso che qui stiate mescolando diversi concetti che portano ad una certa confusione.

  • sudo ha richiesto la password dell'utente corrente per l'autorizzazione. Quindi se lo fai da solo, inserisci la tua password. Se lo esegui come postgres (ad esempio dopo essere passati a quell'utente), sarà richiesta la password dell'utente postgres . Poiché molto probabilmente non è impostato (e postgres non è incluso in /etc/sudoers ), postgres non sarà possibile eseguire sudo
  • Nel modo in cui lo usi, sudo crea una nuova shell in esecuzione con il nuovo utente. Per tornare all'utente precedente, basta uscire dalla shell ( Ctrl-D )
  • Invece di usare sudo su <username> potrebbe essere più semplice saltare la parte su e usare solo sudo -su <username> (o solo sudo -s se vuoi diventare root )

In pratica ho trovato molto più facile aprire diverse schede in Terminal e accedere a diversi utenti in ogni scheda. In questo modo non devi preoccuparti di passare avanti e indietro tutto il tempo.

Da sudo(8) :

If the invoking user is root or if the target user is the same as the invoking user, no password is required. Otherwise, sudo requires that users authenticate themselves with a password by default (NOTE: in the default configuration this is the user's password, not the root password). Once a user has been authenticated, a time stamp is updated and the user may then use sudo without a password for a short period of time (5 minutes unless overridden in sudoers)

    
risposta data 02.04.2013 - 10:13
fonte

Leggi altre domande sui tag