RedHat.Enterprise.Linux.5.Update.1 VSFTP+MYSQL 不成功

RedHat.Enterprise.Linux.5.Update.1 VSFTP+MYSQL 不成功

先说明一下环境:
OS:RedHat.Enterprise.Linux.5.Update.1
安装时只选择所有的开发工具包和中文支持包,安装装是选的是英文的,没有图形界面。
现在我想用VSFTP 做一个FTP服务 用MYSQL 虚拟用户的形式做认证。
windows客户端可以上传文件到FTP服务器,但是上传去的文件在LINUX目录下文件是乱码.公司里有用繁体的XP和简体的XP,能不能让这两种系统都能正确的看到中文的文件和目录呢。在网上找了很多文章对着做,最后都不行。


现在贴出安装过程:
# mkdir /var/ftp
# chown root:root /var/ftp/
# tar -zxvf vsftpd-2.0.6.tar.gz
//进入解压后的目录, 编辑以下文件
# vi builddefs.h
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
将以上文件中的undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL
//编译
make
make install
//安装vsftp配置文件
# cp vsftpd.conf /etc/
# cp RedHat/vsftpd.pam /etc/pam.d/vsftp
//修改vsftp参数
# vi /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=ftpd
listen=YES
listen_port=21
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
anon_world_readable_only=NO
virtual_use_local_privs=YES
//开机自起动
提取RPM包中的vsftpd 到/etc/rc.d/init.d/目录下
# mkdir /etc/vsftpd
# ln -s /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf
# ln -s /usr/local/sbin/vsftpd /usr/sbin/vsftpd
# vi /etc/rc.d/init.d/vsftpd
修改这一行为daemon /usr/sbin/vsftpd $i &
# chkconfig --add vsftpd
# chkconfig --level 3 vsftpd on
# chkconfig --level 5 vsftpd on
至此vsftpd 已经可以用service vsftpd start|stop|restart来控制了
//添加虚拟用户
# useradd -d /home/ftpd -s /sbin/nologin ftpd //密码为123456
//安装MYSQL
下载:
MySQL-client-community-5.0.51a-0.rhel5.i386.rpm
MySQL-server-community-5.0.51a-0.rhel5.i386.rpm
MySQL-shared-community-5.0.51a-0.rhel5.i386.rpm
MySQL-devel-community-5.0.51a-0.rhel5.i386.rpm
Rea hat光盘中有:
perl-DBI-1.52-1.fc6.i386.rpm
# rpm -ivh perl-DBI-1.52-1.fc6.i386.rpm
# rpm -ivh MySQL-client-community-5.0.51a-0.rhel5.i386.rpm
# rpm -ivh MySQL-server-community-5.0.51a-0.rhel5.i386.rpm
# rpm -ivh MySQL-shared-community-5.0.51a-0.rhel5.i386.rpm
# rpm -ivh MySQL-devel-community-5.0.51a-0.rhel5.i386.rpm
以上全部没有报错
# usr/bin/mysqladmin -u root password 你的密码
# mysql –u root -h localhost -p
mysql>;create database vsftpd;
mysql>;use vsftpd;
mysql>;create table users(name char(20) binary,passwd char(20) binary);
mysql>;insert into users(name,passwd) values ('test1','12345');
mysql>;insert into users(name,passwd) values ('test2','54321');
mysql>;grant select on vsftpd.users to ftpd@localhost identified by '123456';
mysql>;flush privileges;
mysql>;quit
用ftpd这个用户能读取mysql里面的数据了,密码和用户名看到的都是明文的
安装pam_mysql-0.6.2-4.fc6.i386.rpm
# rpm -ivh pam_mysql-0.6.2-4.fc6.i386.rpm
没有报错,在/lib/security/目录下能看到pam_mysql.so
//设置MySQL的PAM验证
编辑/etc/pam.d/vsftpd为下面内容(只保留以下内容)
# vi /etc/pam.d/vsftpd
auth required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=vsftpd table=users
usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=ftpd passwd=123456 host=localhost db=vsftpd table=users
usercolumn=name passwdcolumn=passwd crypt=0
# wc -l /etc/pam.d/vsftpd
4 /etc/pam.d/vsftpd
测试:
ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.6)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): test1
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp>
有没有帮我看一下啊