Bug 201031
| Summary: | setsebool broken | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Joe Orton <jorton> |
| Component: | policycoreutils | Assignee: | Daniel Walsh <dwalsh> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Ben Levenson <benl> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | rawhide | CC: | dwalsh, todd.dsm |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Current | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2008-01-21 15:51:54 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Joe Orton
2006-08-02 12:30:52 UTC
I believe this is a labeling problem, in /etc/selinux/targeted directory. Do you see avc messages? You can relabel with restorecon -R -v /etc/selinux/targeted That works.
[root@trash ~]# echo MARK >> /var/log/audit/audit.log
[root@trash ~]# setsebool httpd_disable_trans=1
libsemanage.semanage_commit_sandbox: Error while renaming
/etc/selinux/targeted/modules/active to /etc/selinux/targeted/modules/previous.
Could not change policy booleans
[root@trash ~]# tail /var/log/audit/audit.log
type=PATH msg=audit(1154528196.407:678): item=0
name="/etc/selinux/targeted/modules/" inode=2087266 dev=03:03 mode=040755 ouid=0
ogid=0 rdev=00:00 obj=system_u:object_r:selinux_config_t:s0
type=PATH msg=audit(1154528196.407:678): item=1
name="/etc/selinux/targeted/modules/previous" inode=2087266 dev=03:03
mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:selinux_config_t:s0
type=PATH msg=audit(1154528196.407:678): item=2
name="/etc/selinux/targeted/modules/active" inode=2115588 dev=03:03 mode=040700
ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:selinux_config_t:s0
MARK
type=AVC msg=audit(1154528220.246:679): avc: denied { rename } for pid=23427
comm="setsebool" name="active" dev=hda3 ino=2115588
scontext=root:system_r:semanage_t:s0-s0:c0.c255
tcontext=system_u:object_r:selinux_config_t:s0 tclass=dir
type=SYSCALL msg=audit(1154528220.246:679): arch=40000003 syscall=38 success=no
exit=-13 a0=99b0628 a1=99b4ab0 a2=4d38a218 a3=bf8a7878 items=3 ppid=12010
pid=23427 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0
tty=pts2 comm="setsebool" exe="/usr/sbin/setsebool"
subj=root:system_r:semanage_t:s0-s0:c0.c255 key=(null)
type=CWD msg=audit(1154528220.246:679): cwd="/root"
type=PATH msg=audit(1154528220.246:679): item=0
name="/etc/selinux/targeted/modules/" inode=2087266 dev=03:03 mode=040755 ouid=0
ogid=0 rdev=00:00 obj=system_u:object_r:selinux_config_t:s0
type=PATH msg=audit(1154528220.246:679): item=1
name="/etc/selinux/targeted/modules/previous" inode=2087266 dev=03:03
mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:selinux_config_t:s0
type=PATH msg=audit(1154528220.246:679): item=2
name="/etc/selinux/targeted/modules/active" inode=2115588 dev=03:03 mode=040700
ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:selinux_config_t:s0
[root@trash ~]#
[root@trash ~]# restorecon -R -v /etc/selinux/targeted
restorecon reset /etc/selinux/targeted/modules/active context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/file_contexts context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/commit_num context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/users_extra context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0restorecon
reset /etc/selinux/targeted/modules/active/modules context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/modules/razor.pp context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/modules/pyzor.pp context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/modules/amavis.pp context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/modules/dcc.pp context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/modules/nagios.pp context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/modules/clamav.pp context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/homedir_template context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/policy.kern context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0restorecon
reset /etc/selinux/targeted/modules/active/base.pp context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/booleans.local context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/base.linked context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0restorecon
reset /etc/selinux/targeted/modules/active/seusers.final context
system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
restorecon reset /etc/selinux/targeted/modules/active/file_contexts.template
context system_u:object_r:selinux_config_t:s0->system_u:object_r:semanage_store_t:s0
[root@trash ~]# setsebool httpd_disable_trans=1
zope homedir /opt/zope or its parent directory conflicts with a
defined context in /etc/selinux/targeted/contexts/files/file_contexts,
/usr/sbin/genhomedircon will not create a new context. This usually indicates an
incorrectly defined system account. If it is a system account please make sure
its login shell is /sbin/nologin.
ptest homedir /local/ptest or its parent directory conflicts with a
defined context in /etc/selinux/targeted/contexts/files/file_contexts,
/usr/sbin/genhomedircon will not create a new context. This usually indicates an
incorrectly defined system account. If it is a system account please make sure
its login shell is /sbin/nologin.
Any idea how it got in this state? You might want to change the shell on zope and ptest to /bin/false to eliminate the genhomedircon warnings. It's a fresh @Everything install of Raw Hide so presumably you can reproduce this at will to debug further? Yes the problem was in anaconda policy. Basically it was not transitioning to semanage_t so the context was not getting setup correctly. Fixes in selinux-policy-2.3.3-19 I have selinux-policy-2.4.6-203 and I'm still seeing this behavior. Example: # setsebool -P allow_ftpd_anon_write 1 zimbra homedir /opt/zimbra or its parent directory conflicts with a defined context in /etc/selinux/targeted/contexts/files/file_contexts, /usr/sbin/genhomedircon will not create a new context. This usually indicates an incorrectly defined system account. If it is a system account please make sure its login shell is /sbin/nologin. === It really doesn't matter if you try to change allow_ftpd_anon_write or another one, they always error with 'zimbra homedir /opt/zimbra or its parent directory conflicts...' Todd the problem is that /opt/zimbra is not a real login, so the shell should be /sbin/nologin genhomedircon thinks you have a real user on your system named zimbra, but this is most likely a system account. If you change the shell to /sbin/nologin, genhomedircon will ignore the account. zimbra should probably install it self as a --system with a UID < 500. Then SELinux will ignore it also. I'll respond for the purposes of posterity: #7) You're right. But the shell is /bin/bash. /opt/zimbra is the home directory. Here's the layout: zimbra:x:500:500::/opt/zimbra:/bin/bash postfix:x:501:501::/opt/zimbra/postfix:/bin/bash #8) It probably should be < 500 but that's how the install script install both zimbra and posfix accounts. There may be design reasons for doing this. I know that Zimbra interacts with the system and there are buzillions of command line tools for the app so /bin/bash is necessary. Setting the home directory just standardizes a starting place to build an environment. I would guess also necessary. I haven't had time to test it but as I understand it some logging and statistical functionality would be lost by removing /bin/bash but there are better people to ask than me, I'm sure. |