diff --git a/builder/startup/generate_container_user b/builder/startup/generate_container_user index b259e7c..1fd9e86 100755 --- a/builder/startup/generate_container_user +++ b/builder/startup/generate_container_user @@ -1,3 +1,20 @@ +detect_libnss_wrapper() { + if $(which dpkg &>/dev/null); then + libnss_wrapper_file=$(dpkg -S libnss_wrapper.so | awk -F' ' '{ print $2 }') + LD_PRELOAD="$libnss_wrapper_file" + return + fi + + if [ -r /usr/lib/libnss_wrapper.so ]; then + LD_PRELOAD=/usr/lib/libnss_wrapper.so + elif [ -r /usr/lib64/libnss_wrapper.so ]; then + LD_PRELOAD=/usr/lib64/libnss_wrapper.so + else + echo "no libnss_wrapper.so installed!" + exit 1 + fi +} + # Set current user in nss_wrapper USER_ID=$(id -u) GROUP_ID=$(id -g) @@ -24,14 +41,7 @@ if [ x"$USER_ID" != x"0" ]; then export NSS_WRAPPER_PASSWD export NSS_WRAPPER_GROUP - if [ -r /usr/lib/libnss_wrapper.so ]; then - LD_PRELOAD=/usr/lib/libnss_wrapper.so - elif [ -r /usr/lib64/libnss_wrapper.so ]; then - LD_PRELOAD=/usr/lib64/libnss_wrapper.so - else - echo "no libnss_wrapper.so installed!" - exit 1 - fi + detect_libnss_wrapper echo "nss_wrapper location: $LD_PRELOAD" export LD_PRELOAD fi