vsftpd+MySQL創(chuàng)建虛擬用戶在Debian Linux之下
以下的文章主要講述的是Debian Linux下對(duì)vsftpd+MySQL虛擬用戶的具體作法,我前兩天在相關(guān)網(wǎng)站看見Debian Linux下對(duì)vsftpd+MySQL虛擬用戶的資料,覺得挺好,就拿出來供大家分享。
今天閑來無事做了個(gè)ftp,原因很簡單就是為了能在別處看到的好東西直接放到我的機(jī)器上,嘿嘿!linux下選擇ftp服務(wù)器還真是不容易,經(jīng)過一陣思索后就選擇了vsftpd,理由就是它號(hào)稱是linux下最安全的ftp服務(wù)器還有還有好多的大型站點(diǎn)都用它來做服務(wù)器(這樣用起來也比較有面子 :) )。
為了怕在我輸入密碼時(shí)被別人偷看到然后登入我機(jī)器亂搞,在加上我本來就討厭系統(tǒng)有那么多的用戶(其實(shí)也是像顯示自己的手平),所以我決定采用虛擬用戶,因?yàn)闄C(jī)器中裝有MySQL(和PHP搭配之最佳組合),于是我就想將vsftpd+MySQL虛擬用戶數(shù)據(jù)放在MySQL(和PHP搭配之最佳組合)中,好了,就侃到這里,下面進(jìn)入正題!
第一步:
安裝vsftpd
apt-get install vsftpd (Debian就是爽??!)
系統(tǒng)會(huì)自動(dòng)生成一個(gè)配置文件和一個(gè)ftp用戶供匿名用戶使用,vsftpd使用pam方式來驗(yàn)證虛擬用戶,因?yàn)関sftpd+MySQL虛擬用戶的信息保存在數(shù)據(jù)庫中,所以我們還需要一個(gè)能夠讀取數(shù)據(jù)庫內(nèi)容的本地用戶,而且還需要設(shè)置它的本地目錄:
- #mkdir /var/ftp
- #useradd -d ftpguest /var/ftp
- #chown ftpguest.nogroup /var/ftp
第二步:安裝MySQL(和PHP搭配之最佳組合)
apt-get install MySQL(和PHP搭配之最佳組合)-server MySQL(和PHP搭配之最佳組合)-clent
建立數(shù)據(jù)庫,并添加用戶
- #MySQL(和PHP搭配之最佳組合) -p MySQL(和PHP搭配之最佳組合)>create ftpu;
- MySQL(和PHP搭配之最佳組合)>use ftpu;
- MySQL(和PHP搭配之最佳組合)>create table user(name char(20) binary,passwd char(20) binary);
- MySQL(和PHP搭配之最佳組合)>insert into user (name,passwd) values ('test1',password('1234567'));
- MySQL(和PHP搭配之最佳組合)>insert into user (name,passwd) values ('test2',password('7654321'));
- MySQL(和PHP搭配之最佳組合)>quit
- 讓ftpguest能訪問ftpu和表user:
- #MySQL(和PHP搭配之最佳組合) -u root MySQL(和PHP搭配之最佳組合)
-p MySQL(和PHP搭配之最佳組合)>grant select on ftpu.user to ftpguest@localhost identified by '123456';
MySQL(和PHP搭配之最佳組合)>quit
第三步:因?yàn)関sftpd是通過PAM驗(yàn)證
所以我們還需要一個(gè)MySQL(和PHP搭配之最佳組合)通過PAM驗(yàn)證的包,在Debian下它叫做libpam-MySQL(和PHP搭配之最佳組合)
apt-get install libpam-MySQL(和PHP搭配之最佳組合)
然后打開vsftpd的pam驗(yàn)證:
- #vi /etc/pam.d/vsftpd
將以前的內(nèi)容注釋掉,然后加入以下內(nèi)容:
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
上面的內(nèi)容應(yīng)該能看明白吧,那個(gè)crypt=2表示經(jīng)過MySQL(和PHP搭配之最佳組合)的password()機(jī)密后的東西!
第四步:修改vsftpd.conf文件
- #vi /etc/vsftpd.conf
加入:
- uest_enable=yes
- guest_username=ftpguest
- #表示ftpguest為vsftp的虛擬用戶
- virtual_use_local_privs=yes
vsftpd+MySQL虛擬用戶與本地用戶有相同的權(quán)限
- write_enable=yes
- anon_upload_enable=yes
- anon_other_write_enable=yes
允許虛擬用戶上傳,修改和刪除文件
- chroot_local_user=yes
虛擬用戶只能訪問自己的目錄
- anonymous_enable=no
- local_enable=yes
關(guān)閉匿名用戶訪問,開啟本地用戶訪問
第五步:
本來來到第四步已經(jīng)完成了,可是后來一想,不對(duì),那要是每次上傳的東西都不同,到時(shí)把那個(gè)目錄弄得亂七八糟的怎么管理啊,能不能為每個(gè)vsftpd+MySQL虛擬用戶創(chuàng)建一個(gè)目錄呢,比如說將music用戶上傳的文件放在放在~/music下,將doc用戶上傳的文件放在~/doc下呢?
能!當(dāng)然能了,看看我怎么做?
首先在數(shù)據(jù)庫中添加music和doc兩個(gè)vsftpd+MySQL虛擬用戶接下來:
- #mkdir /etc/vsftpd_user_conf
- #cd /etc/vsftpd_user_conf
- #touch music
- #echo "local_root=/home/username/music" > music
- #touch doc
- #echo "local_root=/home/username/doc" > doc
- #mkdir /home/username/music
- #chown ftpguest.nogroup /home/username/music
- #chmod 600 /home/username/music
- #chown ftpguest.nogroup /home/username/doc
- #chmod 600 /home/username/doc
然后在vsftpd.conf中加入: user_config_dir=/etc/vsftpd_user_conf,大功告成,你明白了嗎?
【編輯推薦】
- 實(shí)現(xiàn)MySQL自動(dòng)啟動(dòng)很簡單
- MySQL數(shù)據(jù)庫的同步實(shí)例的實(shí)際操作
- 修改MySQL root密碼5步驟介紹
- 提高M(jìn)ySQL連接數(shù),很簡單
- 獲得MySQL運(yùn)行報(bào)告,并不難