welcome: please sign in
location: SelinuxHowto

SELinux Howto

1. 使用

1.1. 查阅问题,寻找解决方案

grep AVC /var/log/audit/audit.log

sealert -a /var/log/audit/audit.log > /path/to/mylog

解决问题时常用的命令之一是 restorecon,用于恢复文件/目录的默认属性:

restorecon -v file     # v is for 'verbose'
restorecon -R dir      # R is for 'recursive'

还有 semanage 管理 SELinux 策略。如

sudo semanage fcontext -a -t public_content_t "/data/ftproot(/.*)?"

/data/ftproot/ 目录和其中所有文件子目录添加文件属性 public_content_t,表示这些文件可以被 Apache, Samba, Rsync, Ftp, NFS 等服务读取。注意这只是自定义了这么一个规则,并没有立即修改目录属性。所以它实践中常和 restorecon 联用。

再举一个修复 rsync daemon 日志文件属性的例子。缺省情况下,rsync 的日志文件是 /var/log/rsync.log,SELinux 文件属性类型是 rsync_log_t。(参见 这里)如果我们把日志文件定成了 /var/log/rsyncd.log,则需要手动执行:

sudo semanage fcontext -a -t rsync_log_t /var/log/rsyncd.log
sudo restorecon -v /var/log/rsyncd.log

以给自定义的日志文件加上正确的 SELinux 属性。

1.2. 配置 SELinux 工作模式/状态

SELinux 有三种工作模式:

查询当前的工作模式,用 sestatus 这个命令。

修改工作模式,可以用 setenforce 命令在 Enforcing/Permissive 直接做热切换。

永久更改需要编辑 /etc/selinux/config 文件。

2. 参考

  1. http://wiki.centos.org/HowTos/SELinux

  2. http://www.centos.org/docs/5/html/5.2/Deployment_Guide/rhlcommon-section-0086.html

  3. http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/index.html


CategoryHowto

SelinuxHowto (2012-09-21 18:42:23由alick编辑)