SELinux Notes

From Simson Garfinkel
Jump to navigationJump to search

SELinux is enabled by default on Centos 7 and on RHEL. It's a good thing to enable for internet-facing servers. It makes it far, far more complex to run a web server.


References:


Problem: apache can't access the files

   sudo /sbin/restorecon -R /var/www
   setsebool -P httpd_read_user_content 1

Running a web server:

If you can't run PHP, you may have the files in the wrong SELinux security context. You can change the security

  1. Use ls -lZ /var/www/html/xxx to check the security context
  2. You can give the web server read/write access to the files with:
   chcon -R -t httpd_sys_rw_content_t /var/www/html/xxx


CGI scripts under SELinux

You can see the selinux policy for cgi-bin with:

   $ semanage fcontext --list | grep cgi-bin

You can give the script the SELinux context with:

   $ chcon -t httpd_sys_script_exec_t /var/www/html/script.cgi

Check the file's SELinux attributes with `ls -laZ`:

   $ ls -laZ /var/www/html/script.cgi


References:


Disabling SELinux

  • edit /etc/selinux/config and change SELINUX from 'enforcing' to 'permissive'