vsftpd+pam+mysql實現ftp構建

來源:互聯網
上載者:User

 

 一、安裝所需要程式 1、事先安裝好開發環境和mysql資料庫; 

650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131227/1Z00a648-0.png" />

 

650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131227/1Z0095U0-1.png" />

首先配置好yum的server.repo檔案
 
  1. [root@localhost yum.repos.d]# cd  
  2. [root@localhost ~]# mkdir /mnt/cdrom  
  3. [root@localhost ~]# mount /dev/cdrom /mnt/cdrom/  
  4. //上邊是掛載鏡像,以便使用yum  
  5. [root@localhost ~]# cd /etc/yum.repos.d/  
  6. [root@localhost yum.repos.d]# vim server.repo  
  7. //新增內容  
  8. [base]  
  9. name=Instructor Server Repository  
  10. baseurl=file:///mnt/cdrom/Server //這裡的鏡像為本地掛載的  
  11. gpgcheck=0 
  12.    
  13. [root@localhost ~]# yum -y install mysql-server mysql-devel  
  14. [root@localhost ~]# service mysqld start  
  15. [root@localhost ~]# yum -y groupinstall "Development Tools" "Development Libraries"  
 2.安裝pam_mysql-0.7RC1 這裡筆者在事先準備好的壓縮包拉近linux中,大家可以到網上下載這個壓縮包。來按照下面的步驟實行: 

650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131227/1Z0091537-2.png" />

 

650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/attachment/201304/230716381.png" />

然後關掉。回到linux中。ls查看可以看到檔案已經在家目錄中了。
 
  1. [root@localhost ~]# tar zxvf pam_mysql-0.7RC1.tar.gz  
  2. [root@localhost ~]# cd pam_mysql-0.7RC1  
  3. [root@localhost pam_mysql-0.7RC1] # ./configure --with-mysql=/usr --with-openssl  
  4. [root@localhost pam_mysql-0.7RC1] # make  
  5. [root@localhost pam_mysql-0.7RC1] # make install  
 3.安裝vsftpd 
 
  1. [root@localhost pam_mysql-0.7RC1]# yum -y install vsftpd  
  2. // 註:這個時候需要查看下selinux服務是否開啟,因為他的開啟會對後邊的服務產生影響   
  3. [root@localhost ~]# getenforceEnforcing  
  4. [root@localhost ~]# setenforce 0  
  5. [root@localhost ~]# getenforcePermissive  
  6. //當然。這裡也需要到vim /etc/selinux/config將其中的SELINUX=enforcing替換為SELINUX=permissive   
 二、建立虛擬使用者帳號 1.準備資料庫及相關表 首先請確保mysql服務已經正常啟動。而後,按需要建立儲存虛擬使用者的資料庫即可,這裡將其建立為vsftpd資料庫。 
 
  1. mysql> create database vsftpd;  
  2.    
  3. mysql> grant select on vsftpd.* to vsftpd@localhost identified by 'doubao';  
  4. mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'doubao';  
  5. mysql> flush privileges;  
  6.    
  7. mysql> use vsftpd;  
  8. mysql> create table users (  
  9.     -> id int AUTO_INCREMENT NOT NULL,  
  10.     -> name char(20) binary NOT NULL,  
  11.     -> password char(48) binary NOT NULL,  
  12.     -> primary key(id)  
  13.     -> );  
 2、添加測試的虛擬使用者 根據需要添加所需要的使用者,需要說明的是,這裡將其密碼採用明文格式儲存,原因是pam_mysql的password()函數與MySQL的password()函數可能會有所不同。 
 
  1. mysql> insert into users(name,password) values('tom','magedu');  
  2. mysql> insert into users(name,password) values('jerry','magedu');  
  3. mysql>\q  
 三、配置vsftpd 1.建立pam認證所需檔案 
 
  1. [root@localhost ~]# vi /etc/pam.d/vsftpd.mysql  
  2. 添加如下兩行  
  3. auth required /lib/security/pam_mysql.so user=vsftpd passwd=doubao host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0 
  4. 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認證 建立虛擬使用者映射的系統使用者及對應的目錄
 
  1. [root@localhost ~]#useradd -s /sbin/nologin -d /var/ftproot vuser  
  2. [root@localhost ~]#chmod go+rx /var/ftproot  
  3.    
  4. //請確保/etc/vsftpd/vsftpd.conf中已經啟用了以下選項  
  5.    
  6. anonymous_enable=YES 
  7. local_enable=YES 
  8. write_enable=YES 
  9. anon_upload_enable=NO 
  10. anon_mkdir_write_enable=NO 
  11. chroot_local_user=YES 
  12.    
  13. //而後添加以下選項  
  14. guest_enable=YES 
  15. guest_username=vuser 
  16.    
  17. //並確保pam_service_name選項的值如下所示  
  18. pam_service_name=vsftpd.mysql  
  四、啟動vsftpd服務 
 
  1. [root@localhost ~]# service vsftpd start  
  2. Starting vsftpd for vsftpd:                                [ OK ]  
  3. [root@localhost ~]# chkconfig vsftpd on  
  4. //查看連接埠開啟情況  
  5.    
  6. [root@localhost ~]# netstat -tnlp |grep :21  
  7. tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      11336/vsftpd  
使用虛擬使用者登入,驗正配置結果,以下為原生命令方式測試,你也可以在其它Win Box上用IE或者FTP用戶端工具登入驗正 

650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/attachment/201304/230800893.png" />

 
  1. [root@localhost ~]# ftp localhost  

 

650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131227/1Z0091U4-5.png" />

 五、配置虛擬使用者具有不同的存取權限 vsftpd可以在設定檔目錄中為每個使用者提供單獨的設定檔以定義其ftp服務存取權限,每個虛擬使用者的設定檔名同虛擬使用者的使用者名稱。設定檔目錄可以是任意未使用目錄,只需要在vsftpd.conf指定其路徑及名稱即可。 1、配置vsftpd為虛擬使用者使用設定檔目錄 
 
  1. [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf  
  2. //添加如下選項  
  3. user_config_dir=/etc/vsftpd/vusers_dir   
 2、建立所需要目錄,並為虛擬使用者提供設定檔 
 
  1. [root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/  
  2. [root@localhost ~]# cd /etc/vsftpd/vusers_dir/  
  3. [root@localhost ~]# touch tom jerry  
 3、配置虛擬使用者的存取權限 虛擬使用者對vsftpd服務的存取權限是通過匿名使用者的相關指令進行的。比如,如果需要讓tom使用者具有上傳檔案的許可權,可以修改/etc/vsftpd/vusers/tom檔案,在裡面添加如下選項即可。anon_upload_enable=YES

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.