(Please reply to the list, so any useful information gets archived for others in the future...)
On 05/11/12 05:39 AM, Cyril Grosjean wrote:
26374 open("/etc/openldap/slapd.d/cn=config.ldif", O_RDONLY) = 16 26374 open("/etc/openldap/slapd.d/cn=config.40TIFd", O_RDWR|O_CREAT|O_EXCL, 0600) = 16 26374 rename("/etc/openldap/slapd.d/cn=config.40TIFd", "/etc/openldap/slapd.d/cn=config.ldif") = -1 EACCES (Permission denied) 26374 unlink("/etc/openldap/slapd.d/cn=config.40TIFd") = 0
So it really looks to me like a bug. As suggested by Quanah, I'll try OpenLDAP 2.4.31 if I've time for that, but my goal was possibly to stick to "official" rpms, for obvious support reasons.
If it's a bug, then it's a bug in the operating system. strace traces system calls ("_s_ystem trace"). You can plainly see OpenLDAP creating the new cn=config.ldif as a tempfile, trying to rename it to overwrite the old, and being told by the *OS* that it's not allowed to do so. Here's the exact same operation on my own server:
5596 open("/appl/ldap/etc/slapd.d/cn=config.ldif", O_RDONLY) = 57 5596 open("/appl/ldap/etc/slapd.d/cn=config.Zi6PH7", O_RDWR|O_CREAT|O_EXCL, 0600) = 57 5596 rename("/appl/ldap/etc/slapd.d/cn=config.Zi6PH7", "/appl/ldap/etc/slapd.d/cn=config.ldif") = 0
How about showing us the exact permissions on the directory and that file? What's the output of:
ls -lZd /etc/openldap/slapd.d /etc/openldap/slapd.d/cn=config.ldif
and:
getfacl /etc/openldap/slapd.d /etc/openldap/slapd.d/cn=config.ldif