Como alterar a senha do usuário do UNIX usando o passwd se o usuário estiver armazenado em um banco de dados MySQL?

2

Estou tentando configurar libnss-mysql e libpam-mysql . Até agora tudo tem funcionado. Eu posso usar id para obter informações sobre os usuários armazenados em meus bancos de dados. getent passwd está funcionando também. No entanto, getent shadow não é. Além disso, não posso alterar as senhas de usuários armazenados no banco de dados usando passwd . Existe uma maneira de corrigir esses problemas?

Por exemplo, estou executando o Ubuntu 10.04 como uma máquina virtual mínima.

Atualizar

Os únicos arquivos de configuração que eu alterei foram /etc/nss-mysql.conf , /etc/nss-mysql-root.conf e /etc/nsswitch.conf . Tenho certeza que os dois primeiros estão corretos. Já que eles simplesmente configuram como o banco de dados é acessado. Eu só adicionei a palavra "mysql" às três linhas seguintes da última:

passwd: compat mysql
groups: compat mysql
shadow: compat mysql

Eu não toquei em nenhum outro arquivo de configuração. Se algum de vocês precisar ver algum outro arquivo, por favor me avise, porque agora não tenho idéia de qual outro arquivo de configuração pode ser de interesse.

    
por t6d 14.04.2011 / 18:29

1 resposta

1

Normalmente, getent shadow não retornará nada a menos que você seja root.

Você precisa alterar a configuração do PAM em /etc/pam.d para usar o módulo PAM do mysql.

Depois disso, você poderá alterar as senhas com o comando normal passwd .

    
por 14.04.2011 / 20:25