作者:手机用户2602931923_450 | 来源:互联网 | 2014-05-28 09:06
错误情况一:本地用户与虚拟用户都无法登录原因分析:在配置/etc/pam.d/vsftpd时,添加了下面两行,但是没有注释掉其他项,导致冲突authrequiredpam_userdb.sodb/etc/vsftpd/vuseraccountrequiredpam_userdb.sodb/etc/vsftpd/vuse
错误情况一:本地用户与虚拟用户都无法登录
原因分析:
在配置/etc/pam.d/vsftpd时,添加了下面两行,但是没有注释掉其他项,导致冲突
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so
db=/etc/vsftpd/vuser
解决方法:除了添加的两行,其他行全部注释掉,如下
# Virtual Users Setting.
auth required
pam_userdb.so
db=/etc/vsftpd/vuser
account required
pam_userdb.so
db=/etc/vsftpd/vuser
#%PAM-1.0
#session optional
pam_keyinit.so force revoke
#auth required
pam_listfile.so item=user sense=deny
file=/etc/vsftpd/ftpusers
#Onerr=succeed
#auth required
pam_shells.so
#auth include
system-auth
#account include
system-auth
#session include
system-auth
#session required
pam_loginuid.so
错误情况二:经过上面修改后,发现虚拟用户可以登录,但本地用户依然无法登录
原因分析:
在/etc/pam.d/vsftpd配置虚拟用户认证时,添加了下面两行,但把其他行注释掉了,导致本地用户无法认证,故无法登录
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so
db=/etc/vsftpd/vuser
解决方法:添加的两行放在最前面,并把其中“required”改为“sufficient”,对虚拟用户的验证使用sufficient这个控制标志。这个标志的含义是如果这个模块验证通过,就不必使用后面的层叠模块进行验证了;但如果失败了,就继续后面的认证,也就是使用系统真实用户的验证。如下
# Virtual Users Setting.
auth sufficient
pam_userdb.so db=/etc/vsftpd/vuser
account sufficient
pam_userdb.so db=/etc/vsftpd/vuser
#%PAM-1.0
session optional
pam_keyinit.so force revoke
auth required
pam_listfile.so item=user sense=deny
file=/etc/vsftpd/ftpusers
Onerr=succeed
auth required
pam_shells.so
auth include
system-auth
account include
system-auth
session include
system-auth
session required
pam_loginuid.so
错误情况三:经过上面处理后,发现虚拟用户与本地用户都能成功登录了,但是本地用户无法显示文件
原因分析:
在/etc/vsftpd/vsftpd.conf里配置本地用户与虚拟用户时,都配置了“local_root”项,使得只有后面配置的那一行生效,即本地用户配置的local_root失效了,那么本地用户登录时会进入到虚拟用户的根目录,没有足够权限,所以无法显示文件
解决方法:
把虚拟用户中配置的“local_root”项注释或删除,因为虚拟用户本身的配置文件也能指定家目录,所以不会有太大影响。这时两种用户都能登录和进行正常操作了。