続:Fedora Core 2 〜 ポリシーの追加
7月に躓いた「sudo: unable to exec /usr/sbin/sesh: Permission denied」への反撃で、ポリシーの追加を行う。言うまでもなくここがSELinuxの根幹であり、正念場だ。
ひとまず
[root@fedora yano]# setenforce 0
でenforcingモードをpermissiveモードに切り替えて、ポリシーのソース・ファイルをインストール。http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/から、checkpolicy-1.10-1.i386.rpm と policy-sources-1.11.3-3.noarch.rpm をダウンロードし、
[root@fedora yano]# rpm -ivh checkpolicy* policy-sources*
を叩く。もしmake reloadのとこで
Can't open '/etc/security/selinux/policy.18': そのようなファイルやディレクトリはありません
というエラーが出る場合は、下記教えに従って /etc/security/selinux/src/policy/Makefile を修正。
/etc/security/selinux/src/policy/Makefile を次のようにすれば回避できます。
$(LOADPOLICY) $(INSTALLDIR)/policy.`cat /selinux/policyvers`
という行を
$(LOADPOLICY) $(INSTALLDIR)/policy.17
とします。
[http://www.selinux.gr.jp/documents/FC2-SELinuxmemo.html](http://www.selinux.gr.jp/documents/FC2-SELinuxmemo.html) より引用
ここからが設定のメイン。**“audit2allow -d -l”の出力から必要そうな行をコピーして、policy/domains に拡張子“te”**のテキストファイルを作成し、make reloadが完了すれば終りだ。
[root@fedora yano]# audit2allow -d -l
:
**
allow user_sudo_t shell_exec_t:file { execute_no_trans };
allow user_sudo_t ls_exec_t:file { execute execute_no_trans read };
allow user_sudo_t var_log_t:dir { getattr search };
allow user_sudo_t var_log_t:file { append getattr lock read };
**
:
[root@fedora yano]# cd /etc/security/selinux/src/policy/domains
[root@fedora domains]# cat > sudo.te
**
allow user_sudo_t shell_exec_t:file { execute_no_trans };
allow user_sudo_t ls_exec_t:file { execute execute_no_trans read };
allow user_sudo_t var_log_t:dir { getattr search };
allow user_sudo_t var_log_t:file { append getattr lock read };
**
[root@fedora domains]# cd ..
[root@fedora policy]# setenforce 1
[root@fedora policy]# make reload
但しこれだけ何にでもsudoが使えるわけではなく、コマンドや目的に応じてallow行にポリシーを追加していかなければならない。う〜ん、なかなかどうして面倒だ。
参照
日経IT Pro http://itpro.nikkeibp.co.jp/
日本SELinuxユーザー会 http://www.selinux.gr.jp/
- Fedora Core2でSELinux利用メモ http://www.selinux.gr.jp/documents/FC2-SELinuxmemo.html 2004年10月16日