“su” quando a senha é desconhecida, mas você está em “roda” com “sem senha”

5

Estou no FreeBsd 11. Eu tenho um usuário "user123" pertencente ao grupo wheel e wheel tem %wheel ALL=(ALL) NOPASSWD: ALL em /usr/local/etc/sudoers .

Eu não sei a senha do root. No entanto, sou capaz de executar "sudo" sem um.

Instalei o Postgresql e o executei através de "início de serviço".

Agora eu quero fazer login como o usuário postgresql e criar um banco de dados ou outras coisas:

$ su postgres
Password:


# or

$ su - postgres
Password:

Mas eu não sei a senha.

Esta é a senha do usuário root ou o usuário postgres ? Eu não conheço nenhum deles. Existe uma solução padrão para isso?

    
por Dorion 21.04.2017 / 03:17

3 respostas

18

Se você quiser fazer o login como postgres e tiver sudo de acesso sem requisitos de senha, faça:

sudo -iu postgres

O -i inicia um shell de login.

    
por 21.04.2017 / 03:31
1

Advertência: a pergunta sugere que você esteja usando um servidor pessoal. Se não, e você não é o administrador principal, NÃO assuma o shell do usuário root a menos que seja instruído pelo administrador principal

sudoers: configurações do "grupo de rodas"

%wheel ALL=(ALL) NOPASSWD: ALL

Assim, o usuário user123 está no "grupo wheel" e o arquivo sudoers ALL domains como (ALL) usuários sem senha necessária para ALL comandos, para membros do grupo wheel.

Sabemos que você tem um login de trabalho para que suas opções não sejam limitadas. Saber a senha para postgres ou mesmo root , não é necessário. Você pode simplesmente:

$ sudo -iu postgres

su, sudo, sudoers confusion

  1. su = usuário substituto
  2. sudo = exec comando como outro usuário

O motivo pelo qual você não pode 'substituir usuário' por su ou su - , como mostrado na pergunta, é porque o arquivo sudoers não tem efeito no comando su .

O comando su sem argumentos ou apenas o traço é padronizado para root , então você é solicitado a fornecer a senha do usuário root. Esse é o comportamento esperado: como o nome sudoers implica, o arquivo sudoers concede privilégios somente ao comando sudo .

shell de root, senha perdida

Como parece, você esqueceu a senha do root. Você pode obter o shell de root usando:

$ sudo -i

Deixando você de volta ao controle em: [root@local ~]#

    
por 21.04.2017 / 03:20
0

Dois passos:

$ sudo -i
# su - postgres

Como root , você pode usar su sem senha. Você também pode combiná-los para

$ sudo su - postgres
    
por 21.04.2017 / 18:13