我有一个运行在CentOS服务器上的Zend Web应用程序,SELinux以宽松模式运行(即访问控制决策logging在/var/log/audit/audit.log但不是强制执行的)。 该应用程序允许用户上传文件,这些文件保存在htdocs之外的目录结构中(例如/var/acme/myapp/files )。 应用程序需要编写和删除该目录中的文件,以及在该目录下创build,修改和删除目录。
FWIW,httpd以root身份启动,然后以独立用户apache身份产生进程。
我想将SELinux置于强制模式,但仍然严格地允许Zend应用程序执行上述的IO操作。 我也希望这些SELinux设置在重新启动后保留。 我该怎么做呢?
您需要将该文件夹重新标记为可通过httpd进行写入。
如果http是唯一的(并说ftp或ssh)将写入它然后这应该工作。
semanage fcontext -a -t httpd_sys_rw_content_t '/var/acme/myapp/files(/.*)?' fixfiles restore /var/acme/myapp/files
尝试写入文件夹,然后,它应该工作。