2010年7月14日 星期三

Debian 5 之 se_apt-get

se_apt-get? 這是甚麼? man 一下 se_apt-get 說甚麼 psuedo terminal, physical terminal 的, 都看沒有, which 一下, 路徑是 /usr/sbin/se_apt-get, file 一下, 是 se_dpkg 的 symbolic link, which 一下, 路徑是 /usr/sbin/se_dpkg, file 一下, 是 shell script, vi 一下



意思是執行 se_apt-get 就是執行 /usr/sbin/run_init apt-get, 這有甚麼差? man 一下 run_init 只說 run an init script in the proper SELinux context, 這未免也講的太簡單了吧, 看得懂才有鬼. 另一個類似的指令, se_aptitude 也是一樣. 原來如果直接下指令, 例如 aptitude, 那 ps aZ 看到的 context 會跟下指令的使用者, 有一樣的 context, 但這應該不太對, 因此透過 /usr/sbin/run_init 就會有正確的 context


好像有點了解 man 裡面所講的 psuedo terminal 的用意了.

之前執行 se_apt-get 都會出現 execvp: Permission denied 也不知原因為何, 谷歌也找不出所以然, 但拼湊的結果似乎解決了, 但還是充滿著疑惑. 先來裝一下 auditd, 把 selinux 的訊息吐到 /var/log/audit/audit.log, 再來問一下為何 audit2why -i /var/log/audit/audit.log, 出來的結果或許有用, 再來製作"允許", 先看一下"允許"了甚麼 audit2allow -l -i /var/log/audit/audit.log -o local.if, 產生 local.if

#============= unconfined_t ==============
allow unconfined_t initrc_t:process transition;

接著 audit2allow -M local -i /var/log/audit/audit.log, 產生 policy 檔案, local.pp, 最後載入 semodule -i local.pp, 就成了, 但這有甚麼意義, 被 selinux 擋, 然後 allow? 這樣會有什麼保護的作用?

沒有留言:

張貼留言