54 lines
1.5 KiB
Bash
Executable File
54 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
|
|
|
|
# This code was taken from libnss-myhostname, which got it from nss-mdns:
|
|
|
|
log() {
|
|
echo "$*"
|
|
}
|
|
|
|
# try to insert sss entries to the passwd, group, shadow and netgroup
|
|
# lines in /etc/nsswitch.conf to automatically enable libnss-sss
|
|
# support; do not change the configuration if the lines already
|
|
# references some sss lookups
|
|
insert_nss_entry() {
|
|
log "Checking NSS setup..."
|
|
# abort if /etc/nsswitch.conf does not exist
|
|
if ! [ -e /etc/nsswitch.conf ]; then
|
|
log "Could not find /etc/nsswitch.conf."
|
|
return
|
|
fi
|
|
# append 'sss' to the end of the line if it's not found already
|
|
sed -i --regexp-extended '
|
|
/^(passwd|group|shadow|netgroup|services|automounter):/ {
|
|
/\bsss\b/! s/$/ sss/
|
|
}
|
|
' /etc/nsswitch.conf
|
|
# and add a new entry for automount if it's not there
|
|
if ! grep -q automount /etc/nsswitch.conf; then
|
|
log "Adding an entry for automount."
|
|
echo "automount: sss" >> /etc/nsswitch.conf
|
|
fi
|
|
}
|
|
|
|
action="$1"
|
|
|
|
if [ configure = "$action" ]; then
|
|
if [ -z "$2" ]; then
|
|
log "First installation detected..."
|
|
# first install: setup the recommended configuration (unless
|
|
# nsswitch.conf already contains sss entries)
|
|
insert_nss_entry
|
|
else
|
|
# upgrade
|
|
version="$2"
|
|
|
|
# fix automount typo
|
|
if dpkg --compare-versions $version lt "2.2.3-3"; then
|
|
sed -i 's/automounter/automount/' /etc/nsswitch.conf
|
|
fi
|
|
fi
|
|
fi
|