服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

SELinux – 在文件创build时自动应用上下文的规范方式

我目前的理解是,您必须手动使用restorecon才能将所需的上下文应用于新创build的文件或目录,除非您对从其父目录inheritance的上下文感到满意。 我想知道是否有可能自动应用上下文创build基于其path而不必运行restorecon 。 我用googlesearch了一下,发现了Dan Walsh的这篇文章 ,他提到了使用inotify改变创build上下文的restorecond 。 他也指出了这个明显的问题(比赛条件)。 如果孩子不应该从父目录inheritance它的上下文,这是自动解决重新上下文问题的唯一方法吗? 一个问题是restorecond似乎没有像/etc/selinux/targeted/contexts/files/file_contexts那样处理条目,也就是说没有正则expression式,并且它不能recursion地工作,所以/etc/selinux/restorecond.conf不能包含类似的东西 /var/www(/.*)?/logs(/.*)? 要么 /var/www/* 甚至 /var/www/*/logs 有没有办法解决这个问题? 编辑: 根据@迈克尔的答案,这应该工作OOTB,如果各自的规则存在,但它不: # rm -rf /var/www/foo # semanage fcontext -a -t httpd_log_t '/var/www/foo/logs' # grep '/var/www.*logs' /etc/selinux/targeted/contexts/files/file_contexts* /etc/selinux/targeted/contexts/files/file_contexts:/var/www(/.*)?/logs(/.*)? system_u:object_r:httpd_log_t:s0 /etc/selinux/targeted/contexts/files/file_contexts.local:/var/www/foo/logs system_u:object_r:httpd_log_t:s0 # matchpathcon /var/www/foo/logs /var/www/foo/logs system_u:object_r:httpd_log_t:s0 # mkdir -p /var/www/foo/logs # touch /var/www/foo/logs/quux # ls -alZ /var/www/foo/logs* drwxr-xr-x. root […]