Я пытаюсь настроить Percona с поддержкой LDAP через PAM, включая групповые сопоставления и ограничения. Моя настройка аутентификации Percona выглядит следующим образом:
INSTALL PLUGIN pam SONAME 'auth_pam.so';
create user 'dba'@'%' IDENTIFIED WITH auth_pam AS 'mysql';
grant all privileges on *.* to 'dba'@'%' with grant option;
create user 'dbr'@'%' IDENTIFIED WITH auth_pam AS 'mysql';
grant select on *.* to 'dbr'@'%';
CREATE USER ''@'' IDENTIFIED WITH auth_pam AS 'mysql, sudo=dba, mysql=dbr';
GRANT PROXY ON 'dba'@'%' TO ''@'';
GRANT PROXY ON 'dbr'@'%' TO ''@'';
И в /etc/pam.d/mysql у меня есть:
auth required pam_warn.so
auth required pam_ldap.so
account required pam_ldap.so
account required pam_succeed_if.so user ingroup mysql
Когда они установлены, работает следующее:
И следующее поведение неверно (следует полностью отказаться от входа в систему):
Потребовалось некоторое время, чтобы в конце концов понять, что конфигурация в /etc/pam.d/mysql
не имеет никакого эффекта. Поведение одинаково, даже если этот файл отсутствует.
Насколько я понимаю, первое значение в строке mysql, sudo=dba, mysql=dbr
сообщает Percona использовать конфигурацию PAM в файле с именем mysql, и все руководства показывают, что имя файла разрешается в /etc/pam.d/mysql
.
Что мне не хватает?
Проблема оказалась в правах доступа к файлам. когда /etc/pam.d/mysql
был изменен с 0640
к 0644
(o + r), конфигурация PAM начала влиять на вход в систему, как и ожидалось.