Ubuntu

為 Percona 啟動 PAM 配置

  • December 9, 2016

我正在嘗試通過 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從更改06400644(o+r) 時,PAM 配置開始按預期影響登錄。

引用自:https://serverfault.com/questions/819544