On Mon, 2005-01-31 at 19:34 -0500, Kanwar Ranbir Sandhu wrote:
On Mon, 2005-31-01 at 13:43 -0500, Colin Walters wrote:
> Right. Can you try moving the log into /var/log/httpd? I can't think
> of another solution short of installing the policy sources and adding
> the permissions. My guess is that it is actually this permission that
> is stopping the program; the others are likely harmless.
Moving it to /var/log/httpd generated this error in error.log for httpd:
Log file /var/log/httpd/rt.log couldn't be written or created.
Is the type on rt.log still httpd_log_t? Use ls -Z to inspect.
[root@mothership tmp]# ls -di /usr/tmp
12 /usr/tmp
Yeah, that's what I thought. If you look at the denial message, the
inode number was 12. If your /usr isn't on a separate filesystem, then
you know the denial was on the /usr/tmp symlink.
I'm baffled you're still getting the denial though. Can you confirm
with "ls -dZ /usr/tmp" that the type is usr_t?
avc: denied { getattr } for pid=2014 exe=/usr/bin/perl
path=/var/log
dev=dm-5 ino=129025 scontext=root:system_r:httpd_sys_script_t
tcontext=system_u:object_r:var_log_t tclass=dir
If after everything else doesn't work, here's what you can do:
yum install selinux-policy-targeted-sources
cd /etc/selinux/targeted/src/policy
echo 'allow httpd_sys_script_t var_log_t:dir { getattr search }' >
domains/misc/local.te
make reload
There's work going on in SELinux upstream to make this easier.
I got a "Operation not supported" error:
setfacl: /var/log/httpd: Operation not supported
Try:
mount -oremount,acl /
This should be the default IMO; also note you need to do it for each
filesystem you want ACLs on.
I actually tried turning off the separate log entirely, but I still
received errors:
avc: denied { ioctl } for pid=2305 exe=/usr/bin/perl
path=/var/log/httpd/error_log dev=dm-5 ino=129070
scontext=root:system_r:httpd_sys_script_t
tcontext=system_u:object_r:httpd_log_t tclass=file
I'd be fairly surprised if this is really the problem preventing the
program from working. Was this the only denial you got after turning
off the separate log?
Anyways, this shouldn't be harmful to turn on (following the previous
steps):
echo 'allow httpd_sys_script_t httpd_log_t:file { ioctl };' >>
domains/misc/local.te
make reload
Me = stumped.
Hope the above helps. Sometimes debugging this stuff can be a huge pain
if you have to dig into some obscure Perl library or the like, other
times it's a very simple fix. This unfortunately looks to be one of the
former cases :/