所需軟件: 1.vsftpd-2.0.6.tar.gz 2.pam_mysql-0.7RC1.tar.gz 3.Mysql5.0.27 1、安裝vsftpd [root@ganwenliang soft]# tar xzfv vsftpd-2.0.6.tar.gz [root@ganwenliang vsftpd-2.0.6]# make [root@ganwenliang vsftpd-2.0.6]# make install [root@ganwenliang vsftpd-2.0.6]# cp vsftpd.conf /etc 在系統中添加用戶soft,做爲guest用戶 [root@ganwenliang vsftpd-2.0.6]# adduser soft 編輯vsftpd.conf在最下面加入下面三行: guest_enable=YES guest_username=soft listen=YES 啓運vsftpd: [root@ganwenliang vsftpd-2.0.6]# /usr/local/sbin/vsftpd & 若是你們遇到諸如「vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable」的報錯的話,能夠看一下我這篇文章, 2、安裝MySQL [root@ganwenliang soft]# tar -zvxf mysql-max-5.0.27.tar.gz [root@ganwenliang soft]# cd mysql-max-5.0.27 [root@ganwenliang mysql-max-5.0.27]# ./configure --prefix=/usr/local/mysql [root@ganwenliang mysql-max-5.0.27]# make [root@ganwenliang mysql-max-5.0.27]# make install [root@ganwenliang mysql-max-5.0.27]# cp support-files/my-medium.cnf /etc/my.cnf 添加mysql用戶及用戶組 [root@ganwenliang soft]# groupadd mysql [root@ganwenliang soft]# useradd -g mysql mysql 修改mysql目錄權限 [root@ganwenliang soft]# chown -R root /usr/local/mysql [root@ganwenliang soft]# chgrp -R mysql /usr/local/mysql [root@ganwenliang soft]# chown -R mysql /usr/local/mysql/var 生成mysql系統數據庫 [root@ganwenliang soft]# /usr/local/mysql/bin/mysql_install_db --user=mysql 啓動mysql服務 [root@ganwenliang soft]# /usr/local/mysql/bin/mysqld_safe --user=mysql & 如出現 Starting mysqld daemon with databases from /usr/local/mysql/var 表明正常啓動mysql服務了, 按Ctrl + C 跳出 修改 mysql 的 root 密碼 [root@ganwenliang soft]# /usr/local/mysql/bin/mysqladmin -u root -p password "123456" 創建相應的數據庫、表來存放FTP用戶數據: create database ftp; CREATE TABLE `logs` ( `msg` varchar(255) default NULL, `user` char(16) default NULL, `pid` int(11) default NULL, `host` char(32) default NULL, `rhost` char(32) default NULL, `logtime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=gb2312; # # Table structure for table users # DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `name` char(16) character set gb2312 collate gb2312_bin default NULL, `passwd` char(48) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=gb2312; 若是你們遇到說找不到gb2312的錯誤提示的話,能夠從新編譯mysql,讓其支持gbk。還有一個方法是將上面sql語句中的「 DEFAULT CHARSET=gb2312」去掉 3、安裝Pam_mysql [root@ganwenliang soft]# tar xzfv pam_mysql-0.7pre3 [root@ganwenliang soft]# cd pam_mysql-0.7pre3 由於我這人是本身安裝的Mysql,因此要設置兩個軟連接,不然pam_mysql編譯會通不過 [root@ganwenliang pam_mysql-0.7pre3]# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql [root@ganwenliang pam_mysql-0.7pre3]# ln -s /usr/local/mysql/include/mysql /usr/include/mysql 如今開始編譯: [root@ganwenliang pam_mysql-0.7pre3]# ./configure --with-openssl [root@ganwenliang pam_mysql-0.7pre3]# make [root@ganwenliang pam_mysql-0.7pre3]# make install [root@ganwenliang security]# ls classpath.security libgcj.security pam_mysql.la pam_mysql.so [root@ganwenliang security]# pwd /usr/lib/security [root@ganwenliang security]# 完成後,咱們須要的pam_mysql.so就在這個目錄了4、配置pam文件 要想實現虛擬用戶和本地用戶同時可以驗證pam文件必須使用這兩個參數sufficient和required 這是個人vsftpd.mysql文件,你們能夠參考: 前面2行用於虛擬用戶認證,當認證不經過時,自動驗證本地用戶(後面5行) auth sufficient /usr/lib/security/pam_mysql.so user=root passwd=mysql_password host=localhost db=ftp table=users usercolumn=name passwdcolumn=passwd crypt=2 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid log hostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1 account sufficient /usr/lib/security/pam_mysql.so user=root passwd=mysql_password host=localhost db=ftp table=users usercolumn=name passwdcolumn=passwd crypt=2 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1 auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed 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 其中 user=root passwd=mysql_password 爲你mysql的用戶名和密碼,請注意修改一下 個人vsftpd.conf部份內容給你們參考: guest_enable=YES guest_username=soft pam_service_name=/etc/pam.d/vsftpd.mysql user_config_dir=/etc/vsftpd/vsftpd_user userlist_enable=YES listen=YES tcp_wrappers=YES 如需給用戶設置單獨的權限,在/etc/vsftpd/vsftpd_user 創建以用戶命名的文件,如test, 而後 vi /etc/vsftpd/vsftpd_user/test,將下面代碼複製進去 #anon_world_readable_only=NO 之後過程在RHEL AS5 中驗證經過,你們有什麼問題能夠給我留言,也歡迎你們訪問個人網站, sql |