X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=debian%2Fsudo-ldap.postinst;h=949a511b99ab31b6bdb0e50aca13e09501eb58e1;hb=06f3ef304c48f625bc90fd65a93e544c56bd77c1;hp=36cdd235c89e4de80576edfa280def1318d16944;hpb=fb7645a1633a5422a294859f07981dc7f4b9c4e3;p=debian%2Fsudo diff --git a/debian/sudo-ldap.postinst b/debian/sudo-ldap.postinst index 36cdd23..949a511 100644 --- a/debian/sudo-ldap.postinst +++ b/debian/sudo-ldap.postinst @@ -4,26 +4,17 @@ unlink ("/etc/alternatives/sudo") if ( -l "/etc/alternatives/sudo"); -# make sure we have a sudoers file +# complain if no sudoers file is present if ( ! -f "/etc/sudoers") { + print "WARNING: /etc/sudoers not present!\n"; +} - print "No /etc/sudoers found... creating one for you.\n"; - - open (SUDOERS, "> /etc/sudoers"); - print SUDOERS "# /etc/sudoers\n", - "#\n", - "# This file MUST be edited with the 'visudo' command as root.\n", - "#\n", - "# See the man page for details on how to write a sudoers file.\n", - "#\n\nDefaults\tenv_reset\n\n", - "# Uncomment to allow members of group sudo to not need a password\n", - "# %sudo ALL=NOPASSWD: ALL\n\n", - "# Host alias specification\n\n", - "# User alias specification\n\n", - "# Cmnd alias specification\n\n", - "# User privilege specification\nroot\tALL=(ALL) ALL\n"; - close SUDOERS; - +# handle state directory transition from /var/run/sudo to /var/lib/sudo, +# moving any existing content over to avoid re-lecturing existing users +if ( -d "/var/run/sudo") { + system ('mkdir -p /var/lib/sudo'); + system ('(cd /var/run/sudo ; tar cf - .) | (cd /var/lib/sudo ; tar xf -)'); + system ('rm -rf /var/run/sudo'); } # make sure sudoers has the correct permissions and owner/group @@ -33,7 +24,13 @@ system ('chmod 440 /etc/sudoers'); # must do a remove first to un-do the "bad" links created by previous version system ('update-rc.d -f sudo remove >/dev/null 2>&1'); -system ('update-rc.d sudo start 75 S . >/dev/null'); +system ('update-rc.d sudo start 75 2 3 4 5 . >/dev/null'); + +# create symlink to ease transition to new path for ldap config +# if old config file exists and new one doesn't +if (-e "/etc/ldap/ldap.conf" && ! -e "/etc/sudo-ldap.conf") { + system("ln -s ldap/ldap.conf /etc/sudo-ldap.conf"); +} # make sure we have a sudo group @@ -61,4 +58,7 @@ if ($gid != 27) { print "Creating group 'sudo' with gid = $gid\n"; system("groupadd -g $gid sudo"); +# if we've gotten this far .. remove the saved, unchanged old sudoers file +system ('rm -f /etc/sudoers.pre-conffile'); + print "";