Difference between revisions of "FileLabelRecipe"

From SELinux Wiki
Jump to: navigation, search
(text review)
Line 1: Line 1:
If you want to change the context of a file the ''chcon'' program can do this.  However, changes made this way will not preserved if the file is relabeled by using ''restorecon'' or using the ''/.autorelabel'' file and rebooting. The ''semanage'' program is used to make customizations to the SELinux policy configuration.
+
The chcon program can change the context of a file; however, changes made with chcon are not preserved if the file is relabeled with restorecon, or if the entire file system is relabeled using "touch /.autorelabel" and then rebooting. The semanage program can make persistent customizations to the SELinux policy configuration.
  
For example, if you want to set the file '''/path/to/myfile''' to have the type '''myfile_t''', the following semanage command can be run:
+
To run semanage, you must be the Linux root user and in a role allowed to run semanage, such as sysadm_r or unconfined_r. The following example uses semanage to set the myfile_t type for the "/path/to/myfile" file:
  
 
  # semanage fcontext -a -t myfile_t /path/to/myfile
 
  # semanage fcontext -a -t myfile_t /path/to/myfile
  
You must be the root Linux user and in a role allowed to run semanage, such as ''sysadm_r'' or ''unconfined_r''.
+
This semanage command adds an entry in the system file contexts. This entry will be persistent, even after the distribution policy is updated. If you change policies, for example, from targeted to MLS, you must re-run the above command to add the entry to the new policy. Run the restorecon command to apply the changes added via "semanage fcontext":
 
+
This will add an entry in the system file contexts. This entry will be persistent, even when the distribution policy is updated. However, if you change policies, e.g. from targeted to mls, you will have to re-run the above command to add it to the new policy. This can be tested by running the ''restorecon'' command and examining the file's context afterward:
+
  
 
  # restorecon /path/to/myfile
 
  # restorecon /path/to/myfile
 
  # ls -Z /path/to/myfile
 
  # ls -Z /path/to/myfile
 
  system_u:object_r:myfile_t /path/to/myfile
 
  system_u:object_r:myfile_t /path/to/myfile

Revision as of 10:19, 25 November 2009

The chcon program can change the context of a file; however, changes made with chcon are not preserved if the file is relabeled with restorecon, or if the entire file system is relabeled using "touch /.autorelabel" and then rebooting. The semanage program can make persistent customizations to the SELinux policy configuration.

To run semanage, you must be the Linux root user and in a role allowed to run semanage, such as sysadm_r or unconfined_r. The following example uses semanage to set the myfile_t type for the "/path/to/myfile" file:

# semanage fcontext -a -t myfile_t /path/to/myfile

This semanage command adds an entry in the system file contexts. This entry will be persistent, even after the distribution policy is updated. If you change policies, for example, from targeted to MLS, you must re-run the above command to add the entry to the new policy. Run the restorecon command to apply the changes added via "semanage fcontext":

# restorecon /path/to/myfile
# ls -Z /path/to/myfile
system_u:object_r:myfile_t /path/to/myfile