Ubuntu
為 Percona 啟動 PAM 配置
我正在嘗試通過 PAM 為 Percona 配置 LDAP 支持,包括組映射和限制。我的 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
有了這些,以下工作:
- 在 sudo(和 mysql)中以 LDAP 使用者身份登錄,獲得 dba 的權限。
- 在 mysql 中以 LDAP 使用者身份登錄,獲得 dbr 的權限。
- 嘗試使用無效的使用者名和/或密碼登錄,無法訪問。
並且以下行為是不正確的(應該完全拒絕登錄):
- 在 sudo(但不是 mysql)中以 LDAP 使用者身份登錄,仍然獲得 dba 的權限。
- 以兩個組中的 LDAP 使用者身份登錄,獲得無權限訪問。
花了很長時間才最終弄清楚配置
/etc/pam.d/mysql
沒有效果。即使該文件不存在,行為也是相同的。我的理解是字元串中的第一個值
mysql, sudo=dba, mysql=dbr
告訴 Percona 在名為 mysql 的文件中使用 PAM 配置,並且所有教程都顯示文件名解析為/etc/pam.d/mysql
.我錯過了什麼?
問題原來是文件權限。當
/etc/pam.d/mysql
從更改0640
為0644
(o+r) 時,PAM 配置開始按預期影響登錄。