有关VSFTPD的网络谣言

1. 编译vsftpd时,若使用PAM验证模块,则本地用户是无法登录的
  
  这个说法是错误的,我想产生这个认识的原因就是:使用PAM验证模块后,若参数配置错误,会造成本地用户无法登录

  所以,三人成虎,就认为启用PAM模块之后,本地用户无法登录


那么怎么才能配置好PAM模块,让本地用户可以登录?


1.1. 编译vsftpd时检查是否启用了pam模块:编译前检查vsftpd源代码目录下的buiddefs.sh文件,确保VSF_DUILD_PAM前是#define而不是#undef, 如果是#undef,请修改其为#define, 再重新make && make install


1.2.  系统中存在相应的pam服务名,默认文件名是/etc/pam.d/ftp, 如果这个文件不存在,请复制vsftpd源代码目录下的RedHat/vsftpd.pam 为文件/etc/pam.d/ftp, 即 cp RedHat/vsftpd.pam /etc/pam.d/ftp


1.3. /etc/pam.d/ftp文件中的内容要正确(与OS平台类型相符),这个文件默认的文件内容是:


auth       required     /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required     /lib/security/pam_unix.so shadow nullok
auth       required     /lib/security/pam_shells.so
account    required     /lib/security/pam_unix.so
session    required     /lib/security/pam_unix.so


但如果你的系统是64位平台,则将所有/lib路径修改为/lib64,即:
auth       required     /lib64/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required     /lib64/security/pam_unix.so shadow nullok
auth       required     /lib64/security/pam_shells.so
account    required     /lib64/security/pam_unix.so
session    required     /lib64/security/pam_unix.so


笔者就是因为此步错误,导致登录时总出现530 Login incorrect错误


对典型的站点,/etc/vsftpd.conf中包含以下内容即可满足一般要求(锁定用户到自家目录,禁止匿名连接)

anonymous_enable=NO

chroot_local_user=YES
local_enable=YES
write_enable=YES

listen=YES
background=YES


1.4. 用户的目录存在,且权限正确,


chgrp -R username:groupname /var/home-dir

chmod -R ug=wrx,o=r /var/home-dir

猜你喜欢

转载自zhangxugg-163-com.iteye.com/blog/760896