summaryrefslogtreecommitdiffstats
path: root/install/tools/ipa-server-install
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2011-06-17 14:19:45 +0200
committerRob Crittenden <rcritten@redhat.com>2011-06-21 23:45:00 -0400
commitb227208d010bf88a11c46149ac5844c4a55ab9ad (patch)
tree5bbfe6b3f803995394de1b089c5d09bbf9bf2f8b /install/tools/ipa-server-install
parentba42b700eb98978fa5403bf5e39f9c9e31338fb4 (diff)
downloadfreeipa-b227208d010bf88a11c46149ac5844c4a55ab9ad.tar.gz
freeipa-b227208d010bf88a11c46149ac5844c4a55ab9ad.tar.xz
freeipa-b227208d010bf88a11c46149ac5844c4a55ab9ad.zip
Fix IPA install for secure umask
Make sure that IPA can be installed with root umask set to secure value 077. ipa-server-install was failing in DS configuration phase when dirsrv tried to read boot.ldif created during installation. https://fedorahosted.org/freeipa/ticket/1282
Diffstat (limited to 'install/tools/ipa-server-install')
-rwxr-xr-xinstall/tools/ipa-server-install28
1 files changed, 16 insertions, 12 deletions
diff --git a/install/tools/ipa-server-install b/install/tools/ipa-server-install
index 7c81dbec6..019dfb1aa 100755
--- a/install/tools/ipa-server-install
+++ b/install/tools/ipa-server-install
@@ -676,18 +676,22 @@ def main():
logging.debug("will use dns_forwarders: %s\n" % str(dns_forwarders))
# Create the management framework config file and finalize api
- fd = open("/etc/ipa/default.conf", "w")
- fd.write("[global]\n")
- fd.write("basedn=" + util.realm_to_suffix(realm_name) + "\n")
- fd.write("realm=" + realm_name + "\n")
- fd.write("domain=" + domain_name + "\n")
- fd.write("xmlrpc_uri=https://%s/ipa/xml\n" % host_name)
- fd.write("ldap_uri=ldapi://%%2fvar%%2frun%%2fslapd-%s.socket\n" % dsinstance.realm_to_serverid(realm_name))
- fd.write("enable_ra=True\n")
- if not options.selfsign:
- fd.write("ra_plugin=dogtag\n")
- fd.write("mode=production\n")
- fd.close()
+ old_umask = os.umask(022) # must be readable for httpd
+ try:
+ fd = open("/etc/ipa/default.conf", "w")
+ fd.write("[global]\n")
+ fd.write("basedn=" + util.realm_to_suffix(realm_name) + "\n")
+ fd.write("realm=" + realm_name + "\n")
+ fd.write("domain=" + domain_name + "\n")
+ fd.write("xmlrpc_uri=https://%s/ipa/xml\n" % host_name)
+ fd.write("ldap_uri=ldapi://%%2fvar%%2frun%%2fslapd-%s.socket\n" % dsinstance.realm_to_serverid(realm_name))
+ fd.write("enable_ra=True\n")
+ if not options.selfsign:
+ fd.write("ra_plugin=dogtag\n")
+ fd.write("mode=production\n")
+ fd.close()
+ finally:
+ os.umask(old_umask)
api.bootstrap(**cfg)
api.finalize()