向武剛
五峰土家族自治縣高級中學(xué) 湖北 宜昌 443413
在教學(xué)工作中U盤的使用破壞了一體機(jī)設(shè)備,通過全流程解決方案的詳解搭建起局域網(wǎng)存儲云生態(tài),以此為契機(jī),解決這個(gè)棘手的現(xiàn)實(shí)問題。本文重點(diǎn)闡述開源軟件FTP軟件FileZilla_Server的上傳用戶名的程序生成方法,對建設(shè)局域網(wǎng)存儲云也做了全過程的介紹;文章最后反映了在實(shí)際的教學(xué)應(yīng)用中,此教育云得到了教師的廣泛應(yīng)用,提高了工作效率,得到了相關(guān)使用者的好評。但隨著時(shí)間的流逝,管理問題隨之出現(xiàn),很多一體機(jī)的U盤口被損壞了,原因是絕大多數(shù)教師將課件存到U盤里,到教室上課就插上去,次數(shù)多了,一體機(jī)U盤口也就損壞嚴(yán)重。雖然我們信息中心推薦大家用QQ、釘釘?shù)韧ㄐ跑浖魉臀募?,但在?shí)踐過程中老師們?nèi)匀挥X得在教師一體機(jī)上用軟鍵盤輸入密碼登錄很麻煩,再者學(xué)校規(guī)定教師上課不能攜帶手機(jī)進(jìn)入教室,也就不能通過攝像頭掃描二維碼的方式來登錄APP,于是老師們就用U盤傳輸文件。但一體機(jī)保修期快要結(jié)束,如何讓老師們在使用一體機(jī)時(shí)不用U盤傳輸課件成了急切需要解決的問題,不然后期設(shè)備維修的費(fèi)用將是一筆不小的開支[1]。
為了解決這種情況,我經(jīng)過較長時(shí)間的摸索,設(shè)計(jì)出了一個(gè)云存儲方案,①利用學(xué)校已有的服務(wù)器資源,在它上面建立一個(gè)FTP服務(wù)器,在管理端給每個(gè)老師生成上傳課件資源所用的用戶名與密碼,并且為老師下載課件文件建立一個(gè)名為anonymous、密碼為空的匿名賬戶;同時(shí)在上傳根目錄下建立好以教師中文名命名的文件夾;②教師在FTP電腦客戶端通賬號與密碼登錄服務(wù)器,上傳課件自己的文件夾里,或者刪除自己的課件;③新建一個(gè)匿名登錄FTP服務(wù)器的網(wǎng)頁文件,并且下發(fā)到每個(gè)班級的一體機(jī)桌面,老師在上課時(shí)打開這個(gè)網(wǎng)頁文件便可以匿名登錄FTP服務(wù)器,進(jìn)入教育云空間自己的文件夾里下載課件,避免了使用軟鍵盤輸入密碼的麻煩。這個(gè)方案既保證了上傳文件時(shí)FTP服務(wù)器的安全,也方便了教師在一體機(jī)端無障礙的下載課件,服務(wù)于教學(xué)。整個(gè)教育云方案的架構(gòu)如圖1所示。
圖1 存儲云結(jié)構(gòu)圖
在FTP服務(wù)器領(lǐng)域,Serv-u軟件大名鼎鼎,功能齊全,但好的東西需要購買,所以在了解serv-u后就把它放到了一邊。筆者找到了免費(fèi)的開源FTP軟件FileZilla_Server,它有易于使用、多協(xié)議支持、多窗口、使用方便等特點(diǎn)。下載9.60-2版本服務(wù)端軟件,默認(rèn)安裝,安裝成功后啟動(dòng)服務(wù),在管理界面里添加teacher組,設(shè)置共享目錄,分配創(chuàng)建子目錄的權(quán)限,文件的讀取、寫入、刪除權(quán)限。在用戶欄里新建用戶,將用戶分配給teacher組,為該用戶設(shè)置密碼。接著建立一個(gè)匿名anonymous賬戶用來下載課件,此賬戶的共享目錄設(shè)置成與teacher組相同。啟用FileZilla客戶端,輸入服務(wù)器地址,賬號與密碼,登錄服務(wù)器,選擇自己的文件夾并上傳了課件。通過在一體機(jī)運(yùn)行網(wǎng)頁文件匿名登錄FTP服務(wù)器,下載課件的速度很快,方便程度也好于U盤。但隨著方案的向前推進(jìn),問題也隨之呈現(xiàn),單位總共有200左右一線教師,需要在FTP服務(wù)器新建200左右相應(yīng)的賬號,但FileZilla_Server管理端沒有批量建立用戶的功能,所以方需要給管理端增加這個(gè)功能[2]。
俗話說得好,遇事莫慌,于是進(jìn)入FileZilla_Server安裝目錄,仔細(xì)分析文件組成結(jié)構(gòu),查看賬號文件。安裝目錄下有一個(gè)FileZilla Server.xml文件,這個(gè)文件內(nèi)容包含F(xiàn)TP服務(wù)器的所有配置,以下文件部分內(nèi)容引起了我的格外注意:
圖2 密碼格式圖
Pass,Salt值是通過算法實(shí)現(xiàn)的,通過閱讀命名來看,應(yīng)該與賬號密碼有關(guān)[3]。經(jīng)過推敲弄明白了這兩行代碼的含義,Salt值的生成規(guī)則是從所有的可見的ASCII字符集中隨機(jī)選擇出64個(gè)字符。Pass值是大寫的十六進(jìn)制組成的密碼,它的生成規(guī)則是密碼字符串和Salt值連接后,進(jìn)行SHA512的散列值計(jì)算,計(jì)算出的值經(jīng)過十六進(jìn)制轉(zhuǎn)換得到。用戶在登錄時(shí)輸入用戶名和密碼,管理端通過以上散列算法計(jì)算出一個(gè)十六制形式的字符串,與讀取FileZilla Server.xml文件得到相應(yīng)用戶的Pass值比較,相同便驗(yàn)證通過。不同則拒絕該用戶訪問云空間,以下就是批量生成用戶Salt、Pass這兩個(gè)值的C#代碼與相關(guān)注釋:
使用前將C#代碼編譯生成相應(yīng)的應(yīng)用程序,并將應(yīng)用程序拷貝到“d:1”文件夾里。教師的電話號碼作為登錄賬號,每個(gè)號碼一行,存儲成hm.txt,作為數(shù)據(jù)源,同時(shí)將FileZilla Server.xml文件也拷貝到“d:1”文件夾下。啟動(dòng)應(yīng)用程序生成教師的賬號等內(nèi)容到FileZilla Server.xml里,最后把FileZilla Server.xml文件拷貝到FileZilla Server安裝目錄下,重啟服務(wù),教師就可以用分配的賬號與密碼登錄FTP服務(wù)器了。
批量生成賬號的問題解決了,還需要建立以教師的漢語名字來命名的上傳文件夾,筆者在這里采用批處理文件建立多個(gè)子文件夾的方法,新建有全校教師姓名的電子表格文件,將教師名字放在一列,通過轉(zhuǎn)置函數(shù)將列轉(zhuǎn)換成行,并把這個(gè)工作表另存為帶逗號分隔符的CSV文件,接著將CSV文件修改成BAT批處理文件,編輯這個(gè)文件,內(nèi)容格式為“md張三,李四……”最后將BAT拷貝到FTP服務(wù)器teachers組的共享上傳目錄,運(yùn)行批處理文件,生成以200個(gè)教師姓名命名的文件夾。
接下來做一個(gè)教育云說明書,同F(xiàn)ileZilla客戶端文件一并提供給老師們;將匿名登錄的網(wǎng)頁文件發(fā)送到教室的一體機(jī),學(xué)校教育云存儲系統(tǒng)就搭建成功了。至此方案的最終目的達(dá)到了,保護(hù)了一體機(jī)U盤口,為學(xué)校的可持續(xù)發(fā)展盡到了微薄之力。
多日的技術(shù)上的艱辛探索,使我明白了一個(gè)道理,很多的開源者貢獻(xiàn)著自己的聰明才智,他們不計(jì)名利,開發(fā)出各種免費(fèi)、好用的軟件,在我們利用他們的成果來提高工作效率時(shí),需要感恩這些付出的開源者,在他們身上真正體現(xiàn)了科學(xué)沒有國界的品質(zhì),當(dāng)你在寫程序時(shí)也盡量做一個(gè)分享者,把自己對軟件的功能擴(kuò)充部分無私的貢獻(xiàn)出去,服務(wù)大眾。