Como alternar (su) para outra conta de usuário sem senha

Como alternar (su) para outra conta de usuário sem senha

Neste guia, mostraremos como mudar para outro ou uma conta de usuário específica sem exigir uma senha. Por exemplo, temos uma conta de usuário chamada PostGres (o padrão PostGresql conta do sistema superusuário), queremos todos os usuários (normalmente nosso PostGresql Banco de dados e administradores de sistema) no grupo chamado PostGres para mudar para o PostGres conta usando o su comando sem inserir uma senha.

Por padrão, apenas o usuário root pode mudar para outra conta de usuário sem inserir uma senha. Qualquer outro usuário será solicitado a inserir a senha da conta de usuário para a qual está mudando (ou se estiver usando o comando sudo, eles serão solicitados a inserir sua senha), se não fornecer a senha correta, eles receberão um "Autenticação falhou”Erro como mostrado na captura de tela a seguir.

Erro de falha de autenticação do usuário

Você pode usar qualquer uma das duas soluções fornecidas abaixo para resolver o problema acima.

1. Usando o módulo de autenticação PAM

Pam (Módulos de autenticação traváveis) estão no centro da autenticação do usuário em sistemas operacionais modernos do Linux. Para permitir que os usuários em um grupo específico mudem para outra conta de usuário sem uma senha, podemos modificar as configurações de PAM padrão para o comando su no /etc/pam.d/su arquivo.

# vim /etc /pam.d/su ou $ sudo vim/etc/pam.d/su 

Adicione as seguintes configurações depois “Auth Pam_rootok suficiente.então”Como mostrado na captura de tela seguinte.

auth [success = ignore padrão = 1] pam_succeced_if.Então User = PostGres auth Auth PAM_SUCECED_IF.então use_uid User ingroup Postgres 

Na configuração acima, a primeira linha verifica se o usuário alvo está PostGres, se for, o serviço verifica o usuário atual, caso contrário, o padrão = 1 A linha é ignorada e as etapas normais de autenticação são executadas.

auth [success = ignore padrão = 1] pam_succeced_if.Então User = PostGres 

A linha que segue verifica se o usuário atual está no grupo PostGres, se sim, O processo de autenticação é considerado bem -sucedido e retorna suficiente como resultado. Caso contrário, as etapas normais de autenticação são executadas.

AUTH PAM_SUCECED_IF suficientes suficientes.então use_uid User ingroup Postgres 
Configure o PAM para permitir a execução do comando SU sem senha

Salve o arquivo e feche-o.

Em seguida, adicione o usuário (por exemplo Aaronk) que você quer su para a conta PostGres sem uma senha para o grupo PostGres usando o comando userMod.

$ sudo userMod -AG Postgres Aaronk 

Agora tente su para o PostGres conta como usuário Aaronk, Você não deve ser solicitado a uma senha, como mostrado na captura de tela a seguir:

$ su - postgres 
Adicionar usuário ao grupo

2. Usando o arquivo sudoers

Você também pode su Para outro usuário sem exigir uma senha fazendo algumas alterações no arquivo sudoers. Nesse caso, o usuário (por exemplo Aaronk) quem mudará para outra conta de usuário (por exemplo PostGres) deve estar no arquivo sudoers ou no grupo sudo para poder invocar o Comando sudo.

$ sudo visudo 

Em seguida, adicione a seguinte configuração abaixo da linha “%Sudo all = (tudo: tudo) tudo” como mostrado na captura de tela a seguir.

aaronk all = nopoasswd: /bin /su - pós -gres 
Adicione o arquivo do usuário aos sudoers

Salve e feche o arquivo.

Agora tente su para a conta PostGres como o usuário Aaronk, O shell não deve solicitar que você insira uma senha:

$ sudo su - postgres 
Mude para outro usuário sem senha

É tudo por agora! Para mais informações, consulte a página de entrada manual do PAM (Homem Pam.conf) e o de Comando sudo também (Homem sudo).

$ MAN PAM.conf $ homem sudo 
Leitura relacionada: 10 configurações úteis de sudoers para definir 'sudo' no Linux