V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
digimoon
V2EX  ›  问与答

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

  •  
  •   digimoon · 2014-12-10 11:50:42 +08:00 · 4024 次点击
    这是一个创建于 3646 天前的主题,其中的信息可能已经有所发展或是发生改变。
    尝试更改 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

    然后查询了一下,看着配置应该没问题啊,不知道在什么地方漏配了?
    10 条回复    2014-12-12 14:34:13 +08:00
    BOYPT
        1
    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
        2
    digimoon  
    OP
       2014-12-10 12:53:49 +08:00
    @BOYPT 但是这个是上一级目录吧?就是/home/log这个目录,我要将log放在/home/log/apache这个目录下啊,也需要更改上一级的么?
    digimoon
        3
    digimoon  
    OP
       2014-12-10 15:39:41 +08:00
    @BOYPT 果然我往 /home/log 这个目录添加了 var_log_t 后就能正常启动了
    那么如果以后再遇到类似的情况的话,要怎么样才能知道程序要读哪个目录和需要哪个 tage 呢?
    光看这错误信息的话我也不知道要往上一级目录加 var_log_t 啊
    BOYPT
        4
    BOYPT  
       2014-12-10 17:40:40 +08:00   ❤️ 1
    @digimoon 配置selinux要看audit的log,你没贴出来我也是猜的。
    /var/log/audit/audit.log

    selinux对每个权限的请求,允许和拒绝之类的都记录在这,你看了就知道了。
    digimoon
        5
    digimoon  
    OP
       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
        6
    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
        7
    digimoon  
    OP
       2014-12-12 10:41:41 +08:00
    @BOYPT 这个我看过的,生成的那些就是这个 log 里面建议的做法例如 setsebool -P httpd_enable_homedirs 1 这样的,如果用了后就变 /home 目录下全部能读了,不是很精确的设法
    BOYPT
        8
    BOYPT  
       2014-12-12 10:49:01 +08:00
    @digimoon 我说的不是httpd_enable_homedirs啊
    BOYPT
        9
    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
        10
    digimoon  
    OP
       2014-12-12 14:34:13 +08:00
    @BOYPT 因为我之前已经试过,生成的te文件我打开看了一下,里面的就是类似httpd_enable_homedirs这样的东西也没地方设置路径什么的,不知道有没记错我有空再试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:02 · PVG 04:02 · LAX 12:02 · JFK 15:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.