程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> vsftpd+MySQL創建虛擬用戶在Debian Linux之下

vsftpd+MySQL創建虛擬用戶在Debian Linux之下

編輯:MySQL綜合教程

以下的文章主要講述的是Debian Linux下對vsftpd+MySQL虛擬用戶的具體作法,我前兩天在相關網站看見Debian Linux下對vsftpd+MySQL虛擬用戶的資料,覺得挺好,就拿出來供大家分享。

今天閒來無事做了個ftp,原因很簡單就是為了能在別處看到的好東西直接放到我的機器上,嘿嘿!linux下選擇ftp服務器還真是不容易,經過一陣思索後就選擇了vsftpd,理由就是它號稱是linux下最安全的ftp服務器還有還有好多的大型站點都用它來做服務器(這樣用起來也比較有面子 :) )。

為了怕在我輸入密碼時被別人偷看到然後登入我機器亂搞,在加上我本來就討厭系統有那麼多的用戶(其實也是像顯示自己的手平),所以我決定采用虛擬用戶,因為機器中裝有MySQL(和PHP搭配之最佳組合),於是我就想將vsftpd+MySQL虛擬用戶數據放在MySQL(和PHP搭配之最佳組合)中,好了,就侃到這裡,下面進入正題!

第一步:

安裝vsftpd

apt-get install vsftpd (Debian就是爽啊!)

系統會自動生成一個配置文件和一個ftp用戶供匿名用戶使用,vsftpd使用pam方式來驗證虛擬用戶,因為vsftpd+MySQL虛擬用戶的信息保存在數據庫中,所以我們還需要一個能夠讀取數據庫內容的本地用戶,而且還需要設置它的本地目錄:

  1. #mkdir /var/ftp  
  2. #useradd -d ftpguest /var/ftp  
  3. #chown ftpguest.nogroup /var/ftp  

第二步:安裝MySQL(和PHP搭配之最佳組合)

apt-get install MySQL(和PHP搭配之最佳組合)-server MySQL(和PHP搭配之最佳組合)-clent

建立數據庫,並添加用戶

  1. #MySQL(和PHP搭配之最佳組合) -p MySQL(和PHP搭配之最佳組合)>create ftpu;   
  2. MySQL(和PHP搭配之最佳組合)>use ftpu;   
  3. MySQL(和PHP搭配之最佳組合)>create table user(name char(20) binary,passwd char(20) binary);   
  4. MySQL(和PHP搭配之最佳組合)>insert into user (name,passwd) values ('test1',password('1234567'));   
  5. MySQL(和PHP搭配之最佳組合)>insert into user (name,passwd) values ('test2',password('7654321'));   
  6. MySQL(和PHP搭配之最佳組合)>quit   
  7. 讓ftpguest能訪問ftpu和表user:   
  8. #MySQL(和PHP搭配之最佳組合) -u root MySQL(和PHP搭配之最佳組合) 
    -p MySQL(和PHP搭配之最佳組合)>grant select on ftpu.user to ftpguest@localhost identified by '123456';   

MySQL(和PHP搭配之最佳組合)>quit

第三步:因為vsftpd是通過PAM驗證

所以我們還需要一個MySQL(和PHP搭配之最佳組合)通過PAM驗證的包,在Debian下它叫做libpam-MySQL(和PHP搭配之最佳組合)

apt-get install libpam-MySQL(和PHP搭配之最佳組合)

然後打開vsftpd的pam驗證:

  1. #vi /etc/pam.d/vsftpd  

將以前的內容注釋掉,然後加入以下內容:

auth required pam_MySQL(和PHP搭配之最佳組合).so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2

account required pam_MySQL(和PHP搭配之最佳組合).so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2

上面的內容應該能看明白吧,那個crypt=2表示經過MySQL(和PHP搭配之最佳組合)的password()機密後的東西!

第四步:修改vsftpd.conf文件

  1. #vi /etc/vsftpd.conf  

加入:

  1. uest_enable=yes   
  2. guest_username=ftpguest   
  3. #表示ftpguest為vsftp的虛擬用戶   
  4. virtual_use_local_privs=yes   
  5.  

vsftpd+MySQL虛擬用戶與本地用戶有相同的權限

  1. write_enable=yes   
  2. anon_upload_enable=yes   
  3. anon_other_write_enable=yes   

允許虛擬用戶上傳,修改和刪除文件

  1. chroot_local_user=yes  

虛擬用戶只能訪問自己的目錄

  1. anonymous_enable=no   
  2. local_enable=yes   

關閉匿名用戶訪問,開啟本地用戶訪問

第五步:

本來來到第四步已經完成了,可是後來一想,不對,那要是每次上傳的東西都不同,到時把那個目錄弄得亂七八糟的怎麼管理啊,能不能為每個vsftpd+MySQL虛擬用戶創建一個目錄呢,比如說將music用戶上傳的文件放在放在~/music下,將doc用戶上傳的文件放在~/doc下呢?

能!當然能了,看看我怎麼做?

首先在數據庫中添加music和doc兩個vsftpd+MySQL虛擬用戶接下來:

  1. #mkdir /etc/vsftpd_user_conf   
  2. #cd /etc/vsftpd_user_conf   
  3. #touch music   
  4. #echo "local_root=/home/username/music" > music   
  5. #touch doc   
  6. #echo "local_root=/home/username/doc" > doc   
  7. #mkdir /home/username/music   
  8. #chown ftpguest.nogroup /home/username/music   
  9. #chmod 600 /home/username/music   
  10. #chown ftpguest.nogroup /home/username/doc   
  11. #chmod 600 /home/username/doc   

然後在vsftpd.conf中加入: user_config_dir=/etc/vsftpd_user_conf,大功告成,你明白了嗎?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved