本發明涉及訪問權限管理技術領域,特別是涉及一種基于文件描述符和會話的權限控制方法和系統。
背景技術:
隨著科學技術的發展,越來越多的互聯網用戶通過遠程訪問的方式來獲取外部網絡的共享資源。想要實現遠程訪問,就需要用戶的客戶端通過遠程登錄的方式連接到服務器,然后由服務器調取數據庫中的相應信息返回至客戶端。
然而,在互聯網應用中,服務器為不同的用戶提供不同的服務,即不同的客戶端具有不同的相應訪問權限。各客戶端只能在自身的訪問權限范圍內獲取數據庫中的信息。通常情況下,當用戶在進行遠程訪問時,服務器進行系統調用權限的判斷,通常情況下直接作用于文件系統的數據(文件和目錄)和數據庫連接,所謂的系統調用指的是進程陷入操作系統內核執行系統功能的調用,如創建文件、修改文件和執行程序。而系統權限通常指的是系統調用時的權限,典型情況下,權限通常由文件屬性和進程運行的所屬用戶組決定。當進程執行系統調用時就會受到進程用戶和文件的屬性的局限。
因而,如何實現當進程執行系統調用時不局限于進程用戶和文件的屬性而進行權限的控制,是本領域技術人員目前需要解決的技術問題。
技術實現要素:
本發明的目的是提供一種基于文件描述符和會話的權限控制方法和系統,可以實現當進程執行系統調用時不局限于進程用戶和文件的屬性而進行權限的控制。
為解決上述技術問題,本發明提供了如下技術方案:
一種基于文件描述符和會話的權限控制方法,包括:
預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記;
在應用程序的進程進行系統調用時,根據相應的連接文件描述符對所述系統調用按會話進行識別;
對所述系統調用的所屬當前會話的會話權限進行識別;
根據所述當前會話對應的會話權限控制當前系統調用。
優選地,所述預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記,包括:
預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符;
建立與所述新連接信息關聯的會話;
將各所述連接文件描述符一一映射到一個會話或者空會話中。
優選地,所述在應用程序的進程進行系統調用時,根據相應的連接文件描述符對所述系統調用按會話進行識別,包括:
在應用程序的進程進行系統調用時,判斷當前系統調用是否包含預設的連接文件描述符;
若是,則更新所述系統調用所屬的當前會話為該預設的連接文件描述符所映射的會話;
執行當前系統調用;
判斷當前系統調用是否產生了異于所述預設的連接文件描述符的新連接文件描述符;
若是,則將該新連接文件描述符映射到當前會話。
優選地,所述對所述系統調用的所屬當前會話的會話權限進行識別,包括:
獲取所述系統調用的所述當前會話的發起終端的ip地址;
根據所述ip地址和預設的角色配置信息,識別所述當前會話的所屬角色;
根據所述當前會話的所屬角色,調取該角色對應的會話權限配置。
優選地,所述對所述系統調用的所屬當前會話的會話權限進行識別,包括:
判斷所述當前會話的會話信息中是否包含預設的會話角色認證信息;
若是,則獲取所述會話角色認證信息,并根據所述會話角色認證信息識別分析出該會話信息的發起終端的角色,獲取該角色的會話權限配置。
優選地,所述對所述系統調用的所屬當前會話的會話權限進行識別,包括:
預先建立用于預設角色通訊的虛擬通訊網絡隧道;
對所述當前會話的來源隧道進行識別,以判斷所述當前會話所屬的角色;
根據所述當前會話所屬的角色調取對應的會話權限配置。
一種基于文件描述符和會話的權限控制系統,包括:
預處理模塊,用于預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記;
識別模塊,用于在應用程序的進程進行系統調用時,根據相應的連接文件描述符對所述系統調用按會話進行識別;
權限識別模塊,用于對所述系統調用的所屬當前會話的會話權限進行識別;
系統調用模塊,用于根據所述當前會話對應的會話權限控制當前系統調用。
優選地,所述預處理模塊包括:
描述符構建單元,用于預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符;
會話構建單元,用于建立與所述新連接信息關聯的會話;
第一映射單元,用于將各所述連接文件描述符一一映射到一個會話或者空會話中。
優選地,所述識別模塊包括:
第一判斷單元,用于在應用程序的進程進行系統調用時,判斷當前系統調用是否包含預設的連接文件描述符;
會話更新單元,用于在判定當前系統調用包含預設的連接文件描述符時,更新所述系統調用所屬的當前會話為該預設的連接文件描述符所映射的會話;
執行單元,用于執行當前系統調用;
第二判斷單元,用于判斷當前系統調用是否產生了異于所述預設的連接文件描述符的新連接文件描述符;
第二映射單元,則將該新連接文件描述符映射到當前會話。
優選地,所述權限識別模塊包括:
第一獲取單元,用于獲取所述系統調用的所述當前會話的發起終端的ip地址;
角色識別單元,用于根據所述ip地址和預設的角色配置信息,識別所述當前會話的所屬角色;
第一權限調取單元,用于根據所述當前會話的所屬角色,調取該角色對應的會話權限配置。
優選地,所述權限識別模塊包括:
第三判斷單元,用于判斷所述當前會話的會話信息中是否包含預設的會話角色認證信息;
第二獲取單元,用于在所述第三判斷單元判定所述當前會話的會話信息中包含預設的會話角色認證信息時,獲取所述會話角色認證信息,并根據所述會話角色認證信息識別分析出該會話信息的發起終端的角色,獲取該角色的會話權限配置。
優選地,所述權限識別模塊包括:
通訊隧道建立單元,用于預先建立用于預設角色通訊的虛擬通訊網絡隧道;
來源隧道識別單元,用于對所述當前會話的來源隧道進行識別,以判斷所述當前會話所屬的角色;
第二權限調取單元,用于根據所述當前會話所屬的角色調取對應的會話權限配置。
與現有技術相比,上述技術方案具有以下優點:
本發明實施例所提供的一種基于文件描述符和會話的權限控制方法,包括:預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記;在應用程序的進程進行系統調用時,根據相應的連接文件描述符對系統調用按會話進行識別;對系統調用的所屬當前會話的會話權限進行識別;根據當前會話對應的會話權限控制當前系統調用。在服務進程接收到新連接后,即接收到新的任務時,創建與該新連接關聯的連接文件描述符和會話,并通過該連接文件描述符標記該會話,這樣,就可以對系統調用按會話進行識別,并根據系統調用所涉及的連接文件描述符調整當前會話,對當前會話的會話權限進行識別,根據當前會話的會話權限控制當前系統調用,可以實現當進程執行系統調用時不局限于進程用戶和文件的屬性而進行權限的控制。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明一種具體實施方式所提供的基于文件描述符和會話的權限控制方法流程圖;
圖2為本發明一種實施方式所提供的會話識別方法流程圖;
圖3為本發明一種具體實施方式所提供的基于文件描述符和會話的權限控制系統結構示意圖。
具體實施方式
本發明的核心是提供一種基于文件描述符和會話的權限控制方法和系統,可以實現當進程執行系統調用時不局限于進程用戶和文件的屬性而進行權限的控制。
為了使本發明的上述目的、特征和優點能夠更為明顯易懂,下面結合附圖對本發明的具體實施方式做詳細的說明。
在以下描述中闡述了具體細節以便于充分理解本發明。但是本發明能夠以多種不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本發明內涵的情況下做類似推廣。因此本發明不受下面公開的具體實施方式的限制。
請參考圖1,圖1為本發明一種具體實施方式所提供的基于文件描述符和會話的權限控制方法流程圖。
本發明的一種具體實施方式提供了一種基于文件描述符和會話的權限控制方法,包括:
s11:預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記。
在本發明的一種實施方式中,預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記,包括:預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符;建立與新連接信息關聯的會話;將各連接文件描述符一一映射到一個會話或者空會話中。
在本實施方式中,連接文件描述符指的是進程或操作系統中標示打開的文件或連接的一個數字標識,或者稱為文件句柄。會話指的是在服務進程接收新連接后,系統為其分配一個會話,該會話與連接進行關聯,所謂的連接指的是系統中的應用程序和數據庫連接。將每個連接文件描述符都映射到一個會話或者空會話中,以表示當前會話與會話關聯。
s12:在應用程序的進程進行系統調用時,根據相應的連接文件描述符對系統調用按會話進行識別。
在應用程序的進程進行系統調用時,根據相應的連接文件描述符對系統調用按會話進行識別,包括:在應用程序的進程進行系統調用時,判斷當前系統調用是否包含預設的連接文件描述符;若是,則更新系統調用所屬的當前會話為該預設的連接文件描述符所映射的會話;執行當前系統調用;判斷當前系統調用是否產生了異于預設的連接文件描述符的新連接文件描述符;若是,則將該新連接文件描述符映射到當前會話。
需要說明的是,服務器根據服務進程調用數據庫中的數據,所謂的服務進程指的是服務器的應用系統中對外部監聽端口接收新連接,并提供服務的進程,如apache(www服務器),vsftpd(ftp服務器)。在服務進程接收新連接后,系統會為其分配一個會話,該會話與連接進行關聯,以便通過會話的權限來對系統調用進行控制。
在本實施方式中,以預設的連接文件描述符為描述符參數fd為例進行說明。如圖2所示,圖2為本發明一種實施方式所提供的會話識別方法流程圖。在應用程序的進程進行系統調用時,根據相應的連接文件描述符對系統調用按會話進行識別,包括:
s21:在進行系統調用時,判斷系統當前系統調用中是否包含文件描述符參數fd。
s22:若是,則更新當前會話為fd映射的會話。
s23:執行當前系統調用。
s24:判斷系統調用是否產生了新的文件描述符參數fd-new。
s25:若是,則將fd-new映射到當前會話。
之后,該系統調用結束。
在本實施方式中,根據連接文件描述符識進行會話識別,會話識別不斷根據系統調用涉及的連接文件描述符調整當前會話,并將新的文件描述符映射到當前會話。當創建子進程時,子進程繼承當前會話。
s13:對系統調用的所屬當前會話的會話權限進行識別。
在本發明的一種實施方式中,對系統調用的所屬當前會話的會話權限進行識別,包括:獲取系統調用的當前會話的發起終端的ip地址;根據ip地址和預設的角色配置信息,識別當前會話的所屬角色;根據當前會話的所屬角色,調取該角色對應的會話權限配置。
在本實施方式中,角色即指用戶身份,在系統中一個身份擁有一組操作權限配置。要想知道客戶端(即會話的發起終端)的權限,在本實施方式中就通過客戶端建立的會話所屬的角色的身份信息,即識別發起該該會話的客戶端的身份,只有了解了該客戶端的身份,服務器才能賦予該客戶端對應的權限來進行系統調用。通過讀取會話的發起終端的ip地址來識別發起會話的客戶端的身份。如當有兩個客戶端訪問服務器時,客戶端a的ip地址為192.168.1.1,其身份為管理員,預設的權限為“所有”;客戶端b的ip地址為123.45.67.89.其身份為普通用戶,預設的權限為“部分”。則當某一客戶端訪問服務器并發起會話時,服務器讀取發起會話的客戶端的ip地址,根據其ip地址即可獲取該客戶端的身份信息,如讀取的是客戶端a的ip地址,則判定此時的客戶端為管理員,相應地,即可服務該客戶端對應的權限來控制當前的系統調用。由于各客戶端均具有一個唯一的、不同于其他客戶端的ip地址,因此,通過識別發起會話的客戶端的ip地址,即可識別客戶端的身份,并調取對應的權限來控制系統調用。
在本發明的另一種實施方式中,對系統調用的所屬當前會話的會話權限進行識別,包括:判斷當前會話的會話信息中是否包含預設的會話角色認證信息;若是,則獲取所述會話角色認證信息,并根據所述會話角色認證信息識別分析出該會話信息的發起終端的角色,獲取該角色的會話權限配置。
在本實施方式中,使用二次認證來進行角色的識別。在二次認證中可以引入中間代理,使得所有到達服務器的數據先經過中間代理,中間代理對連接進行認證后再傳遞給服務器進行請求。
具體地,客戶端向中間代理發送請求內容,中間代理判斷會話信息中是否包含預設的會話角色認證信息,若沒有,則返回需要認證的提示信息,客戶端再將帶認證信息的請求內容發送至中間代理,在中間代理通過認證后,再將請求內容和相關的角色信息發送至服務器,服務器將答復內容返回至客戶端。在這個過程中,由中間代理來識別發起會話的客戶端的身份。
在本發明的另一種實施方式中,對系統調用的所屬當前會話的會話權限進行識別,包括:預先建立用于預設角色通訊的虛擬通訊網絡隧道;對當前會話的來源隧道進行識別,以判斷當前會話所屬的角色;根據當前會話所屬的角色調取對應的會話權限配置。
在本實施方式中,采用隧道方式進行角色識別。在該過程中,客戶端通過與服務器建立虛擬專用通訊網絡隧道,通過區分來源隧道來進行角色的識別。如當客戶端角色分為管理員和普通用戶時,管理員客戶端和服務器進行通訊的隧道為虛擬專用通訊網絡隧道,而普通用戶客戶端和服務器進行通訊的隧道為普通網絡訪問,這樣,當客戶端和服務器建立會話時,只需識別會話的來源隧道即可判定會話所屬的角色的身份信息。
s14:根據當前會話對應的會話權限控制當前系統調用。
進一步地,還可以根據需要在根據會話權限控制當前系統調用的基礎上,判斷系統調用是否符合系統的系統自身權限。在本文中,會話可以指示該會話屬于哪個角色,即該會話所屬的客戶端或者用戶,而不同的角色根據在系統中的身份擁有一組操作權限配置。不同的會話對應各自的會話權限。當用戶想要進行系統調用時,就需要進行會話權限的檢查,通過會話權限的檢查來判斷該會話對應的角色的數據訪問權限,而系統自身訪問權限的檢查用來判斷系統可以提供給該角色的數據訪問權限,只有當系統調用的數據能通過會話權限的檢查時才能夠執行當前系統調用。
在本實施方式中,以一個具體的實施例為例進行說明。
設有一http服務器s,ip地址200.200.0.1,應用了該基于文件描述符和會話的權限控制方法,指定了源ip地址192.168.0.1擁有管理員角色(對所有文件有可寫權限),其它來源地址為普通用戶角色(對所有文件只讀)
假設用戶從ip地址為192.168.0.2的一個終端發送http請求:post/changepasswd.php?user=test&pass=test,其目的是更改用戶test的密碼,程序的邏輯將打開磁盤上的文件并進行修改。
其整個過程如下:
1.用戶從192.168.0.2發起了到200.200.0.1連接請求;
2.服務器接受了該連接請求,此時一個文件描述符被創建,相應的會話信息也被創建,且該會話信息關聯了這個文件描述符;
3.會話根據用戶發起終端的ip地址查詢得到,這個用戶角色為普通用戶;
4.用戶發送post/changepasswd.php?user=test&pass=test,服務器程序開始執行修改密碼邏輯;
5.服務器程序打開密碼文件,得到該密碼文件的文件描述符,依據本發明的方法,得知這個描述符同屬于用戶192.168.0.2的會話(步驟2中創建);
6.服務器程序對密碼文件進行寫入,這時檢查會話權限,得知該用戶不允許文件寫入;
7.返回服務器程序寫入失敗,權限不足的信息;
8.用戶修改密碼的嘗試失敗;
9.上面服務器程序以及用戶嘗試寫入密碼文件的過程被記錄至數據庫以用于后續的審計。
進一步,管理員從192.168.0.1上登錄,則在步驟3中,用戶角色識別為管理員,則后續的操作都會被放行。
需要說明的是,當用戶修改密碼失敗之后,若還想提權再執行修改密碼操作的話,可以通過以下方式進行:
a1:選擇遂道或二次認證,這時發起的請求里帶有隧道或認證信息,在步驟3中就會判斷為其它角色,其它角色如果配置為允許修改這個密碼文件,便能修改成功。
還需要說明的是,在提權之后主要是根據隧道或認證信息查看權限配置,提權后可以重新選擇角色,該角色也可以是管理員。
其中,會話權限即表示了該會話對應的角色的訪問權限,從而在判斷系統調用是否符合權限時,無需再去判斷系統調用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權限的判斷過程。對于應用程序的進程對系統調用引入了會話權限的檢查來對于服務器中進行系統調用時的權限進行檢查校驗,以控制應用程序的權限,實現了當進程執行系統調用時不局限于進程用戶和文件的屬性而進行權限的控制。
需要說明的是,在本文中的整個通訊服務過程中,系統調用主要包括應用程序對磁盤文件系統進行文件讀寫系統調用,和應用程序對數據庫程序的數據庫連接讀寫的系統調用。在這兩種情況下進行系統調用時進行權限的檢查判斷。
還需要說明的是,系統調用還包括數據庫程序對數據庫數據進行數據讀寫的系統調用,由于在技術上權限檢查的意義不大,因此,在本實施方式中,可以不對此處的系統調用進行權限檢查判斷。
請參考圖3,圖3為本發明一種具體實施方式所提供的基于文件描述符和會話的權限控制系統結構示意圖。
相應地,本發明一種實施方式還提供了一種基于文件描述符和會話的權限控制系統,包括:預處理模塊31,用于預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記;識別模塊32,用于在應用程序的進程進行系統調用時,根據相應的連接文件描述符對系統調用按會話進行識別;權限識別模塊33,用于對系統調用的所屬當前會話的會話權限進行識別;系統調用模塊34,用于根據當前會話對應的會話權限控制當前系統調用。
進一步地,預處理模塊包括:描述符構建單元,用于預先在接收系統調用的新連接信息時,建立與該新連接信息關聯的連接文件描述符;會話構建單元,用于建立與新連接信息關聯的會話;第一映射單元,用于將各連接文件描述符一一映射到一個會話或者空會話中。
識別模塊,包括:第一判斷單元,用于在應用程序的進程進行系統調用時,判斷當前系統調用是否包含預設的連接文件描述符;會話更新單元,用于在判定當前系統調用包含預設的連接文件描述符時,更新系統調用所屬的當前會話為該預設的連接文件描述符所映射的會話;執行單元,用于執行當前系統調用;第二判斷單元,用于判斷當前系統調用是否產生了異于預設的連接文件描述符的新連接文件描述符;第二映射單元,則將該新連接文件描述符映射到當前會話。
在本發明的一種實施方式中,權限識別模塊包括:第一獲取單元,用于獲取系統調用的當前會話的發起終端的ip地址;角色識別單元,用于根據ip地址和預設的角色配置信息,識別當前會話的所屬角色;第一權限調取單元,用于根據當前會話的所屬角色,調取該角色對應的會話權限配置。
在本實施方式中,通過讀取會話的發起終端的ip地址來識別發起會話的客戶端的身份。如當有兩個客戶端訪問服務器時,客戶端a的ip地址為192.168.1.1,其身份為管理員,預設的權限為“所有”;客戶端b的ip地址為123.45.67.89.其身份為普通用戶,預設的權限為“部分”。則當某一客戶端訪問服務器并發起會話時,服務器讀取發起會話的客戶端的ip地址,根據其ip地址即可獲取該客戶端的身份信息,如讀取的是客戶端a的ip地址,則判定此時的客戶端為管理員,相應地,即可服務該客戶端對應的權限來控制當前的系統調用。由于各客戶端均具有一個唯一的、不同于其他客戶端的ip地址,因此,通過識別發起會話的客戶端的ip地址,即可識別客戶端的身份,并調取對應的權限來控制系統調用。
在本發明的另一種實施方式中,權限識別模塊包括:第三判斷單元,用于判斷當前會話的會話信息中是否包含預設的會話角色認證信息;第二獲取單元,用于在第三判斷單元判定當前會話的會話信息中包含預設的會話角色認證信息時,獲取所述會話角色認證信息,并根據所述會話角色認證信息識別分析出該會話信息的發起終端的角色,獲取該角色的會話權限配置。
在本實施方式中,使用二次認證來進行角色的識別。在二次認證中可以引入中間代理,中間代理即上述的會話權限識別模塊,使得所有到達服務器的數據先經過中間代理,中間代理對連接進行認證后再傳遞給服務器進行請求。
具體地,客戶端向中間代理發送請求內容,中間代理判斷會話信息中是否包含預設的會話角色認證信息,若沒有,則返回需要認證的提示信息,客戶端再將帶認證信息的請求內容發送至中間代理,在中間代理通過認證后,再將請求內容和相關的角色信息發送至服務器,服務器將答復內容返回至客戶端。在這個過程中,由中間代理來識別發起會話的客戶端的身份。
在本發明的另一種實施方式中,權限識別模塊包括:通訊隧道建立單元,用于預先建立用于預設角色通訊的虛擬通訊網絡隧道;來源隧道識別單元,用于對當前會話的來源隧道進行識別,以判斷當前會話所屬的角色;第二權限調取單元,用于根據當前會話所屬的角色調取對應的會話權限配置。
在本實施方式中,采用隧道方式進行角色識別。在該過程中,客戶端通過與服務器建立虛擬專用通訊網絡隧道,通過區分來源隧道來進行角色的識別。如當客戶端角色分為管理員和普通用戶時,管理員客戶端和服務器進行通訊的隧道為虛擬專用通訊網絡隧道,而普通用戶客戶端和服務器進行通訊的隧道為普通網絡訪問,這樣,當客戶端和服務器建立會話時,只需識別會話的來源隧道即可判定會話所屬的角色的身份信息。
在本實施方式中,在服務進程接收到新連接后,即接收到新的任務時,創建與該新連接關聯的連接文件描述符和會話,并通過該連接文件描述符標記該會話,這樣,就可以對系統調用按會話進行識別,根據系統調用所涉及的連接文件描述符調整當前會話,以進行會話識別,根據識別的當前會話的會話權限控制當前系統調用。
在本文中,會話可以指示該會話屬于哪個角色,即該會話所屬的客戶端或者用戶,而不同的角色根據在系統中的身份擁有一組操作權限配置。不同的會話對應各自的會話權限。當用戶想要進行系統調用時,就需要進行會話權限的檢查,通過會話權限的檢查來判斷該會話對應的角色的數據訪問權限,而系統自身訪問權限的檢查用來判斷系統可以提供給該角色的數據訪問權限,只有當系統調用的數據能通過會話權限的檢查時才能夠執行當前系統調用。
其中,會話權限即表示了該會話對應的角色的訪問權限,從而在判斷系統調用是否符合權限時,無需再去判斷系統調用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權限的判斷過程。對于應用程序的進程對系統調用引入了會話權限的檢查來對于服務器中進行系統調用時的權限進行檢查校驗,以控制應用程序的權限,實現了當進程執行系統調用時不局限于進程用戶和文件的屬性而進行權限的控制。
綜上所述,本發明所提供的基于文件描述符和會話的權限控制方法和系統,在服務進程接收到新連接后,即接收到新的任務時,創建與該新連接關聯的連接文件描述符和會話,并通過該連接文件描述符標記該會話,這樣,就可以對系統調用按會話進行識別,根據系統調用所涉及的連接文件描述符調整當前會話,以進行會話識別,根據識別的當前會話的會話權限控制當前系統調用。會話權限即表示了該會話對應的角色的訪問權限,從而在判斷系統調用是否符合權限時,無需再去判斷系統調用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權限的判斷過程。對于應用程序的進程對系統調用引入了會話權限的檢查來對于服務器中進行系統調用時的權限進行檢查校驗,以控制應用程序的權限,實現了當進程執行系統調用時不局限于進程用戶和文件的屬性而進行權限的控制。
以上對本發明所提供一種基于文件描述符和會話的權限控制方法和系統進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護范圍內。