Назад | Перейти на главную страницу

Как изменить пароль пользователя UNIX с помощью passwd, если пользователь хранится в базе данных MySQL?

Я пытаюсь настроить libnss-mysql и libpam-mysql. Пока все работает. я могу использовать id чтобы получить информацию о пользователях, хранящуюся в моих базах данных. getent passwd тоже работает. Тем не мение, getent shadow не является. Кроме того, я не могу изменить пароли пользователей, которые хранятся в базе данных, используя passwd. Есть ли способ исправить эти проблемы?

Кстати, я запускаю Ubuntu 10.04 как минимальную виртуальную машину.

Обновить

Единственные файлы конфигурации, которые я изменил, были /etc/nss-mysql.conf, /etc/nss-mysql-root.conf и /etc/nsswitch.conf. Я почти уверен, что первые два верны. Поскольку они просто настраивают доступ к базе данных. Я только добавил слово «mysql» к следующим трем строкам последнего:

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

Никаких других файлов конфигурации я не трогал. Если кому-то из вас нужен какой-либо другой файл, сообщите мне, потому что сейчас я не знаю, какой еще файл конфигурации может быть интересен.

Как обычно, getent shadow ничего не вернет, если вы не являетесь пользователем root.

Вам необходимо изменить конфигурацию PAM в /etc/pam.d, чтобы использовать модуль mysql PAM.

После этого вы сможете менять пароли в обычном passwd команда.