數(shù)據(jù)推送系統(tǒng)之虛擬用戶FTP推送

1. 總體需求

根據(jù)用戶的訂閱數(shù)據(jù)信息,需要為該用戶提供FTP訪問空間姑蓝,定時推送至該用戶ftp路徑下唆貌。具體要求如下:
- 該用戶不允許切換路徑
- 只有只讀權(quán)限
- 通過Mysql來驗證FTP登陸
- 對外提供服務(wù)接口動態(tài)創(chuàng)建ftp虛擬用戶

2. 使用服務(wù)管理軟件安裝vsftp

  1. 首先在服務(wù)器上需要安裝vsftp服務(wù)。使用命令:“yum -y install vsftpd mysql-devel pam_mysql”蕉朵。 (注:會安裝vsftp及pam的mysql認(rèn)證程序)
  2. 停止原先服務(wù)器管理軟件自帶的服務(wù)proftpd腥光。啟動安裝的vsftpd服務(wù)关顷。使用命令:“service proftpd stop; service vsftpd start;”。
  3. 服務(wù)管理軟件配置(Webmin1.831 based on CentOS 6.8 ):使用root賬號登陸后武福,左側(cè)點擊“Webmin”Tab頁议双,點擊”Webmin配置”;
    4.從ftp或url安裝捉片,輸入安裝地址(vsftpd的webmin模塊地址 http://www.ctohome.com/linux-vps-pack/soft/virtualmin/vsftpd4webmin.tar.gz平痰。地址可能失效,需要找可用的地址)伍纫,見下圖1宗雇,圖2。
  4. 服務(wù)管理軟件莹规,左側(cè)下方點擊刷新模塊赔蒲。再點擊左側(cè)“服務(wù)器”->“Vsftpd”,進(jìn)入vsftpd的配置頁面良漱。出現(xiàn)圖3頁面舞虱,則配置成功。
圖1.png

圖1

圖2.png
圖3.png

3. vsftpd 配置

首先進(jìn)一步配置vsftpd母市。登陸服務(wù)器或登錄服務(wù)管理軟件WebIm矾兜。(這里以直接操作服務(wù)器終端為例)。登陸服務(wù)器后患久,進(jìn)入路徑“/etc/vsftpd”,編輯vsftpd.conf文件椅寺。各項配置可參考vsftpd官網(wǎng)手冊浑槽。重要配置(但不限于):用戶配置路徑,ftp用戶名,虛擬用戶的權(quán)限等返帕。見圖4桐玻。
然后,為在配置文件中指定的ftp用戶創(chuàng)建用戶配置文件溉旋,配置文件的目錄為vsftpd.conf文件中user_config_dir=/etc/vsftpd/vuser_conf畸冲。故嫉髓,本文為/etc/vsftpd/vuser_conf观腊。創(chuàng)建同名文件,內(nèi)容見圖5算行。
其次梧油,重啟vsftpd:“service vsftpd start”。
最后州邢,使用本地用戶(配置文件中指定的用戶)嘗試登陸ftp儡陨,登陸成功,則配置完成量淌。

圖4.png
圖5.png

4. 安裝及配置Mysql虛擬用戶認(rèn)證

根據(jù)章節(jié)2骗村,已知已安裝pam_mysql模塊。登陸服務(wù)器呀枢,進(jìn)去/etc/pam.d目錄胚股,編輯文件(沒有則創(chuàng)建)vsftpd。該文件包含了虛擬用戶通過mysql來進(jìn)行登陸驗證和授權(quán)的相關(guān)數(shù)據(jù)庫信息裙秋。具體配置見圖6琅拌。
此時,需要到配置的數(shù)據(jù)庫去創(chuàng)建:用戶表摘刑,用戶名列名进宝,密碼列名等。圖5則表示枷恕,在數(shù)據(jù)庫hms中的v_ftpuser中的username列和password列党晋,分別表示ftp虛擬用戶的用戶名和密碼。

圖6.png

5. 配置vsftpd虛擬用戶

根據(jù)章節(jié)3可知徐块,虛擬用戶的配置文件路徑為/etc/vsftpd/vuser_conf未玻;在該目錄下創(chuàng)建虛擬用戶同名配置文件,主要需要包含的信息是該虛擬用戶的根路徑蛹锰、可讀可寫權(quán)限深胳、創(chuàng)建目錄的權(quán)限等。見圖7铜犬。

圖7.png

6. 小結(jié)

要達(dá)成虛擬用戶能夠訪問自己的ftp路徑需要有以下幾個條件:

  1. Vsftpd服務(wù)+pam_mysql服務(wù) 正確安裝
  2. Vsftpd.conf正確配置
  3. /etc/pam.d/vsftp文件中加入數(shù)據(jù)庫地址等相關(guān)信息
  4. 在所配置的數(shù)據(jù)庫中添加用戶舞终。
  5. 在步驟4中添加的用戶名轻庆,還需要在用戶配置路徑中創(chuàng)建同名用戶配置文件,以確保其訪問的路徑和權(quán)限正確敛劝。

7. 虛擬用戶創(chuàng)建操作腳本化

根據(jù)章節(jié)6可知余爆,在正確安裝及配置的前提下,需要創(chuàng)建一個虛擬用戶只需要數(shù)據(jù)庫中存在該用戶夸盟;用戶配置路徑下存在該用戶的配置文件即可蛾方。

數(shù)據(jù)庫中的用戶信息由外部系統(tǒng)添加,只需要關(guān)注:如何生成正確的用戶配置文件上陕。

  1. 創(chuàng)建虛擬用戶配置文件模板桩砰。配置文件為/hxspace/virtualuserTemplate。見圖8
  2. 由virtualuserTemplate文件創(chuàng)建一個新用戶配置文件释簿,并移動到用戶配置目錄下亚隅。(與用戶名同名),創(chuàng)建腳本/hxspace/adduser.sh庶溶。見圖9
  3. 當(dāng)需要創(chuàng)建新虛擬用戶時煮纵,調(diào)用腳本adduser.sh 傳入用戶名參數(shù)即可。命令為“sh /hxspace/adduser.sh username1”
圖8.png
圖9.png

8. 虛擬用戶創(chuàng)建操作服務(wù)化

根據(jù)章節(jié)7可知偏螺,每當(dāng)我們需要創(chuàng)建新虛擬用戶時行疏,只需調(diào)用adduser.sh腳本,并保證數(shù)據(jù)庫用戶表中存在該用戶即可套像。
但這種程度還無法滿足外部系統(tǒng)動態(tài)添加虛擬用戶的需求酿联。那么結(jié)合spring boot創(chuàng)建一個web服務(wù),能夠通過http協(xié)議接口來動態(tài)添加虛擬用戶凉夯。

  1. 常規(guī)的spring boot web集成货葬。
  2. 使用ganymed-ssh2庫,來執(zhí)行服務(wù)器命令劲够。

要點:

  1. 為保證安全性震桶,該服務(wù)將部署在ftp服務(wù)器本地,同時征绎,在程序中只是用一般用戶登錄蹲姐。但是,需要注意的時人柿,腳本中的命令大多需要root權(quán)限柴墩,那么則將root密碼,寫入adduser.sh凫岖。同時將改腳本設(shè)為只可執(zhí)行江咳。
  2. 根據(jù)adduser.sh可知,在腳本返回3時哥放,則表明用戶已存在歼指。返回0篙耗,則表示創(chuàng)建成功吮螺。

最終,可登陸ftp服務(wù)所在的服務(wù)器雇锡,執(zhí)行命令:http://127.0.0.1:yourport/createmethod?username=yourusername (需保證數(shù)據(jù)庫中存在該用戶)逝嚎。通過ftp登陸成功(路徑及權(quán)限正確)青柄,則整個流程結(jié)束衅枫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗦枢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子附鸽,更是在濱河造成了極大的恐慌脱拼,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拒炎,死亡現(xiàn)場離奇詭異挪拟,居然都是意外死亡,警方通過查閱死者的電腦和手機击你,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谎柄,“玉大人丁侄,你說我怎么就攤上這事〕祝” “怎么了鸿摇?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長劈猿。 經(jīng)常有香客問我拙吉,道長,這世上最難降的妖魔是什么揪荣? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任筷黔,我火速辦了婚禮,結(jié)果婚禮上仗颈,老公的妹妹穿的比我還像新娘佛舱。我一直安慰自己,他們只是感情好挨决,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布请祖。 她就那樣靜靜地躺著,像睡著了一般脖祈。 火紅的嫁衣襯著肌膚如雪肆捕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天盖高,我揣著相機與錄音慎陵,去河邊找鬼掏秩。 笑死,一個胖子當(dāng)著我的面吹牛荆姆,可吹牛的內(nèi)容都是我干的蒙幻。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼胆筒,長吁一口氣:“原來是場噩夢啊……” “哼邮破!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仆救,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤抒和,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后彤蔽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摧莽,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年顿痪,在試婚紗的時候發(fā)現(xiàn)自己被綠了镊辕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚁袭,死狀恐怖征懈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情揩悄,我是刑警寧澤卖哎,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站删性,受9級特大地震影響亏娜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹬挺,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一维贺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汗侵,春花似錦幸缕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雪猪,卻和暖如春栏尚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背只恨。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工译仗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抬虽,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓纵菌,卻偏偏與公主長得像阐污,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子咱圆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容