AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 221043
Accepted
Basil Bourque
Basil Bourque
Asked: 2018-10-26 14:31:43 +0800 CST2018-10-26 14:31:43 +0800 CST 2018-10-26 14:31:43 +0800 CST

Mudar usuário para usuário 'postgres' no macOS resulta em erro "su: Desculpe"

  • 772

Os instaladores do Postgres gentilmente cedidos à comunidade pelo EnterpriseDB.com criam uma postgresconta de usuário no macOS como é comum.

Em uma sessão de console em Terminal.app , preciso alternar para esse usuário. Meu objetivo é executar um editor de texto com os privilégios desse usuário para que eu possa editar o pg_hba.confarquivo que controla as regras de autenticação de usuário do Postgres.

Quando eu tento:

su - postgres

…Sou solicitada a senha do usuário, que digito com sucesso, mas recebo a mensagem de erro:

su: Desculpe

Tenho certeza que a senha está correta. O que posso fazer para acessar o postgresusuário?

postgresql permissions
  • 2 2 respostas
  • 15940 Views

2 respostas

  • Voted
  1. Best Answer
    Basil Bourque
    2018-10-26T14:31:43+08:002018-10-26T14:31:43+08:00

    sudo su postgres

    Tendo encontrado esta pergunta fechada no Stack Overflow e sua duplicata , postarei aqui as soluções encontradas ali e ali .

    ➥ Você deve usar o sudocomando combinado com o sucomando.

    sudo su postgres
    

    Quando solicitado, digite sua senha de usuário administrador do macOS em vez postgresda senha do usuário. Neste momento, o usuário administrador do Mac é quem executa o sudocomando, não o postgresusuário.

    Embora eu não entenda por que devemos combinar o sudocom o su, ele realmente funciona para mim no macOS Mojave . Não encontrei essa dica entre meus vários esforços de pesquisa relacionados a BSD e Linux, então talvez seja uma coisa da Apple apenas para Mac, talvez uma medida extra de segurança. Ou talvez nos sistemas operacionais do estilo Unix, o sucomando deve ser executado pelo rootusuário e, no macOS, a rootconta é desativada por padrão para fins de segurança - nossa conta de usuário de administrador do Mac é menos poderosa que root, e pode não ser autorizada por padrão para executar su? Não sei, não me importo, a solução alternativa funciona.

    Alternativa moderna:sudo -u

    Segundo Craig Ringer e Erwin Brandstetter , a forma mais moderna é:

    sudo -u postgres -i
    

    De acordo com esta página :

    • -usignifica “executar um comando especificado como este usuário especificado”.
    • postgresestá especificando o nome de usuário sob o qual queremos executar o comando.
    • -isimula um login inicial, o que significa que o shell será inicializado executando os scripts de inicialização desse usuário.
    • Nenhum comando é fornecido, portanto, um shell interativo é executado.

    Para obter mais discussões sobre as abordagens mais antigas e mais recentes, consulte esta pergunta no site irmão, Qual é a diferença entre sudo su - postgres e sudo -u postgres? . A resposta de Craig Ringer aconselha: (a) Esqueça sudo sue (b) use sudo -uem vez disso.

    Executar aplicativos como postgresusuário

    Para executar uma psqlsessão como postgresusuário:

    sudo -u postgres psql
    

    Para executar o aplicativo editor de texto como usuário:nano postgres

    sudo -u postgres nano
    
    • 6
  2. Daniel Vérité
    2018-10-27T04:03:31+08:002018-10-27T04:03:31+08:00

    O instalador do EBD pede uma senha durante a instalação, mas é para o usuário do banco de dados, não para o postgresusuário Unix, que não tem senha.

    Isso é mencionado em Postgres, Passwords and Installers no site EDB. Citar:

    Em sistemas operacionais do tipo Unix, como Linux e Mac OS X, a conta é configurada sem uma senha e os usuários geralmente nunca mais precisam se preocupar com isso.

    A explicação mais plausível para su - postgresnão funcionar é que você está confundindo a senha do banco de dados com a senha do sistema operacional.

    Para tornar su - postgresutilizável, a senha do SO precisaria ser definida primeiro, o que poderia ser feito com:

    $ sudo passwd postgres
    

    Isso também é verdade para o PostgreSQL empacotado em distribuições Linux. De fato, os pacotes PostgreSQL para Linux vão um passo além e não pedem senha para o superusuário do banco de dados, o que permite uma instalação totalmente automatizada. Assim como a senha do SO não é necessária se sudofor sempre usada, uma senha do banco de dados não é necessária se apenas o peermétodo de autenticação padrão for usado pelo postgresusuário.

    • 6

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve