歡迎您光臨本站 註冊首頁

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

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

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>

[ 本帖最後由 ljpwinxp 於 2008-7-10 17:40 編輯 ]
《解決方案》

請哪位哥哥幫我檢查一下啊
《解決方案》

請各位幫我看一下啦,我都已經搞了好些天都搞不定了
《解決方案》

selinux 作怪
《解決方案》

看看log,應該會有所幫助

[火星人 ] RedHat.Enterprise.Linux.5.Update.1 VSFTP+MYSQL 不成功已經有448次圍觀

http://coctec.com/docs/service/show-post-28805.html