Get rid of those sudo's ... otherwise, because sudo is in fact sudo-ldap, might create weird errors or stuck situation where everything is broken because slapd is stopped and the regenconf can't restart it

This commit is contained in:
Alexandre Aubin 2019-08-12 11:15:47 +02:00
parent 0a2d1c7eb6
commit 6f48d1d855

View file

@ -44,7 +44,7 @@ do_pre_regen() {
|| touch "${pending_dir}/etc/ldap/slapd-yuno.conf"
# remove temporary backup file
sudo rm -f "$tmp_backup_dir_file"
rm -f "$tmp_backup_dir_file"
# retrieve current and new backends
curr_backend=$(grep '^database' /etc/ldap/slapd.conf 2>/dev/null | awk '{print $2}')
@ -53,8 +53,8 @@ do_pre_regen() {
# save current database before any conf changes
if [[ -n "$curr_backend" && "$curr_backend" != "$new_backend" ]]; then
backup_dir="/var/backups/dc=yunohost,dc=org-${curr_backend}-$(date +%s)"
sudo mkdir -p "$backup_dir"
sudo slapcat -b dc=yunohost,dc=org \
mkdir -p "$backup_dir"
slapcat -b dc=yunohost,dc=org \
-l "${backup_dir}/dc=yunohost-dc=org.ldif"
echo "$backup_dir" > "$tmp_backup_dir_file"
fi
@ -70,29 +70,29 @@ do_post_regen() {
regen_conf_files=$1
# ensure that slapd.d exists
sudo mkdir -p /etc/ldap/slapd.d
mkdir -p /etc/ldap/slapd.d
# fix some permissions
sudo chown root:openldap /etc/ldap/slapd.conf
sudo chown -R openldap:openldap /etc/ldap/schema/
sudo chown -R openldap:openldap /etc/ldap/slapd.d/
chown root:openldap /etc/ldap/slapd.conf
chown -R openldap:openldap /etc/ldap/schema/
chown -R openldap:openldap /etc/ldap/slapd.d/
# Add openldap user in the ssl-cert group to let it access the certificate for TLS
sudo usermod -aG ssl-cert openldap
usermod -aG ssl-cert openldap
chown -R root:ssl-cert /etc/yunohost/certs/yunohost.org/
chmod o-rwx /etc/yunohost/certs/yunohost.org/
[ -z "$regen_conf_files" ] && exit 0
# check the slapd config file at first
sudo slaptest -Q -u -f /etc/ldap/slapd.conf
slaptest -Q -u -f /etc/ldap/slapd.conf
# check if a backup should be restored
backup_dir=$(cat "$tmp_backup_dir_file" 2>/dev/null || true)
if [[ -n "$backup_dir" && -f "${backup_dir}/dc=yunohost-dc=org.ldif" ]]; then
# regenerate LDAP config directory and import database as root
# since the admin user may be unavailable
sudo sh -c "rm -Rf /etc/ldap/slapd.d;
sh -c "rm -Rf /etc/ldap/slapd.d;
mkdir /etc/ldap/slapd.d;
slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d;
chown -R openldap:openldap /etc/ldap/slapd.d;
@ -101,15 +101,15 @@ do_post_regen() {
chown -R openldap:openldap /var/lib/ldap" 2>&1
else
# regenerate LDAP config directory from slapd.conf
sudo rm -Rf /etc/ldap/slapd.d
sudo mkdir /etc/ldap/slapd.d
sudo slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/ 2>&1
sudo chown -R openldap:openldap /etc/ldap/slapd.d/
rm -Rf /etc/ldap/slapd.d
mkdir /etc/ldap/slapd.d
slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/ 2>&1
chown -R openldap:openldap /etc/ldap/slapd.d/
fi
sudo -u openldap slapindex
su openldap -c "slapindex"
sudo service slapd force-reload
service slapd force-reload
# on slow hardware/vm this regen conf would exit before the admin user that
# is stored in ldap is available because ldap seems to slow to restart