vsftp使用虚拟用户

1、安装vsftpd,mysql,libpam-mysql
2、创建用户ftpguest。属于nobody组。不允许登陆。默认主目录/data2/ftpguest。更改权限
chown ftpguest.nogroup /data2/ftpguest
3、配置mysql。
mysql -p
mysql>create database vsftpdvu;
mysql>use vsftpdvu;
mysql>create table users(name char(16) binary,passwd char(16) binary);
mysql>insert into users (name,passwd) values (‘xiaoli’,password(‘lixiao’));
mysql>quit
然后,授权vsftpdguest可以读vsftpdvu数据库的users表。执行以下命令:
mysql -u root mysql -p
mysql>grant select on vsftpdvu.users to vsftpdguest@localhost identified by ‘test’;
mysql>quit
如果要验证刚才的操作是否成功可以执行下面命令:
mysql -u vsftpdguest -ptest vsftpdvu
mysql>select * from users;
如果成功,将会列出xiaoli和加密后的密码
4、接下来,我们要设置vsftpd的PAM验证文件。打开/etc/pam.d/ftp文件,加入以下内容:
auth required pam_mysql.o user=ftpguest passwd=test host=localhost db=fvsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.o user=ftpguest passwd=test host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
  上面涉及到的参数,只要对应前面数据库的设置就可以明白它们的含义。这里需要说明的是crypt参数。crypt表示口令字段中口令的加密方式:crypt=0,口令以明文方式(不加密)保存在数据库中;crypt=1,口令使用UNIX系统的DES加密方式加密后保存在数据库中;crypt=2,口令经过MySQL的password()函数加密后保存。
5、设置VSFTPD配置文件
在/etc/vsftpd.conf文件中,加入以下选项:
guest_enable=YES
guest_username=ftpguest
6、网上说应该可以。可我不管怎么配置,都是530错误,不允许登陆。也就是密码错误。
继续研究中。。。

Leave a Reply

Your email address will not be published. Required fields are marked *