selinux的規則在使用者空間定義、編譯和載入。selinux的使能也可在使用者空間進行。這樣為selinux的管理提供了很大的靈活性。
在使用者空間主要安裝的程式主要包括:
selinux庫和使用者空間程式、需要重新編譯連線到libselinux或者打補丁的應用程式(例如:sysvinit、coreutils等)和selinux的參考規則。
這裡先寫一下
selinux使用者空間程式吧,主頁如下:
checkpolicy、libselinux、libsemanage、libsepol、policycoreutils、sepolgen
幾個的安裝都是直接make就行,沒有configure的。安裝都是make install。
但libselinux和libsemanage最好
make pywrap && make install_pywrap
要不後面python會找不到selinux和semanage的模組的。
其實安裝都還簡單,都很順利的成功了,但中間遇到乙個極為鬱悶的問題。
在後來編譯參考規則的時候,一直在報解析規則檔案錯誤。就連最基本的規則
allow bin_t device_t:filesystem associate;
都會報 ":f" 不能識別。
policy/modules/kernel/corecommands.te":18:error 'syntax error' at token ':f' on line 2440:
allow bin_t device_t:filesystem associate;
#line 18
./checkmodule: error(s) encountered while parsing configuration
找了半天才發現是lfs裡面的lex導致checkpolicy編譯出問題了。
checkpolicy編譯的時候會用lex根據policy_scan.l生成y.tab.c。checkpolicy的makefile裡面如下:
lex.yy.c: policy_scan.l y.tab.c
$(lex) policy_scan.l
$(lex)預設是lex。
而根據lfs的手冊,flex安裝的時候把lex弄成如下的指令碼了:
cat > /usr/bin/lex << "eof"#!/bin/sh
# begin /usr/bin/lex
exec /usr/bin/flex -l "$@"
# end /usr/bin/lex
而出問題的就是那個 -l 的引數。去了那個引數或者把lex=flex make就一切都ok了!
cannot find your entry in the shadow passwd file.
重新配置、編譯一下policycoreutils,newrole會鏈結到libpam進行了。
關於linux下的selinux
1.mac 對訪問的控制徹底化,對所有的檔案 目錄 埠的訪問都是基於策略設定的,可由管理員時行設定 2.rbac 對於使用者只賦予最小許可權。使用者被劃分成了一些role 角色 即使是root使用者,如果不具有sysadm r角色的話,也不是執行相關的管理。role可以執行哪些domain,也是可以...
核心空間與使用者空間
1.核心態與使用者態的區別 1 核心態 的 不受任何限制,可以訪問 所有處理器指令集 記憶體位址以及i o空間 2 使用者態的 只能訪問其位址空間的頁表項中規定的虛擬位址。2.使用者態到核心態的切換方式 1 系統呼叫 軟中斷的一種 由使用者程序主動發起 2 異常 當cpu在執行執行在使用者態下的程式...
使用者空間和核心空間
應用程式是從頭到尾執行單個任務。模組只是預先註冊自己以便服務於將來的某個請求,模組初始化函式的任務就是為以後呼叫模組函式預先做準備,就像模組說 我在這,並且我能做這些工作。模組的退出函式將在模組被解除安裝前呼叫,他告訴核心 我要離開了,不要再讓我做任何事了。應用程式在退出時,可以不管資源的釋放或其他...