[refpolicy] Debian: logrotate_t needs to execute syslogd (test -x syslogd)

Daniel J Walsh dwalsh at redhat.com
Fri Aug 29 09:49:06 CDT 2008


Christopher J. PeBenito wrote:
> On Wed, 2008-08-27 at 18:30 +0200, Václav Ovsík wrote:
>> Hi,
>> while running cron.daily script /etc/cron.daily/sysklogd following
>> denials appeared:
>>
>> Aug 27 13:13:50 sid kernel: [  554.238311] type=1400
>> audit(1219835630.106:5): avc:  denied  { execute } for  pid=5273
>> comm="sysklogd" name="syslogd" dev=hda2 ino=28
>> scontext=unconfined_u:system_r:logrotate_t:s0
>> tcontext=system_u:object_r:syslogd_exec_t:s0 tclass=file
>> Aug 27 13:13:50 sid kernel: [  554.243321] type=1300
>> audit(1219835630.106:5): arch=40000003 syscall=33 success=no exit=-13
>> a0=9d1c0a8 a1=1 a2=b7ef7ff4 a3=0 items=0 ppid=5161 pid=5273
>> auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0
>> fsgid=0 tty=(none) ses=4294967295 comm="sysklogd" exe="/bin/bash"
>> subj=unconfined_u:system_r:logrotate_t:s0 key=(null)
>>
>> This is caused by line:
>>
>>     test -x /sbin/syslogd || exit 0
>>
> 
>> @@ -133,6 +133,9 @@
>>  
>>         # for syslogd-listfiles
>>         logging_read_syslog_config(logrotate_t)
>> +
>> +        # for "test -x /sbin/syslogd"
>> +       logging_domtrans_syslog(logrotate_t)
>>  ')
>>  
>>  optional_policy(`
> 
> No.  Based on the above, this is too much access.  Logging needs an
> interface like corecmd_check_exec_shell(), but for syslogd_exec_t.
> 
logrotate regularly restarts services and sends services signals.

service abc reload
service abc restart

So to work without any avc's you really need to allow logratate to
transition to initrc_t.  Which is why in Fedora policy we have

# cjp: why is this needed?
init_domtrans_script(logrotate_t)



More information about the refpolicy mailing list