#!/bin/sh set -e # This code was taken from libnss-myhostname # try to insert resolve entries to the "hosts" line in /etc/nsswitch.conf to # automatically enable libnss-resolve support; do not change the # configuration if the "hosts" line already references some resolve lookups insert_nss_entry() { echo "Checking NSS setup..." # abort if /etc/nsswitch.conf does not exist if ! [ -e /etc/nsswitch.conf ]; then echo "Could not find /etc/nsswitch.conf." return fi perl -i -pe ' sub insert { my $line = shift; # this also splits on tab my @bits=split(" ", $line); # do not break configuration if the "hosts" line already references # resolve if (grep { $_ eq "resolve"} @bits) { return $line; } # add resolve before dns return join " ", map { $_ eq "dns" ? ("resolve [!UNAVAIL=return]", "$_") : $_ } @bits; } s/^(hosts:\s+)(.*)/$1.insert($2)/e; ' /etc/nsswitch.conf } if [ "$1" = configure ] && [ -z "$2" ]; then echo "First installation detected..." # first install: setup the recommended configuration (unless # nsswitch.conf already contains resolve entries) insert_nss_entry # ... and enable resolved systemctl enable systemd-resolved.service if [ -d /run/systemd/system ]; then deb-systemd-invoke start systemd-resolved.service || true fi fi # Fix nsswitch action on upgrades if [ "$1" = configure ] && dpkg --compare-versions "$2" lt-nl "231-10"; then if ! grep -q '^hosts:.*resolve[[:space:]]*\[' /etc/nsswitch.conf; then echo "Adjusting 'resolv' entry in /etc/nsswitch.conf.." sed -i '/^hosts:/ { s/resolve/& [!UNAVAIL=return]/}' /etc/nsswitch.conf fi fi #DEBHELPER#