semodule is the tool used to manage SELinux policy modules, including installing, upgrading, listing and removing modules. semodule may also be used to force a rebuild of policy from the module store and/or to force a reload of policy without performing any other transaction. semodule acts on module packages created by semodule_package. Conventionally, these files have a .pp suffix (policy package), although this is not mandated in any way.
# Install or replace a base policy package. $ semodule -b base.pp # Install or replace a non-base policy package. $ semodule -i httpd.pp # Install or replace all non-base modules in the current directory. # This syntax can be used with -i/u/r/E, but no other option can be entered after the module names $ semodule -i *.pp # Install or replace all modules in the current directory. $ ls *.pp | grep -Ev "base.pp|enableaudit.pp" | xargs /usr/sbin/semodule -b base.pp -i # List non-base modules. $ semodule -l # List all modules including priorities $ semodule -lfull # Remove a module at priority 100 $ semodule -X 100 -r wireshark # Turn on all AVC Messages for which SELinux currently is "dontaudit"ing. $ semodule -DB # Turn "dontaudit" rules back on. $ semodule -B # Disable a module (all instances of given module across priorities will be disabled). $ semodule -d alsa # Install a module at a specific priority. $ semodule -X 100 -i alsa.pp # List all modules. $ semodule --list=full # Set an alternate path for the policy root $ semodule -B -p "/tmp" # Set an alternate path for the policy store root $ semodule -B -S "/tmp/var/lib/selinux" # Write the HLL version of puppet and the CIL version of wireshark # modules at priority 400 to the current working directory $ semodule -X 400 --hll -E puppet --cil -E wireshark
This manual page was written by Dan Walsh <dwalsh@redhat.com>. The program was written by Karl MacMillan <kmacmillan@tresys.com>, Joshua Brindle <jbrindle@tresys.com>, Jason Tang <jtang@tresys.com>