一、安裝所需要程式
1、事先安裝好開發環境和mysql資料庫;
<a href="http://blog.51cto.com/attachment/201304/230507417.png" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201304/230536517.png" target="_blank"></a>
首先配置好yum的server.repo檔案
[root@localhost yum.repos.d]# cd
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
//上邊是挂載鏡像,以便使用yum
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim server.repo
//添加内容
[base]
name=Instructor Server Repository
baseurl=file:///mnt/cdrom/Server //這裡的鏡像為本地挂載的
gpgcheck=0
[root@localhost ~]# yum -y install mysql-server mysql-devel
[root@localhost ~]# service mysqld start
[root@localhost ~]# yum -y groupinstall "Development Tools" "Development Libraries"
2.安裝pam_mysql-0.7RC1
這裡筆者在事先準備好的壓縮包拉近linux中,大家可以到網上下載下傳這個壓縮包。來按照下面的步驟實行:
<a href="http://blog.51cto.com/attachment/201304/230645990.png" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201304/230716381.png" target="_blank"></a>
然後關掉。回到linux中。ls檢視可以看到檔案已經在家目錄中了。
[root@localhost ~]# tar zxvf pam_mysql-0.7RC1.tar.gz
[root@localhost ~]# cd pam_mysql-0.7RC1
[root@localhost pam_mysql-0.7RC1] # ./configure --with-mysql=/usr --with-openssl
[root@localhost pam_mysql-0.7RC1] # make
[root@localhost pam_mysql-0.7RC1] # make install
3.安裝vsftpd
[root@localhost pam_mysql-0.7RC1]# yum -y install vsftpd
// 注:這個時候需要檢視下selinux服務是否開啟,因為他的開啟會對後邊的服務産生影響
[root@localhost ~]# getenforceEnforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforcePermissive
//當然。這裡也需要到vim /etc/selinux/config将其中的SELINUX=enforcing替換為SELINUX=permissive
二、建立虛拟使用者賬号
1.準備資料庫及相關表
首先請確定mysql服務已經正常啟動。而後,按需要建立存儲虛拟使用者的資料庫即可,這裡将其建立為vsftpd資料庫。
mysql> create database vsftpd;
mysql> grant select on vsftpd.* to vsftpd@localhost identified by 'doubao';
mysql> grant select on vsftpd.* to [email protected] identified by 'doubao';
mysql> flush privileges;
mysql> use vsftpd;
mysql> create table users (
-> id int AUTO_INCREMENT NOT NULL,
-> name char(20) binary NOT NULL,
-> password char(48) binary NOT NULL,
-> primary key(id)
-> );
2、添加測試的虛拟使用者
根據需要添加所需要的使用者,需要說明的是,這裡将其密碼采用明文格式存儲,原因是pam_mysql的password()函數與MySQL的password()函數可能會有所不同。
mysql> insert into users(name,password) values('tom','magedu');
mysql> insert into users(name,password) values('jerry','magedu');
mysql>\q
三、配置vsftpd
1.建立pam認證所需檔案
[root@localhost ~]# vi /etc/pam.d/vsftpd.mysql
添加如下兩行
auth required /lib/security/pam_mysql.so user=vsftpd passwd=doubao host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
account required /lib/security/pam_mysql.so user=vsftpd passwd=doubao host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
2.修改vsftpd的配置檔案,使其适應mysql認證
建立虛拟使用者映射的系統使用者及對應的目錄
[root@localhost ~]#useradd -s /sbin/nologin -d /var/ftproot vuser
[root@localhost ~]#chmod go+rx /var/ftproot
//請確定/etc/vsftpd/vsftpd.conf中已經啟用了以下選項
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
//而後添加以下選項
guest_enable=YES
guest_username=vuser
//并確定pam_service_name選項的值如下所示
pam_service_name=vsftpd.mysql
四、啟動vsftpd服務
[root@localhost ~]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@localhost ~]# chkconfig vsftpd on
//檢視端口開啟情況
[root@localhost ~]# netstat -tnlp |grep :21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 11336/vsftpd
使用虛拟使用者登入,驗正配置結果,以下為本機的指令方式測試,你也可以在其它Win Box上用IE或者FTP用戶端工具登入驗正
<a href="http://blog.51cto.com/attachment/201304/230800893.png" target="_blank"></a>
[root@localhost ~]# ftp localhost
<a href="http://blog.51cto.com/attachment/201304/230811434.png" target="_blank"></a>
五、配置虛拟使用者具有不同的通路權限
vsftpd可以在配置檔案目錄中為每個使用者提供單獨的配置檔案以定義其ftp服務通路權限,每個虛拟使用者的配置檔案名同虛拟使用者的使用者名。配置檔案目錄可以是任意未使用目錄,隻需要在vsftpd.conf指定其路徑及名稱即可。
1、配置vsftpd為虛拟使用者使用配置檔案目錄
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
//添加如下選項
user_config_dir=/etc/vsftpd/vusers_dir
2、建立所需要目錄,并為虛拟使用者提供配置檔案
[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/
[root@localhost ~]# cd /etc/vsftpd/vusers_dir/
[root@localhost ~]# touch tom jerry
3、配置虛拟使用者的通路權限
虛拟使用者對vsftpd服務的通路權限是通過匿名使用者的相關指令進行的。比如,如果需要讓tom使用者具有上傳檔案的權限,可以修改/etc/vsftpd/vusers/tom檔案,在裡面添加如下選項即可。
anon_upload_enable=YES
本文轉自 陳延宗 51CTO部落格,原文連結:http://blog.51cto.com/407711169/1179601,如需轉載請自行聯系原作者