CUIDADO A resposta sobre a alteração da senha do UNIX para "postgres" através de "$ sudo passwd postgres" não é a preferida e pode até ser PERIGOSA !
É por isso que: Por padrão, a conta UNIX "postgres" está bloqueada, o que significa que não é possível efetuar login usando uma senha. Se você usar "sudo passwd postgres", a conta será desbloqueada imediatamente. Pior, se você definir a senha para algo fraco, como "postgres", então você está exposto a um grande perigo de segurança. Por exemplo, há vários bots por aí tentando a combinação de nome de usuário / senha "postgres / postgres" para efetuar login no sistema UNIX.
O que você deve fazer é seguir a resposta de Chris James :
sudo -u postgres psql postgres
# \password postgres
Enter new password:
Para explicar um pouco. Normalmente, existem duas maneiras padrão de fazer login no servidor PostgreSQL:
-
Ao executar o comando "psql" como usuário do UNIX (a chamada autenticação IDENT / PEER), por exemplo:
sudo -u postgres psql
. Observe quesudo -u
NÃO desbloqueia o usuário do UNIX. -
por conexão TCP / IP usando o nome de usuário / senha gerenciados do PostgreSQL (chamada de autenticação TCP) (ou seja, NÃO a senha do UNIX).
Então você nunca quer definir a senha para a conta UNIX "postgres". Deixe bloqueado como está por padrão.
É claro que as coisas podem mudar se você configurá-lo de forma diferente da configuração padrão. Por exemplo, pode-se sincronizar a senha do PostgreSQL com a senha do UNIX e permitir somente logins locais. Isso estaria além do escopo desta questão.