centos7 更改 httpd 的 log 位置, selinux 应该如何配置?

2014-12-10 11:50:42 +08:00
 digimoon
尝试更改 httpd_sys_content_t 后成功,然后以一样的方法更改 httpd_log_t 后总是启动不起来,报错信息是
httpd: (13)Permission denied: AH02291: Cannot access directory '/home/log/apache/' for error log of vhost defined at /etc/httpd/conf.d/test.conf:1

然后查询了一下,看着配置应该没问题啊,不知道在什么地方漏配了?
https://gist.github.com/moondigi/93745e9b61bf8f8f68e4
4034 次点击
所在节点    问与答
10 条回复
BOYPT
2014-12-10 12:36:39 +08:00
drwxr-xr-x. root root unconfined_u:object_r:user_home_dir_t:s0 ..

这不就有问题了嘛。
apapche要有这个目录的写权限,因为不单只是access_log error_log。
digimoon
2014-12-10 12:53:49 +08:00
@BOYPT 但是这个是上一级目录吧?就是/home/log这个目录,我要将log放在/home/log/apache这个目录下啊,也需要更改上一级的么?
digimoon
2014-12-10 15:39:41 +08:00
@BOYPT 果然我往 /home/log 这个目录添加了 var_log_t 后就能正常启动了
那么如果以后再遇到类似的情况的话,要怎么样才能知道程序要读哪个目录和需要哪个 tage 呢?
光看这错误信息的话我也不知道要往上一级目录加 var_log_t 啊
BOYPT
2014-12-10 17:40:40 +08:00
@digimoon 配置selinux要看audit的log,你没贴出来我也是猜的。
/var/log/audit/audit.log

selinux对每个权限的请求,允许和拒绝之类的都记录在这,你看了就知道了。
digimoon
2014-12-11 11:40:56 +08:00
@BOYPT 我刚刚将 /home/log 目录的标签弄回原来的然后再触发一下错误生成 audit 的 log,硬是没看懂应该怎么做,里面的那建议似乎也没提示要在 /home/log 这里加 var_log_t,能解释一下怎么看这 log 和排错么?

https://gist.github.com/moondigi/3642f71fbf5b5a06f8c2
BOYPT
2014-12-12 10:29:52 +08:00
根据RH的文档,是触发了audit的log后,用audit2allow根据log生成允许指令的。
http://wiki.centos.org/HowTos/SELinux

7. Creating Custom SELinux Policy Modules with audit2allow
digimoon
2014-12-12 10:41:41 +08:00
@BOYPT 这个我看过的,生成的那些就是这个 log 里面建议的做法例如 setsebool -P httpd_enable_homedirs 1 这样的,如果用了后就变 /home 目录下全部能读了,不是很精确的设法
BOYPT
2014-12-12 10:49:01 +08:00
@digimoon 我说的不是httpd_enable_homedirs啊
BOYPT
2014-12-12 10:53:39 +08:00
@digimoon 是从log里面grep出denied的log,然后传给audit2allow生成一个.te文件,然后根据需要修改.te,然后checkmodule把.te转换成.mod,然后semodule_package转换出.pp,从而生成一个自定义的selinux规则包,然后semodule挂载这个规则
digimoon
2014-12-12 14:34:13 +08:00
@BOYPT 因为我之前已经试过,生成的te文件我打开看了一下,里面的就是类似httpd_enable_homedirs这样的东西也没地方设置路径什么的,不知道有没记错我有空再试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/152838

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX