Linux下vsftpd+mysql虛擬使用者作法(轉)
Linux下vsftpd+mysql虛擬使用者作法(轉)[@more@]Debian Linux下vsftpd+mysql虛擬使用者作法
今天閒來無事做了個ftp,原因很簡單就是為了能在別處看到的好東西直接放到我的機器上,嘿嘿!linux下選擇ftp伺服器還真是不容易,經過一陣思索後就選擇了vsftpd,理由就是它號稱是linux下最安全的ftp伺服器還有還有好多的大型站點都用它來做伺服器(這樣用起來也比較有面子 :) )。為了怕在我輸入密碼時被別人偷看到然後登入我機器亂搞,在加上我本來就討厭系統有那麼多的使用者(其實也是像顯示自己的手平),所以我決定採用虛擬使用者,因為機器中裝有Mysql,於是我就想將虛擬使用者資料放在mysql中,好了,就侃到這裡,下面進入正題!
第一步:
安裝vsftpd
apt-get install vsftpd (Debian就是爽啊!)
系統會自動生成一個配置檔案和一個ftp使用者供匿名使用者使用,vsftpd使用PAM方式來驗證虛擬使用者,因為虛擬使用者的資訊儲存在資料庫中,所以我們還需要一個能夠讀取資料庫內容的本地使用者,而且還需要設定它的本地目錄:
#mkdir /var/ftp
#useradd -d ftpguest /var/ftp
#chown ftpguest.nogroup /var/ftp
第二步:安裝mysql
apt-get install mysql-server mysql-clent
建立資料庫,並新增使用者
#mysql -p mysql>create ftpu;
mysql>use ftpu;
mysql>create table user(name char(20) binary,passwd char(20) binary);
mysql>insert into user (name,passwd) values ('test1',password('1234567'));
mysql>insert into user (name,passwd) values ('test2',password('7654321'));
mysql>quit
讓ftpguest能訪問ftpu和表user:
#mysql -u root mysql -p mysql>grant select on ftpu.user to ftpguest@localhost identified by '123456';
mysql>quit
第三步:因為vsftpd是透過PAM驗證,所以我們還需要一個mysql透過PAM驗證的包,在Debian下它叫做libpam-mysql
apt-get install libpam-mysql
然後開啟vsftpd的PAM驗證:
#vi /etc/pam.d/vsftpd
將以前的內容註釋掉,然後加入以下內容:
auth required pam_mysql.so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2
上面的內容應該能看明白吧,那個crypt=2表示經過mysql的password()機密後的東西!
第四步:修改vsftpd.conf檔案
#vi /etc/vsftpd.conf
加入:
uest_enable=YES
guest_username=ftpguest
#表示ftpguest為vsftp的虛擬使用者
virtual_use_local_privs=YES
#虛擬使用者與本地使用者有相同的許可權
write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
#允許虛擬使用者上傳,修改和刪除檔案
chroot_local_user=YES
#虛擬使用者只能訪問自己的目錄
anonymous_enable=NO
local_enable=YES
#關閉匿名使用者訪問,開啟本地使用者訪問
第五步:
本來來到第四步已經完成了,可是後來一想,不對,那要是每次上傳的東西都不同,到時把那個目錄弄得亂七八糟的怎麼管理啊,能不能為每個虛擬使用者建立一個目錄呢,比如說將music使用者上傳的檔案放在放在~/music下,將doc使用者上傳的檔案放在~/doc下呢?
能!當然能了,看看我怎麼做?
首先在資料庫中新增music和doc兩個虛擬使用者接下來:
#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
大功告成,你明白了嗎?
轉貼
今天閒來無事做了個ftp,原因很簡單就是為了能在別處看到的好東西直接放到我的機器上,嘿嘿!linux下選擇ftp伺服器還真是不容易,經過一陣思索後就選擇了vsftpd,理由就是它號稱是linux下最安全的ftp伺服器還有還有好多的大型站點都用它來做伺服器(這樣用起來也比較有面子 :) )。為了怕在我輸入密碼時被別人偷看到然後登入我機器亂搞,在加上我本來就討厭系統有那麼多的使用者(其實也是像顯示自己的手平),所以我決定採用虛擬使用者,因為機器中裝有Mysql,於是我就想將虛擬使用者資料放在mysql中,好了,就侃到這裡,下面進入正題!
第一步:
安裝vsftpd
apt-get install vsftpd (Debian就是爽啊!)
系統會自動生成一個配置檔案和一個ftp使用者供匿名使用者使用,vsftpd使用PAM方式來驗證虛擬使用者,因為虛擬使用者的資訊儲存在資料庫中,所以我們還需要一個能夠讀取資料庫內容的本地使用者,而且還需要設定它的本地目錄:
#mkdir /var/ftp
#useradd -d ftpguest /var/ftp
#chown ftpguest.nogroup /var/ftp
第二步:安裝mysql
apt-get install mysql-server mysql-clent
建立資料庫,並新增使用者
#mysql -p mysql>create ftpu;
mysql>use ftpu;
mysql>create table user(name char(20) binary,passwd char(20) binary);
mysql>insert into user (name,passwd) values ('test1',password('1234567'));
mysql>insert into user (name,passwd) values ('test2',password('7654321'));
mysql>quit
讓ftpguest能訪問ftpu和表user:
#mysql -u root mysql -p mysql>grant select on ftpu.user to ftpguest@localhost identified by '123456';
mysql>quit
第三步:因為vsftpd是透過PAM驗證,所以我們還需要一個mysql透過PAM驗證的包,在Debian下它叫做libpam-mysql
apt-get install libpam-mysql
然後開啟vsftpd的PAM驗證:
#vi /etc/pam.d/vsftpd
將以前的內容註釋掉,然後加入以下內容:
auth required pam_mysql.so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.so user=ftpguest passwd=123456 host=localhost db=ftpu table=user usercolumn=name passwdcolumn=passwd crypt=2
上面的內容應該能看明白吧,那個crypt=2表示經過mysql的password()機密後的東西!
第四步:修改vsftpd.conf檔案
#vi /etc/vsftpd.conf
加入:
uest_enable=YES
guest_username=ftpguest
#表示ftpguest為vsftp的虛擬使用者
virtual_use_local_privs=YES
#虛擬使用者與本地使用者有相同的許可權
write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
#允許虛擬使用者上傳,修改和刪除檔案
chroot_local_user=YES
#虛擬使用者只能訪問自己的目錄
anonymous_enable=NO
local_enable=YES
#關閉匿名使用者訪問,開啟本地使用者訪問
第五步:
本來來到第四步已經完成了,可是後來一想,不對,那要是每次上傳的東西都不同,到時把那個目錄弄得亂七八糟的怎麼管理啊,能不能為每個虛擬使用者建立一個目錄呢,比如說將music使用者上傳的檔案放在放在~/music下,將doc使用者上傳的檔案放在~/doc下呢?
能!當然能了,看看我怎麼做?
首先在資料庫中新增music和doc兩個虛擬使用者接下來:
#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
大功告成,你明白了嗎?
轉貼
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-952384/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ubuntu 下 vsftpd的虛擬使用者配置(轉)UbuntuFTP
- linux下虛擬光碟機的產生(轉)Linux
- Linux中Postfix虛擬使用者及虛擬域(六)Linux
- linux 虛擬機器下 安裝redisLinux虛擬機Redis
- 在linux下安裝mozilla和konquerer的java虛擬機器(轉)LinuxJava虛擬機
- 安裝虛擬Redhat Linux,物理硬碟與虛擬硬碟共存的問題(轉)RedhatLinux硬碟
- 虛擬機器下安裝 linux6虛擬機Linux
- Linux下的虛擬Bridge實現 ###############3Linux
- 轉:虛擬機器中為Linux新增硬碟虛擬機Linux硬碟
- Windows下的虛擬主機設定全功略(轉)Windows
- 虛擬機器下安裝問題 求助(轉)虛擬機
- 不用虛擬機器也能在Windows下使用Linux虛擬機WindowsLinux
- Linux下FTP虛擬賬號環境部署總結LinuxFTP
- Linux 配置虛擬IPLinux
- 網路虛擬化之linux虛擬網路基礎Linux
- vsftp vuser虛擬使用者FTP
- 如何在windows下進行LINUX虛擬機器搭建WindowsLinux虛擬機
- Linux下使用 virtualenv 虛擬獨立 Python 環境LinuxPython
- VMware下LINUX的虛擬機器增加磁碟空間Linux虛擬機
- 虛擬機器下搭建Linux Oracle10g DataGuard虛擬機LinuxOracle
- Linux vsftp vuer虛擬使用者的建立批次指令碼LinuxFTPVue指令碼
- Java虛擬機器(轉)Java虛擬機
- Win9x下虛擬光碟機的檢測 (轉)
- Linux 虛擬記憶體Linux記憶體
- Linux 虛擬滑鼠,鍵盤Linux
- <llinux下kvm虛擬化>Linux
- 虛擬機器映象下載虛擬機
- VMware Fusion下建立Oracle Linux虛擬機器環境-續OracleLinux虛擬機
- linux 下虛擬機器的安裝與解除安裝Linux虛擬機
- 虛擬機器下linux OS如何給系統新增磁碟虛擬機Linux
- 戴爾技術總監:虛擬技術將解放Linux(轉)Linux
- Linux世界貿易展:AMD推虛擬化技術(轉)Linux
- Linux叢集技術的熱點-虛擬技術(轉)Linux
- aolserver中使用虛擬域(轉)Server
- 虛擬鍵碼錶(windows) (轉)Windows
- 虛擬機器上網(轉)虛擬機
- 使用者態程式的虛擬地址如何轉換成實體地址
- ProFTPD支援MySQL新增虛擬使用者認證及磁碟限額(轉)FTPMySql