現在來作點有意思的事情! 我們將會建立一個 SE Linux 使用者並分配給他一個角色,然後為使用者設定預設的安全上下文。 在舊的SE Linux環境下, 封裝程式的建立用 vipw (svipw)來設置,比如, useradd (suseradd), passwd (spasswd), chfn (schfn) 等, 在新的 SE Linux環境下, 這些程式有其 它的名稱。
5.1 建立一個新的使用者
我們現在建立一個新使用者。 我們叫它setest。
轉換到 sysadm_r:sysadm_t 角色:使用者。 現在用 useradd 命令添加使用者setest:
root@kaos:~# id
uid=0(root) gid=0(root) groups=0(root) coNtext=faye:sysadm_r:sysadm_t sid=398
運行id命令檢查確認你的 uid 是 0 並且你的身份是在sysadm_r:sysadm_t 角色:域中。 如果你的uid是你其它似有使用者的, 請先用 su 命令轉換乘 root 身份, 然後運行newrole -r 命令。
root@kaos:~# useradd -c "SE Linux test user" -m -d /home/setest -g users -s /bin/bash -u 1005 setest
root@kaos:~# finger setest
Login: setest Name: SE Linux test user
Directory: /home/setest Shell: /bin/bash
Never logged in.
No mail.
No Plan.
root@kaos:~# passwd setest
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
setest 使用者現在已經添加完了。
5.2 給使用者分配角色和申請改變
現在我們想給setest使用者設置一個角色。 我們希望他可以訪問user_r 角色。 需要配置的檔是/etc/selinux/users ,你現在可以用你最喜歡的編輯器打開他,並先流覽一遍。
在檔的結尾添加如下內容:
user setest roles { user_r };
這行的意思是允許 setest 使用者進入user_r 角色。 如果你還希望 setest 使用者還可以訪問sysadm_r 角色, 你可以添加:
user setest roles { user_r sysadm_r };
我們現在要讓我們的設置生效,所以我們可以在sysadm_r:sysadm_t 角色:域的情況下運行以下命令:
make -C /etc/selinux load
這將花費一段時間,這段時間裡會創建策略的資料檔案並用gzip 壓縮。 如果命令成功執行並退出, 你將看到以下提示:
Success
touch tmp/load
make: LeaHTTP://www.aliyun.com/zixun/aggregation/18902.html">ving directory `/usr/share/selinux/policy/ current'
在預設的角色user_r下的使用者是不允許向 /etc/selinux/users 檔添加內容的。 如果你想要他們可以使用 user_r 之外的一個使用者角色或者讓他們能夠改變他們自己的密碼,就要他們加入這一個檔,或在 SE Linux 的記錄資訊的適當部分添加他們的使用者名。
現在我們來設置一個缺省的安全上下文。