標籤:mysql ftp伺服器 資料庫 database create
虛擬使用者:
所謂虛擬使用者,就是所有的虛擬使用者會被統一映射為一個指定的系統帳號,訪問的共用位置即為此系統帳號的家目錄。管理起來極為方便
實驗題目:FTP+MySQL
實驗目的:虛擬使用者存放在mysql表中,通過遠端方式實現對虛擬使用者的管理控制
實驗拓撲:
650) this.width=650;" title="@Y$ZN969`6NZ6OTUQS(9}QE.jpg " alt="wKiom1QLLeawGIoxAACuEzbY9Ik095.jpg" src="http://s3.51cto.com/wyfs02/M02/48/BB/wKiom1QLLeawGIoxAACuEzbY9Ik095.jpg" />
說明:這兩台伺服器可以合成一個,這裡分成兩個是為了實現讓ftp如何通過網路和mysql實現管理控制,同時這樣可以看得更直觀。
1.安裝mysql(192.168.0.3)
可以用yum安裝,也可以編譯安裝,前面已經介紹過mysql的安裝,這裡不再進行示範
安裝ftp伺服器和pam_mysql,這個包需要在網上下載(192.168.0.2)
#yum install vsftpd pam_mysql
2.準備資料庫及相關表
首先請確保mysql服務已經正常啟動。而後,按需要建立儲存虛擬使用者的資料庫即可,這裡將其建立為vsftpd資料庫。
mysql> create database vsftpd; mysql> grant select on vsftpd.* to [email protected]‘192.168.%.%‘ identified by ‘www.ky.com‘;mysql> flush privileges;
測試一下在ftp伺服器上是否能串連到mysql資料庫,可以串連。這個是在192.168.0.2上測試的
650) this.width=650;" title="20~@3CAJWB~HCHT((FVVL}V.jpg" alt="wKioL1QLLy7T4MXwAAGBfl3gXAI779.jpg" src="http://s3.51cto.com/wyfs02/M01/48/BD/wKioL1QLLy7T4MXwAAGBfl3gXAI779.jpg" />
3.建立表結構,添加資料(虛擬使用者的帳號和密碼)
根據需要添加所需要的使用者,需要說明的是,這裡將其密碼為了安全起見應該使用PASSWORD函數加密後儲存。
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) -> ); mysql> insert into users(name,password) values(‘vstom‘,password(‘www.ky.com‘));mysql> insert into users(name,password) values(‘vsjerry‘,password(‘www.ky.com‘));
650) this.width=650;" title="UPB)NWITZSQX(JR[OC5Y${N.jpg" alt="wKioL1QLMLrxwtQrAADayfoMfZI136.jpg" src="http://s3.51cto.com/wyfs02/M00/48/BD/wKioL1QLMLrxwtQrAADayfoMfZI136.jpg" />
4.配置vsftpd
建立pam認證所需檔案
查看pam_mysql.so放在哪個位置
650) this.width=650;" title="H3Y~PGJ$R`2[E3[2AK8CHVF.jpg " alt="wKiom1QLMSfik7VsAAFLP72JTUw527.jpg" src="http://s3.51cto.com/wyfs02/M00/48/BB/wKiom1QLMSfik7VsAAFLP72JTUw527.jpg" />
#vi /etc/pam.d/vsftpd.mysql
添加如下兩行
650) this.width=650;" title="V@Z~~(UVSMC018Y`PNI]I7Y.jpg " alt="wKioL1QLMYbTWUsYAAD2QnW5JyQ447.jpg" src="http://s3.51cto.com/wyfs02/M01/48/BD/wKioL1QLMYbTWUsYAAD2QnW5JyQ447.jpg" />
詳解:
user:遠端連線mysql的使用者名稱
password:遠端連線mysql的密碼
host:遠端連線mysql的伺服器位址
db:串連的資料庫名
table:串連資料庫中的表名
usercolumn:表中的欄位名
passwdcolumn:表中密碼欄位的名稱
crypt:該方法加密的密碼
0:沒有加密。密碼儲存在純文字
1:使用crypt(3)功能
2:使用mysql密碼
3:使用md5加密
4:使用sha加密
5.修改vsftpd的設定檔,使其適應mysql認證
建立虛擬使用者映射的系統使用者及對應的目錄
# useradd -s /bin/nologin -d /var/vftp kyfish# chmod go+rx /var/vftp
請確保/etc/vsftpd.conf中已經啟用了以下選項
anonymous_enable=YESlocal_enable=YESwrite_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOchroot_local_user=YES
而後添加以下選項
guest_enable=YESguest_username=kyfish 把來賓的使用者都映射為kyfish使用者
並確保pam_service_name選項的值如下所示
pam_service_name=vsftpd.mysql
用windows測試
650) this.width=650;" title="A`7TFI`1_X6}~(UFS6H2A2V.jpg " alt="wKiom1QLNJ-SydnrAAB-mGo93og271.jpg" src="http://s3.51cto.com/wyfs02/M02/48/BB/wKiom1QLNJ-SydnrAAB-mGo93og271.jpg" />
6.配置虛擬使用者具有不同的存取權限
vsftpd可以在設定檔目錄中為每個使用者提供單獨的設定檔以定義其ftp服務存取權限,每個虛擬使用者的設定檔名同虛擬使用者的使用者名稱。設定檔目錄可以是任意未使用目錄,只需要在vsftpd.conf指定其路徑及名稱即可。
配置vsftpd為虛擬使用者使用設定檔目錄
# vim vsftpd.conf
添加如下選項
user_config_dir=/etc/vsftpd/vusers
建立所需要目錄,並為虛擬使用者提供設定檔
# mkdir /etc/vsftpd/vusers# cd /etc/vsftpd/vusers# touch vstom vsjerry
配置虛擬使用者的存取權限
虛擬使用者對vsftpd服務的存取權限是通過匿名使用者的相關指令進行的。比如,如果管理vstom使用者的許可權,可以修改/etc/vsftpd/vusers /vstom檔案,在裡面添加如下選項即可。
local_root=/var/vftp/vstom 指定虛擬使用者自己的家目錄write_enable=YESanon_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=NO
這樣FTP+MySQL的實驗就成功了。
本文出自 “魚兒” 部落格,請務必保留此出處http://kyfish.blog.51cto.com/1570421/1549716
FTP+MySQL虛擬使用者