FTPログイン時に「PAM unable to dlopen」のエラーが出たときにやったこと

Plesk 11 + CentOS 6環境に移行したらFTPログインで認証が通らなくてログインできなくなった。/var/log/secureを確認すると↓みたいなログが残ってる。

proftpd: PAM unable to dlopen(/lib64/security/pam_stack.so): /lib64/security/pam_stack.so: cannot open shared object file: No such file or directory

そんな時は「/etc/pam.d/proftpd」を編集する。

cp -p /etc/pam.d/proftpd{,.default}
vi /etc/pam.d/proftpd
---
#%PAM-1.0
auth       required     pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required     pam_stack.so service=system-auth
auth       required     pam_shells.so
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth

↓

#%PAM-1.0
auth       required     pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       include      system-auth service=system-auth
auth       required     pam_shells.so
account    include      system-auth service=system-auth
session    required     pam_loginuid.so
---

具体的な変更箇所としては

(1)「required pam_shells.so」という箇所を全て「include system-auth」に変更する。

(2)「session」の行は下記のように変更する。

session    required     pam_stack.so service=system-auth
     ↓
session    required     pam_loginuid.so

最後にxinetdを再起動してProftpdに設定を再読込させる。

service xinetd restart

なお、PLESK 11にしたらFTPクライアント側でも調整が必要になる模様。

・http://ex-cloud.jp/support/question/q-630 (FFFTP)

・http://www.aconus.com/~oyaji/centos/proftpd_centos.htm (Filezilla、SmartFTP等)

【参考サイト】

・http://blog.be-dama.com/2013/06/06/centos6%E3%81%AEproftpd%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E5%87%BA%E6%9D%A5%E3%81%AA%E3%81%84%E3%80%82/

・http://www.psl.ne.jp/blog/?p=397

・http://www.dontwalk.org/archives/310