ตั้งใจไว้ว่าต่อไปนี้จะพยายามใช้ SELinux เพื่อเพิ่มความปลอดภัยของเซิร์ฟเวอร์ลีนุกซ์
แต่ในบางครั้งจำเป็นต้องแก้ไข policy ของ SELinux เพื่อเหตุผลบางประการ เช่นที่เคยเขียนถึงไปแล้ว แก้ไข Joomla Directory Permissions Unwritable บนลีนุกซ์ที่เปิด SELinux
โปรแกรมที่ใช้แก้ไข policy นอกจาก chcon แล้ว ยังมีอีกหลายโปรแกรม เช่น audit2allow และ semanage ที่ใช้กัน
สำหรับ Fedora 16 ต้องติดตั้งไฟล์ rpm เพิ่มเติม คือ policycoreutils-python ซึ่งจะมีโปรแกรม (เขียนด้วย python) เพื่อใช้จัดการ SELinux ได้
ไฟล์ rpm นี้อยู่ในแผ่นดีวีดีติดตั้งอยู่แล้ว ใส่แผ่นแล้วใช้คำสั่ง mount
[root@fc16-64a ~]# mount /dev/cdrom /mnt/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only [root@fc16-64a ~]# cd /mnt/cdrom/Packages/
ติดตั้งไฟล์ rpm ต่างๆ ดังนี้
[root@fc16-64a Packages]# rpm -i audit-libs-python-2.1.3-4.fc16.x86_64.rpm [root@fc16-64a Packages]# rpm -i libcgroup-0.37.1-4.fc16.x86_64.rpm [root@fc16-64a Packages]# rpm -i libselinux-python-2.1.5-5.1.fc16.x86_64.rpm [root@fc16-64a Packages]# rpm -i libsemanage-python-2.1.2-1.fc16.x86_64.rpm [root@fc16-64a Packages]# rpm -i python-IPy-0.75-1.fc16.noarch.rpm [root@fc16-64a Packages]# rpm -i setools-libs-3.3.7-16.fc16.x86_64.rpm [root@fc16-64a Packages]# rpm -i setools-libs-python-3.3.7-16.fc16.x86_64.rpm [root@fc16-64a Packages]# rpm -i policycoreutils-python-2.1.4-3.fc16.x86_64.rpm
ตัวอย่างการรันโปรแกรม semanage
[root@fc16-64a ~]# semanage
/usr/sbin/semanage: semanage [ -S store ] -i [ input_file | - ] semanage [ -S store ] -o [ output_file | - ]
semanage login -{a|d|m|l|D|E} [-nsr] login_name | %groupname semanage user -{a|d|m|l|D|E} [-LnrRP] selinux_name semanage port -{a|d|m|l|D|E} [-ntr] [ -p proto ] port | port_range semanage interface -{a|d|m|l|D|E} [-ntr] interface_spec semanage module -{a|d|m} [--enable|--disable] module semanage node -{a|d|m|l|D|E} [-ntr] [ -p protocol ] [-M netmask] addr semanage fcontext -{a|d|m|l|D|E} [-efnrst] file_spec semanage boolean -{d|m} [--on|--off|-1|-0] -F boolean | boolean_file semanage permissive -{d|a|l} [-n] type semanage dontaudit [ on | off ]
# yum install policycoreutils-python
# grep prog /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp