|
|
[color="Red"]关于vsftpd和PAM的协作的问题!!!
/etc/vsftpd/vsftpd.conf内容如下::help
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
/etc/pam.d/vsftpd内容如下
auth sufficient pam_ftp.so debug users=ftp,anonymous,nobody ignore
auth required pam_listfile.so item=user sense=deny onerr=succeed file=/etc/vsftpd.ftpusers
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
按照/etc/vsftpd/vsftpd.conf的pam_service_name=vsftpd设置,它会去读取PAM的/etc/pam.d/vsftpd内容的设定,那么,auth sufficient pam_ftp.so debug users=ftp,anonymous,nobody ignore将会是这样的过程:
sufficient表示如果此项成功,则不进行下面的auth堆叠步骤,如果失败则忽视。而它会去调用/lib/security/pam_ftp.so,users=ftp,anonymous,nobody表示这三个用户作为默认的匿名用户对待而直接通过认证,而ignore表示忽略mail地址。
auth required pam_listfile.so item=user sense=deny onerr=succeed file=/etc/vsftpd.ftpusers表示如果上面的sufficient失败了,则会继续此行内容,那么表示在/etc/vsftpd.ftpusers文件中的用户如果出现则会被deny(sense=deny),否则succeed(onerr=succeed)。
我在/etc/vsftpd.ftpusers将ftp,nobody,anonymous添加进去,而/etc/vsftpd.user_list中没有添加此三个用户。
文件/etc/hosts.allow和/etc/hosts.deny没有做任何关于vsftpd的限制
我重新启动vsftpd,然后ftp 192.168.1.22(本机)之后,键入正确用户密码后,ftp和anonymous可以正常登陆,但是nobody用户却不可以,显示的是:
331 please specify the password
passwd:
530 login incorrect
login failed
ftp>
为什么呢?如果按照上面的设置的话,nobody用户也是可以正常登陆的阿!为什么却不能呢?
注:防火墙以及selinux均disable了
:help |
|