在 CentOS 6.x 安裝 proftpd:
yum -y remove vsftpd
yum -y install proftpd
chkconfig proftpd on在改好設定檔,重新啟動 proftpd 之後,卻發現 ftp 用戶無法正常登入!!也跟防火牆的設定無關,我從 redhat linux 7.3 使用 proftpd 到現在,這種情形還是一次遇到。
查看一下 /var/log/secure,主要的錯誤訊息是:
proftpd: PAM unable to dlopen(/lib/security/pam_stack.so): /lib/security/pam_stack.so: cannot open shared object file: No such file or directory
proftpd: PAM adding faulty module: /lib/security/pam_stack.soPAM 是 Linux 用來指定各種服務的帳號驗證方式,所有 PAM 的設定檔是放在 /etc/pam.d,對照一下 vsftpd 與網路上找到的資訊,解決方法如下:
這是原本 /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 required pam_shells.so
account include password-auth
session required pam_loginuid.so