一種權(quán)限管理的方法及客戶端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及文件系統(tǒng)技術(shù)領(lǐng)域,尤指一種權(quán)限管理的方法及客戶端。
【背景技術(shù)】
[0002]在分布式文件系統(tǒng)中,文件系統(tǒng)管理的物理存儲(chǔ)資源分布在通過計(jì)算機(jī)網(wǎng)絡(luò)連接的多個(gè)節(jié)點(diǎn)上。分布式文件系統(tǒng)是基于客戶/服務(wù)器模式的,包括客戶端和服務(wù)器端。在服務(wù)器端包括元數(shù)據(jù)服務(wù)器和數(shù)據(jù)塊服務(wù)器,其中,數(shù)據(jù)塊服務(wù)器用來存儲(chǔ)文件的實(shí)際數(shù)據(jù);元數(shù)據(jù)服務(wù)器作為分布式文件系統(tǒng)的中心節(jié)點(diǎn),用于存儲(chǔ)文件的元信息,包括文件的大小、創(chuàng)建日期和文件數(shù)據(jù)保存在數(shù)據(jù)服務(wù)器的位置等信息,同時(shí)協(xié)調(diào)各個(gè)數(shù)據(jù)塊服務(wù)器,保證數(shù)據(jù)塊服務(wù)器的負(fù)載均衡。
[0003]用戶權(quán)限管理是文件系統(tǒng)中非常重要的一部分。通常情況下,文件或目錄的用戶可以分為:目錄或文件的所有者、所屬群組及其他用戶??紤]到安全因素,不同用戶對(duì)不同文件應(yīng)該具有不同的操作權(quán)限,因此對(duì)于分布式文件系統(tǒng),設(shè)計(jì)合理有效的用戶權(quán)限管理對(duì)保證其安全性具有關(guān)鍵性作用。在現(xiàn)有技術(shù)中,通常在客戶端進(jìn)行用戶權(quán)限的管理。客戶端中包括用戶態(tài)模塊、VFS模塊及內(nèi)核模塊。客戶端的VFS模塊獲取用戶對(duì)待操作文件的文件操作請(qǐng)求,并通過內(nèi)核模塊觸發(fā)用戶態(tài)模塊獲取ACL數(shù)據(jù)信息。用戶態(tài)模塊在服務(wù)器端獲取待操作文件的ACL數(shù)據(jù)信息,用戶態(tài)模塊在獲取到ACL數(shù)據(jù)信息后,根據(jù)獲取的ACL數(shù)據(jù)信息對(duì)用戶的權(quán)限進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果通過內(nèi)核模塊發(fā)送至VFS模塊。
[0004]在現(xiàn)有技術(shù)中,客戶端在處理用戶的文件操作時(shí),存在需將某一文件操作分為多次進(jìn)行的情況。例如,用戶需要進(jìn)行寫操作時(shí),客戶端在處理寫操作時(shí),由于客戶端一次寫入的數(shù)據(jù)有限,因此,在用戶需要寫入的數(shù)據(jù)較大時(shí),需要將用戶寫入的數(shù)據(jù)分為多個(gè)數(shù)據(jù)段,以數(shù)據(jù)段為單位進(jìn)行數(shù)據(jù)的寫入。由于客戶端通過用戶態(tài)模塊進(jìn)行用戶權(quán)限的管理,而用戶態(tài)模塊處理客戶端的用戶態(tài)進(jìn)程,VFS模塊處理客戶端的內(nèi)核態(tài)進(jìn)程。用戶態(tài)模塊與VFS模塊的運(yùn)行級(jí)別不同。因此,在進(jìn)行數(shù)據(jù)寫入時(shí),VFS模塊進(jìn)行數(shù)據(jù)段的寫入時(shí),針對(duì)每個(gè)數(shù)據(jù)段的寫入均需要進(jìn)行用戶權(quán)限的校驗(yàn)。即為,針對(duì)每個(gè)數(shù)據(jù)段,VFS模塊需要通過內(nèi)核模塊觸發(fā)用戶態(tài)模塊獲取待操作文件的ACL數(shù)據(jù)信息。用戶態(tài)模塊從服務(wù)器端獲取相應(yīng)的ACL數(shù)據(jù)信息,并對(duì)用戶權(quán)限進(jìn)行校驗(yàn),以檢測(cè)用戶是否具有對(duì)待操作文件進(jìn)行讀操作的權(quán)限。并將檢驗(yàn)結(jié)果發(fā)送至VFS模塊。由于用戶態(tài)模塊與VFS模塊的運(yùn)行級(jí)別不同,而在用戶需要對(duì)此待操作文件進(jìn)行寫操作時(shí),需要通過上述過程,由用戶態(tài)模塊從服務(wù)器端獲取相應(yīng)的ACL數(shù)據(jù)信息,并對(duì)用戶權(quán)限進(jìn)行校驗(yàn),以檢測(cè)用戶是否具有對(duì)待操作文件進(jìn)行寫操作的權(quán)限。并將校驗(yàn)結(jié)果發(fā)送至VFS模塊。在校驗(yàn)結(jié)果顯示用戶具有寫操作權(quán)限時(shí),VFS模塊才會(huì)將數(shù)據(jù)段寫入待操作文件中。這樣,由于上述方法在將數(shù)據(jù)分為多個(gè)數(shù)據(jù)段進(jìn)行寫入時(shí),需要針對(duì)每個(gè)數(shù)據(jù)段的寫操作進(jìn)行用戶權(quán)限的校驗(yàn),上述權(quán)限管理的實(shí)現(xiàn)方法不夠靈活,操作較為冗余,浪費(fèi)客戶端的資源。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問題,本發(fā)明提供了一種權(quán)限管理的方法及客戶端,能夠靈活有效的管理用戶權(quán)限,保證文件系統(tǒng)的安全性,并降低客戶端的資源浪費(fèi)。
[0006]為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種權(quán)限管理的方法,應(yīng)用于客戶端,所述客戶端包括內(nèi)核模塊、虛擬文件系統(tǒng)VFS模塊,所述方法包括:VFS模塊獲取用戶對(duì)待操作文件的文件操作請(qǐng)求;VFS模塊確定所述內(nèi)核模塊是否能獲取ACL數(shù)據(jù)信息;所述ACL數(shù)據(jù)信息中記錄有所述待操作文件的操作權(quán)限的相關(guān)信息;在確定所述內(nèi)核模塊能獲取ACL數(shù)據(jù)信息時(shí),觸發(fā)內(nèi)核模塊獲取所述帶操作文件的ACL數(shù)據(jù)信息;內(nèi)核模塊獲取所述待操作文件的ACL數(shù)據(jù)信息,對(duì)所述用戶的權(quán)限進(jìn)行校驗(yàn),并將檢驗(yàn)結(jié)果發(fā)送至VFS模塊;VFS模塊根據(jù)所述檢驗(yàn)結(jié)果,處理所述文件操作請(qǐng)求。
[0007]可選地,所述客戶端還包括:用戶態(tài)模塊;所述內(nèi)核模塊獲取所述待操作文件的ACL數(shù)據(jù)信息包括:所述內(nèi)核模塊通過所述用戶態(tài)模塊獲取所述待操作文件的ACL數(shù)據(jù)信息。
[0008]可選地,所述VFS模塊根據(jù)所述校驗(yàn)結(jié)果,處理所述文件操作請(qǐng)求包括:在所述校驗(yàn)結(jié)果指示所述用戶具有對(duì)待操作文件進(jìn)行文件操作的權(quán)限時(shí),所述VFS模塊根據(jù)所述文件操作請(qǐng)求,處理所述待操作文件。
[0009]可選地,所述VFS模塊根據(jù)所述校驗(yàn)結(jié)果,處理所述文件操作請(qǐng)求還包括:在所述校驗(yàn)結(jié)果指示所述用戶不具有對(duì)待操作文件進(jìn)行文件操作的權(quán)限時(shí),所述VFS模塊不處理所述文件操作請(qǐng)求,并向用戶返回操作失敗的消息。
[0010]可選地,在所述VFS模塊獲取用戶對(duì)待操作文件的文件操作請(qǐng)求之前,還包括:所述內(nèi)核模塊向所述VFS模塊發(fā)送,其設(shè)置有獲取ACL數(shù)據(jù)信息的功能的相關(guān)信息。
[0011]進(jìn)一步的,本發(fā)明實(shí)施例提供了一種客戶端,至少包括:虛擬文件系統(tǒng)VFS模塊,內(nèi)核模塊;其中,所述VFS模塊,用于獲取用戶對(duì)待操作文件的文件操作請(qǐng)求;確定所述內(nèi)核模塊是否能獲取ACL數(shù)據(jù)信息;所述ACL數(shù)據(jù)信息中記錄有所述待操作文件的操作權(quán)限的相關(guān)信息;根據(jù)所述校驗(yàn)結(jié)果,處理所述文件操作請(qǐng)求;所述內(nèi)核模塊,用于獲取所述待操作文件的ACL數(shù)據(jù)信息,對(duì)所述用戶的權(quán)限進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果發(fā)送至所述VFS模塊。
[0012]可選地,客戶端還包括:用戶態(tài)模塊;所述內(nèi)核模塊,具體用于通過所述用戶態(tài)模塊獲取所述待操作文件的ACL數(shù)據(jù)信息;所述用戶態(tài)模塊,用于在內(nèi)核模塊的觸發(fā)下,從服務(wù)器端獲取所述待操作文件的ACL數(shù)據(jù)信息。
[0013]可選地,當(dāng)所述校驗(yàn)結(jié)果顯示所述用戶具有對(duì)待操作文件進(jìn)行文件操作的權(quán)限時(shí),所述VFS模塊,還用于根據(jù)所述文件操作請(qǐng)求,處理所述待操作文件。
[0014]可選地,當(dāng)所述校驗(yàn)結(jié)果顯示所述用戶不具有對(duì)待操作文件進(jìn)行文件操作的權(quán)限時(shí),所述VFS模塊,還用于不處理所述文件操作請(qǐng)求,并向用戶返回操作失敗的消息。
[0015]可選地,所述內(nèi)核模塊,還用于向所述VFS模塊發(fā)送,所述內(nèi)核模塊設(shè)置有獲取ACL數(shù)據(jù)信息的功能的相關(guān)信息。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明的方法應(yīng)用于客戶端,所述客戶端包括內(nèi)核模塊、虛擬文件系統(tǒng)VFS模塊,所述方法包括:VFS模塊獲取用戶對(duì)待操作文件的文件操作請(qǐng)求;VFS模塊確定所述內(nèi)核模塊是否能獲取ACL數(shù)據(jù)信息;所述ACL數(shù)據(jù)信息中記錄有所述待操作文件的操作權(quán)限的相關(guān)信息;在確定所述內(nèi)核模塊能獲取ACL數(shù)據(jù)信息時(shí),觸發(fā)內(nèi)核模塊獲取所述帶操作文件的ACL數(shù)據(jù)信息;內(nèi)核模塊獲取所述待操作文件的ACL數(shù)據(jù)信息,對(duì)所述用戶的權(quán)限進(jìn)行校驗(yàn),并將檢驗(yàn)結(jié)果發(fā)送至VFS模塊;VFS模塊根據(jù)所述檢驗(yàn)結(jié)果,處理所述文件操作請(qǐng)求。這樣,用戶在訪問分布式文件系統(tǒng)時(shí),客戶端中的內(nèi)核模塊需要先對(duì)用戶的權(quán)限進(jìn)行校驗(yàn),確定此用戶是否有權(quán)限對(duì)待操作文件進(jìn)行相應(yīng)的文件操作??蛻舳酥械腣FS模塊根據(jù)內(nèi)核模塊的校驗(yàn)結(jié)果,處理用戶的處理所述文件操作請(qǐng)求。由于VFS模塊與內(nèi)核模塊的運(yùn)行級(jí)別相同,因此由內(nèi)核模塊根據(jù)ACL數(shù)據(jù)信息對(duì)用戶權(quán)限進(jìn)行校驗(yàn)時(shí),針對(duì)將某一文件操作分為多次進(jìn)行的情況時(shí),無需進(jìn)行多次校驗(yàn),僅需進(jìn)行一次,從而實(shí)現(xiàn)了靈活