[DSE-User] Allow rsync to change all types of files
Marcus Husar
marcus.husar at rose.uni-heidelberg.de
Fri Feb 20 07:58:02 UTC 2009
Hello again,
I still get the same messages but found out that it depends definitively
on the "tclass". I made an incorrect assumption by taking too old data
into account.
setsebool -P allow_rsync_anon_write=1
Setsebool does (exactly) what I want. I have set these booleans to on:
allow_rsync_anon_write --> on
rsync_export_all_ro --> on
This must be a default value (20080702-14) because it needs a second
boolean to work:
daemon_access_unconfined_home --> on
The problem is that SELinux prevents rsync from doing getattr/setattr
(extended attributes are not enabled, no -X). Only 4 "tclasses" are
affected at the moment and all came from /dev: blk_file, chr_file,
fifo_file, sock_file.
I have written a module to solve this problem. Is it a security problem?:
module rsync_file_type 1.0;
require {
type rsync_t;
class file { getattr setattr };
attribute file_type;
}
#============= rsync_t ==============
allow rsync_t file_type:file { getattr setattr };
Another option would be not to backup /dev.
Is it possible to adjust the policy? I think this would be no problem
because rsync is not allowed to read/write /dev on local machines.
Best wishes, Marcus
On 02/19/2009 12:39 PM, Marcus Husar wrote:
> Hi,
>
> a few weeks ago (about 4) I wrote to this list because of problems with
> some scripts for backup purposes. Since my questions were rather idiotic
> I got no answer. So I studied lots of documentation, blogs and mailing
> lists (Fedora, RHEL, Dan Walsh, Russell Coker and others).
>
> I learned how to use the policycoreutils (Debian stable) and sealert
> from setroubleshoot-plugins (testing). Rsync is used by scripts run by
> cron. They write to /srv/backup/. So I changed the file context and
> allowed rsync to write to it.
>
> chcon -R -t public_content_rw_t /srv/backup
> semanage fcontext -a -t public_content_rw_t "/srv/backup(/.*)?"
> setsebool -P allow_rsync_anon_write=1
>
> But I still get AVC-messages like this one:
>
> type=AVC msg=audit(1234998002.420:66): avc: denied { setattr } for
> pid=22974 comm="rsync" name="sdb" dev=dm-5 ino=11387340
> scontext=unconfined_u:system_r:rsync_t:s0-s0:c0.c1023
> tcontext=system_u:object_r:public_content_rw_t:s0 tclass=blk_file
>
> Okay, the problem was that the file is a block device file. I get
> similar messages for capability, fd, fifo_file, sock_file and
> tcp_socket. I could write a module that covers all those types of files
> and all permissions. But what when I have to backup a new type called
> "foo_file"? This would break my backup scripts.
>
> How can I allow rsync to change all types of files in file context
> public_content_rw_t?
>
> Marcus
>
> _______________________________________________
> Selinux-user mailing list
> Selinux-user at lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/selinux-user
More information about the Selinux-user
mailing list