一種權限控制方法和系統與流程
2023-06-03 04:59:39 2

本發明涉及訪問權限管理技術領域,特別是涉及一種權限控制方法和系統。
背景技術:
隨著科學技術的發展,越來越多的網際網路用戶通過遠程訪問的方式來獲取外部網絡的共享資源。想要實現遠程訪問,就需要用戶的客戶端通過遠程登錄的方式連接到伺服器,然後由伺服器調取資料庫中的相應信息返回至客戶端。
然而,在網際網路應用中,伺服器為不同的用戶提供不同的服務,即不同的客戶端具有不同的相應訪問權限。各客戶端只能在自身的訪問權限範圍內獲取資料庫中的信息。通常情況下,當用戶在進行遠程訪問時,伺服器進行系統調用權限的判斷,通常情況下直接作用於文件系統的數據(文件和目錄)和資料庫連接,所謂的系統調用指的是進程陷入作業系統內核執行系統功能的調用,如創建文件、修改文件和執行程序。而系統權限通常指的是系統調用時的權限,典型情況下,權限通常由文件屬性和進程運行的所屬用戶組決定。當進程執行系統調用時就會受到進程用戶和文件的屬性的局限。
因而,如何實現當進程執行系統調用時不局限於進程用戶和文件的屬性而進行權限的控制,是本領域技術人員目前需要解決的技術問題。
技術實現要素:
本發明的目的是提供一種權限控制方法和系統,可以實現當進程執行系統調用時不局限於進程用戶和文件的屬性而進行權限的控制。
為解決上述技術問題,本發明提供了如下技術方案:
一種權限控制方法,包括:
在應用程式的進程進行系統調用時,獲取該系統調用所屬的會話信息;
根據所述會話信息對應的會話權限和所述進程所在系統的系統自身訪問權限對所述系統調用進行權限檢查;
在所述系統調用滿足所述會話權限和所述系統自身訪問權限時,則執行當前系統調用,並進行系統調用返回。
優選地,所述根據所述會話信息對應的會話權限和所述進程所在系統的系統自身訪問權限對所述系統調用進行權限檢查,包括:
判斷當前系統調用是否在所述會話信息對應的所述會話權限內;
若是,則判斷所述當前系統調用是否在系統的所述系統自身訪問權限內。
優選地,所述在所述系統調用滿足所述會話權限和所述系統自身訪問權限時,則執行當前系統調用,並進行系統調用返回,包括:
若判定所述當前系統調用在系統的所述系統自身訪問權限內,則執行當前系統調用;
在所述當前系統調用完成後進行系統調用返回。
優選地,在所述執行當前系統調用之後,還包括:
判斷所述當前系統調用的結果是否在所述會話權限內;
若是,則進行系統調用返回;
若否,則清空系統調用返回數據,並進行系統調用返回。
一種權限控制系統,包括:
獲取模塊,用於在應用程式的進程進行系統調用時,獲取該系統調用所屬的會話信息;
權限檢查模塊,用於根據所述會話信息對應的會話權限和所述進程所在系統的系統自身訪問權限對所述系統調用進行權限檢查;
執行模塊,用於在所述系統調用滿足所述會話權限和所述系統自身訪問權限時,執行當前系統調用,並進行系統調用返回。
優選地,所述權限檢查模塊包括:
第一判斷單元,用於判斷當前系統調用是否在所述會話信息對應的所述會話權限內;
第二判斷單元,用於在所述第一判斷單元判定當前系統調用在所述會話信息對應的所述會話權限內時,判斷所述當前系統調用是否在系統的所述系統自身訪問權限內。
優選地,所述執行模塊包括:
系統調用單元,用於在所述第二判斷單元判定所述當前系統調用在系統的所述系統自身訪問權限內時,執行當前系統調用;
調用返回單元,用於在所述當前系統調用完成後進行系統調用返回。
優選地,所述執行模塊還包括:
第三判斷單元,用於在所述系統調用單元執行當前系統調用之後,判斷所述當前系統調用的結果是否在所述會話權限內,並在判定所述當前系統調用的結果在所述會話權限內時向所述調用返回單元發送系統調用返回控制信號;
數據清空單元,用於在所述第三判斷單元判定所述當前系統調用的結果不在所述會話權限內時,清空系統調用返回數據,並向所述調用返回單元發送系統調用返回控制信號。
與現有技術相比,上述技術方案具有以下優點:
本發明實施例所提供的一種權限控制方法,包括:在應用程式的進程進行系統調用時,獲取該系統調用所屬的會話信息;根據會話信息對應的會話權限和進程所在系統的系統自身訪問權限對系統調用進行權限檢查;在系統調用滿足會話權限和系統自身訪問權限時,則執行當前系統調用,並進行系統調用返回。對於應用程式的進程對系統調用引入了會話權限的檢查來配合系統系統自身訪問權限對於伺服器中進行系統調用時的權限進行檢查校驗,以控制應用程式的權限,實現了當進程執行系統調用時不局限於進程用戶和文件的屬性而進行權限的控制。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明一種具體實施方式所提供的權限控制方法流程圖;
圖2為本發明一種具體實施方式所提供的權限控制系統結構示意圖。
具體實施方式
本發明的核心是提供一種權限控制方法和系統,可以實現當進程執行系統調用時不局限於進程用戶和文件的屬性而進行權限的控制。
為了使本發明的上述目的、特徵和優點能夠更為明顯易懂,下面結合附圖對本發明的具體實施方式做詳細的說明。
在以下描述中闡述了具體細節以便於充分理解本發明。但是本發明能夠以多種不同於在此描述的其它方式來實施,本領域技術人員可以在不違背本發明內涵的情況下做類似推廣。因此本發明不受下面公開的具體實施方式的限制。
請參考圖1,圖1為本發明一種具體實施方式所提供的權限控制方法流程圖。
本發明的一種具體實施方式提供了一種權限控制方法,包括:
s11:在應用程式的進程進行系統調用時,獲取該系統調用所屬的會話信息。
s12:根據會話信息對應的會話權限和進程所在系統的系統自身訪問權限對系統調用進行權限檢查。
s13:在系統調用滿足會話權限和系統自身訪問權限時,則執行當前系統調用,並進行系統調用返回。
在本實施方式中,當客戶端通過預設的應用程式來訪問伺服器,以獲取資料庫中的數據時,客戶端和伺服器之間會建立關於系統調用的會話。在此獲取該會話的會話信息,該會話信息可以指示該會話屬於哪個角色,即該會話所屬的客戶端或者用戶,而不同的角色在系統中的身份擁有一組操作權限配置。不同的會話信息對應各自的會話權限。當用戶想要進行系統調用時,就需要進行會話權限和系統系統自身訪問權限的檢測,通過會話權限的檢查來判斷該會話對應的角色的數據訪問權限,而系統系統自身訪問權限的檢查用來判斷系統可以提供給該角色的數據訪問權限,只有當系統調用的數據既能通過會話權限的檢查,又能通過系統的系統自身訪問權限的檢查,此時才執行當前系統調用,噹噹前系統調用執行完成後進行系統調用返回,執行新的系統調用。
其中,會話權限即表示了該會話對應的角色的訪問權限,從而在判斷系統調用是否符合權限時,無需再去判斷系統調用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權限的判斷過程。對於應用程式的進程對系統調用引入了會話權限的檢查來配合系統系統自身訪問權限對於伺服器中進行系統調用時的權限進行檢查校驗,以控制應用程式的權限,實現了當進程執行系統調用時不局限於進程用戶和文件的屬性而進行權限的控制。
需要說明的是,在本文中的整個通訊服務過程中,系統調用主要包括應用程式對磁碟文件系統進行文件讀寫系統調用,和應用程式對資料庫程序的資料庫連接讀寫的系統調用。在這兩種情況下進行系統調用時進行權限的檢查判斷。
還需要說明的是,系統調用還包括資料庫程序對資料庫數據進行數據讀寫的系統調用,由於在技術上權限檢查的意義不大,因此,在本實施方式中,可以不對此處的系統調用進行權限檢查判斷。
在本發明的一種實施方式中,根據會話信息對應的會話權限和進程所在系統的系統自身訪問權限對系統調用進行權限檢查,包括:判斷當前系統調用是否在會話信息對應的會話權限內;若是,則判斷當前系統調用是否在系統的系統自身訪問權限內。
在系統調用滿足會話權限和系統自身訪問權限時,則執行當前系統調用,並進行系統調用返回,包括:若判定當前系統調用在系統的系統自身訪問權限內,則執行當前系統調用;在當前系統調用完成後進行系統調用返回。
在本實施方式中,在獲取了系統調用的所述會話信息後,首先判斷當前系統調用是否在會話權限內,即通過會話權限檢測系統調用是否處於該會話對應的角色的權限範圍內,若通過檢測則判斷當前系統調用是否處於系統的系統自身訪問權限內,即系統是否對該會話對應的角色開放了對應的權限,若也通過檢查,則執行當前系統調用。
需要說明的是,若判定當前系統調用不在會話信息對應的會話權限內,則表示檢查失敗,直接進入系統調用返回。
進一步地,在本發明的一種實施方式中,在執行當前系統調用之後,還包括:
判斷當前系統調用的結果是否在會話權限內;
若是,則進行系統調用返回;
若否,則清空系統調用返回數據,並進行系統調用返回。
在本實施方式中,由於在執行系統調用後得到的調用結果和調用前會發生一定的變化,而系統調用後的結果可能會不滿足會話權限和/或系統自身的調用權限,因此,在執行完系統調用後,還通過對當前系統調用的結果進行權限的校驗。以進一步完善系統調用的權限控制。
需要說明的是,在清空系統調用返回數據時,進行系統調用返回,指的是將系統調用的內容進行返回,以便於後續的處理等。
還需要說明的是,在本發明中,還可以在獲取了系統調用的會話信息後,先進行系統系統自身訪問權限的檢查,若檢查通過,直接執行系統調用,然後對系統調用的結果進行會話權限的檢查。也可以實現當進程執行系統調用時不局限於進程用戶和文件的屬性而進行權限的控制。
請參考圖2,圖2為本發明一種具體實施方式所提供的權限控制系統結構示意圖。
相應地,本發明還提供了一種權限控制系統,包括:
獲取模塊1,用於在應用程式的進程進行系統調用時,獲取該系統調用所屬的會話信息;
權限檢查模塊2,用於根據會話信息對應的會話權限和進程所在系統的系統自身訪問權限對系統調用進行權限檢查;
執行模塊3,用於在系統調用滿足會話權限和系統自身訪問權限時,執行當前系統調用,並進行系統調用返回。
在本實施方式中,會話權限即表示了該會話對應的角色的訪問權限,從而在檢查系統調用是否符合權限時,無需再去檢查系統調用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權限的判斷過程。對於應用程式的進程對系統調用引入了會話權限的檢查來配合系統系統自身訪問權限對於伺服器中進行系統調用時的權限進行檢查校驗,以控制應用程式的權限,實現了當進程執行系統調用時不局限於進程用戶和文件的屬性而進行權限的控制。
在本發明的一種實施方式中,權限檢查模塊包括:第一判斷單元,用於判斷當前系統調用是否在會話信息對應的會話權限內;第二判斷單元,用於在第一判斷單元判定當前系統調用在會話信息對應的會話權限內時,判斷當前系統調用是否在系統的系統自身訪問權限內。
執行模塊包括:系統調用單元,用於在第二判斷單元判定當前系統調用在系統的系統自身訪問權限內時,執行當前系統調用;調用返回單元,用於在當前系統調用完成後進行系統調用返回。
在本實施方式中,在獲取了系統調用的所述會話信息後,首先判斷當前系統調用是否在會話權限內,即通過會話權限檢測系統調用是否處於該會話對應的角色的權限範圍內,若通過檢測則判斷當前系統調用是否處於系統的系統自身訪問權限內,即系統是否對該會話對應的角色開放了對應的權限,若也通過檢查,則執行當前系統調用。
進一步地,執行模塊還包括:第三判斷單元,用於在系統調用單元執行當前系統調用之後,判斷當前系統調用的結果是否在會話權限內,並在判定當前系統調用的結果在會話權限內時向調用返回單元發送系統調用返回控制信號;數據清空單元,用於在第三判斷單元判定當前系統調用的結果不在會話權限內時,清空系統調用返回數據,並向調用返回單元發送系統調用返回控制信號。
在本實施方式中,由於在執行系統調用後的數據會發生一定的變化,因此,在執行完系統調用後,還通過對當前系統調用的結果進行權限的校驗。以進一步完善系統調用的權限控制。
綜上所述,本發明所提供的權限控制方法和系統,當用戶想要進行系統調用時,就需要進行會話權限和系統系統自身訪問權限的檢測,通過會話權限的檢查來判斷該會話對應的角色的數據訪問權限,而系統系統自身訪問權限的檢查用來判斷系統可以提供給該角色的數據訪問權限,只有當系統調用的數據既能通過會話權限的檢查,又能通過系統的系統自身訪問權限的檢查,此時才執行當前系統調用,噹噹前系統調用執行完成後進行系統調用返回,執行新的系統調用。無需再去判斷系統調用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權限的判斷過程。對於應用程式的進程對系統調用引入了會話權限的檢查來配合系統系統自身訪問權限對於伺服器中進行系統調用時的權限進行檢查校驗,以控制應用程式的權限,實現了當進程執行系統調用時不局限於進程用戶和文件的屬性而進行權限的控制。
以上對本發明所提供一種權限控制方法和系統進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明及其核心思想。應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護範圍內。