----- Original Message -----
From: "Sachin Gaikwad" sachin.kernel@gmail.com To: "Lukas Vrabec" lvrabec@redhat.com Cc: selinux@lists.fedoraproject.org Sent: Friday, March 24, 2017 6:31:45 AM Subject: Re: SELinux enabled + rsync + Permission denied (13)
On Tue, Feb 14, 2017 at 2:42 PM, Lukas Vrabec < lvrabec@redhat.com > wrote:
On 02/14/2017 05:16 AM, Sachin Gaikwad wrote:
Hi all,
I am running a daemon process (C++ program) on RHEL 6.6 with SELinux enabled. This process eventually executes "rsync" to do file-copy operation. It is failing with following error:
Do you have SELinux policy for that daemon?
---------------------------------/8</--------------------------------------------
rsync: change_dir "/home/foobar/source/" failed: Permission denied (13) rsync: ERROR: cannot stat destination "/mnt/other_volume/testData": Permission denied (13).
---------------------------------/8</--------------------------------------------
Question: Why is rsync failing with this error? I checked permissions of "source" and "target" and both have permissions for the user.
We have two rsync booleans that could take care of this
rsync_export_all_ro - Allow rsync to export any files/directories read only
or
rsync_full_access - Allow rsync server to manage all files/directories on the system
Your daemon runs in some SELinux domain and this domain doesn't have access to /home/foobar/source and /mnt/other_volume/testData.
Could you reproduce the scenario and then attach output of: # ausearch -m AVC -ts recent
Other testing data:
I tested this with "SELinux" disabled and rsync succeeds.
I tested this with "SELinux" enabled and launching process from
terminal. In this case "rsync" works fine. So, it looks like it is something to do with "SELinux permissions" to process which do not have tty?
There is a difference between run daemon using "service" command and run it from terminal.
If you run it from terminal, in most cases daemon will inherit user SELinux domain, which is in "99%" unconfined_t domain. SELinux is not in game when you run it from terminal.
- On other system RHEL 6.8, SELinux enabled, process as daemon: rsync
works fine. I compared SELinux configuration of both these systems, but couldn't find anything to reason it out. If you need, I can attach SELinux configurations.
Okay, I would say issue will be in old policy from RHEL-6.6, but if you'll attach AVCs, we can create workaround for you.
Sorry for late response on this one. Here is the AVC output when rsync error happens:
bash # sudo ausearch -m USER_AVC,AVC,SELINUX_ERR --start recent
time->Thu Mar 23 06:18:00 2017 type=SYSCALL msg=audit(1490264280.713:582): arch=c000003e syscall=80 success=no exit=-13 a0=245a9d0 a1=1 a2=0 a3=383437432d363339 items=0 ppid=5306 pid=5308 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="rsync" exe="/usr/bin/rsync" subj=system_u:system_r:rsync_t:s0 key=(null) type=AVC msg=audit(1490264280.713:582): avc: denied { search } for pid=5308 comm="rsync" name="serviceuser" dev=dm-0 ino=796173 scontext=system_u:system_r:rsync_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir
time->Thu Mar 23 06:18:00 2017 type=SYSCALL msg=audit(1490264280.714:583): arch=c000003e syscall=80 success=no exit=-13 a0=245a9b0 a1=1 a2=0 a3=ffffffff items=0 ppid=5306 pid=5308 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="rsync" exe="/usr/bin/rsync" subj=system_u:system_r:rsync_t:s0 key=(null) type=AVC msg=audit(1490264280.714:583): avc: denied { search } for pid=5308 comm="rsync" name="serviceuser" dev=dm-0 ino=796173 scontext=system_u:system_r:rsync_t:s0 tcontext=unconfined_u:object_r:user_home_dir_t:s0 tclass=dir
time->Thu Mar 23 06:18:00 2017 type=SYSCALL msg=audit(1490264280.714:584): arch=c000003e syscall=4 success=no exit=-13 a0=2459360 a1=7fff5e86f6b0 a2=7fff5e86f6b0 a3=0 items=0 ppid=5308 pid=5309 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="rsync" exe="/usr/bin/rsync" subj=system_u:system_r:rsync_t:s0 key=(null) type=AVC msg=audit(1490264280.714:584): avc: denied { getattr } for pid=5309 comm="rsync" path="/tmp/Recover_Files_03-24-2017_3-48pm" dev=dm-0 ino=796146 scontext=system_u:system_r:rsync_t:s0 tcontext=system_u:object_r:initrc_tmp_t:s0 tclass=dir
Sachin
Thanks, Lukas.
Thanks in advance,
Sachin
selinux mailing list -- selinux@lists.fedoraproject.org To unsubscribe send an email to selinux-leave@lists.fedoraproject.org
-- Lukas Vrabec SELinux Solutions Red Hat, Inc.
selinux mailing list -- selinux@lists.fedoraproject.org To unsubscribe send an email to selinux-leave@lists.fedoraproject.org
selinux mailing list -- selinux@lists.fedoraproject.org To unsubscribe send an email to selinux-leave@lists.fedoraproject.org