#!/bin/sh set -e # try to insert the unknown entry to the "passwd" and "group" lines in # /etc/nsswitch.conf to automatically enable libnss-unknown support; do not # change the configuration if the lines already contain "unknown" 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 line already references # unknown if (grep { $_ eq "unknown"} @bits) { return $line; } # add unknown at the end return $line . " unknown"; } s/^(passwd:\s+)(.*)/$1.insert($2)/e; s/^(group:\s+)(.*)/$1.insert($2)/e; ' /etc/nsswitch.conf } if [ "$1" = configure ]; then if [ -z "$2" ]; then echo "First installation detected..." # first install: setup the recommended configuration insert_nss_entry else # upgrade: version="$2" if dpkg --compare-versions "$version" lt "0.0.2-2~"; then echo "Inserting NSS entry if necessary (#919459)." insert_nss_entry fi fi fi