背景知识:深入Linux PAM体系结构 原文地址:http://linux.chinaitlab.com/tool/530218.html
在CentOS 6.4虚拟机上安装vsftpd 3.0.2,搞了好长时间,就是没能用本地用户登录,只能实现匿名登录;
在寻找各种帮助文章的过程中,频频出现PAM的字眼,不得不承认,本人眼界太窄,不知道这个是什么东东,然后依照其他服务器的配置,在文件vsftpd.conf里添加了一句:
pam_service_name=vsftpd
事实上,vsftpd 3.0.2的builddefs.h文件中就是只定义了PAM,如下所示:
-------------------------------------------------------------
#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL
--------------------------------------------------------------
看到这,就说明肯定要配置PAM啦,先不管PAM是什么东西
pam_service_name=vsftpd 这句话中的 vsftpd是什么东西?原来是个文件,要放置在/etc/pam.d中的,这个文件就是用来做用户鉴别滴。好,贴上这个文件的内容:
--------------------------------------------------------------
#%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 password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
---------------------------------------------------------------
好了,这些弄好了,然后加上典型的vsftpd.conf的配置,可以用本地用户root登录啦。。。
注意那个红色的文件ftpusers,看样子是要放在/etc/vsftpd文件夹中的,这个文件里又是什么呢?原来就是用户名哦,如下:
---------------------------------------------------------------
# Users that are not allowed to login via ftp
#root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
#operator
games
nobody
---------------------------------------------------------------
注意啊,文件中的注释说明是这里面的用户是不允许通过ftp登录的,所以我把root注释掉了。