指定域轉換規則

2021-07-04 16:04:04 字數 1194 閱讀 9981

11.2.2.2.指定域轉換規則

現在看第8和第9行,這裡出現了兩次呼叫domain_auto_trans()巨集,這個巨集可能是strict示例策略中最常用的乙個巨集了,因為它定義了我們在第2章"概念"中討論到的允許域轉換的標準規則,你可以在./macros/core_macros.te檔案找到這個巨集的定義,實際上巨集通常很短,因為它要呼叫另乙個巨集doamin_trans(),這個巨集的定義如下:

# $1 is original domain, $2 is executable file type, $3 is new domain

define(`domain_auto_trans',`

domain_trans($1,$2,$3)

type_transition $1 $2:process $3;

')

domain_auto_trans()巨集授予了必要的許可權允許域轉換(通過呼叫domain_trans()巨集)預設通過type_transition規則使這個轉換自動進行。

如果我們進一步分析domain_trans()巨集,我們會發現更多規則,它們大部分都是標識程序間(父程序和子程序間)通訊(ipc)需要的許可,然而,這個巨集還包括了三個小型allow規則,如:

# 來自domain_trans macro的關鍵規則

# $1是原始域,$2是可執行檔案型別,$3 是新域

define(`domain_trans',`

allow $1 $3:process transition;  # 舊域可以轉換成新域

allow $1 $2:file ; # # 舊域可執行檔案型別

allow $3 $2:file entrypoint;  # 新域可以送入的檔案型別

# 剩下的domain_trans規則沒有顯示

')

注意第二個規則中許可欄位中有read和x_file_perms,然而read是針對file客體類別的許可,x_file_perms卻不是,相反,它是m4巨集的另乙個型別,它通常代表檔案可執行許可,我們在./macros/core_macros.te可以找到這個巨集的定義:

define(`x_file_perms', `')

因此,我們再看ping模組中的第8行和第9行,我們看到具有特權的管理域型別sysadm_t和啟動程序指令碼域initrc_t都可以訪問域ping_t,這就清晰地表明它們可以執行ping程式。

js數值轉換規則

如果是物件,則呼叫valueof 方法按照前述規則繼續轉化,若結果為nan,則呼叫物件的tostring 方法,再按照前面的規則轉換返回的字串 parseint 處理字串時會忽略字串前面的空格,若遇到第乙個字元不是數字或符號,則返回nan 如果是數字,則會解析直到所有字串或遇到非數字字元。會識別十六...

java 中型別轉換規則

首先boolean不能跟其他型別轉換。1.賦值時 整數預設的是int 浮點預設是double,即整型等號右側全部自動轉化為int,浮點型等號右側自動轉換為double。當大容量的資料型別賦值給小容量的資料型別時 需要強制型別轉換但是有乙個特例 例 byte b1 3 是沒有錯誤的,因為等號右邊如果是...

JavaScript JS中的 轉換規則

我們知道,和 這三者之間是不一樣的。具體怎樣的不一樣呢?今天來說說 的轉換規則。下面是一張 強制轉換規則表。引數型別1 引數型別2 強制轉換 null undefined 不轉換,總是返回true null或undefined 其它任何非null或undefined的型別 不轉換,總是返回false...