本篇承接自SELinux自定義策略初步,請閱讀過該文章后再閱讀本章
因為selinux最基本的安全策略就是類型強制策略(TE),因此所涉及的上下文其實指的是安全上下文中的type部分。
selinux策略語句結構如下
訪問向量規則 主體上下文 客體上下文 : 類型 許可類型
訪問向量規則一般如下:
allow 表示允許主體對某類客體的某些操作
dontaudit 表示不記錄違反規則的決策信息
auditallow 表示允許操作同時記錄訪問決策信息
nerverallow 表示不允許主體對客體執行某種操作
類型有很多,常見的例如:file(文件) dir(目錄) process(進程),不同的類型有不同的許可。
常見的許可有open,read,write,entrypoint等,但不同的類型所支持的許可也不同,例如fd類型僅支持use這一種許可 。
具體的類型和許可對應關系可以查找selinuxwiki
-----------------------------------------------------------------------------------------
在編寫策略時,我們可能還會遇到一些宏,這些宏一般都是定義在對應的if文件中,大部分位於/usr/share/selinux/devel/include中,也可以find 后綴為if的文件,宏的命名非常規則,例如storage_getattr_fixed_disk_dev宏就位於storage.if中。