In particular this error
[root@cwaiprod1 ~]# service sssd start
Starting sssd: /usr/sbin/sssd: error while loading shared libraries:
libcrypto.so.0.9.8: cannot enable executable stack as shared object
requires: Permission denied
[FAILED]
which relates to the audit trail:
host=cwaiprod1.example.org type=AVC msg=audit(1313372860.204:1388): avc:
denied { execstack } for pid=6939 comm="sssd"
scontext=user_u:system_r:sssd_t:s0 tcontext=user_u:system_r:sssd_t:s0
tclass=process
host=cwaiprod1.example.org type=AVC msg=audit(1313372860.204:1388): avc:
denied { execmem } for pid=6939 comm="sssd"
scontext=user_u:system_r:sssd_t:s0 tcontext=user_u:system_r:sssd_t:s0
tclass=process
host=cwaiprod1.example.org type=SYSCALL msg=audit(1313372860.204:1388):
arch=c000003e syscall=10 success=yes exit=0 a0=7fffbeebb000 a1=1000
a2=1000007 a3=4 items=0 ppid=6938 pid=6939 auid=4294967295 uid=0 gid=0
euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=4294967295
comm="sssd" exe="/usr/sbin/sssd" subj=user_u:system_r:sssd_t:s0 key=(null)
However on it's partner (the dev box) this works just fine, even though ldd indicates they (were) are using the same libraries. Turns out though that the libcrypto in question comes from the zend stack, which i excluded by editing the ldconfig configuration. That in turn made it start and all was good, right up the point where we wanted to verify that this wouldn't break on reboot, which is where we upgraded the dev host to be more identical (it was already working with sssd, and nevermind that our prod was running a newer version than the dev box).
I checked the getsebool output and allow_exec[mem|stack] are both on.
But i have noticed that on the prod node, ldd for /usr/sbin/sssd does report extra libraries.
Namely:
libcom_err.so.2 => /lib64/libcom_err.so.2
libcrypt.so.1 => /lib64/libcrypt.so.1
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3
libkeyutils.so.1 => /lib64/libkeyutils.so.1
libkrb5.so.3 => /usr/lib64/libkrb5.so.3
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0
libselinux.so.1 => /lib64/libselinux.so.1
libsepol.so.1 => /lib64/libsepol.so.1
Does anyone know why one host is listing more libraries (they are supposed to be identical afterall), or why one cares about execstack while the other does not?