Having recently run into this and spent some time debugging it would appear that one potential cause is if you have edited /etc/ldap.conf and do not have a new line at the end of the file (so in our case copying a standard config in as part of a deployment script)
When the libnss-ldap init script is run on shutdown it updates ldap.conf with the nss_initgroups_ignoreusers directive, but appends it to the end of the last line in the file rather than putting it on a new line
By ensuring we have a new line character at the end of the config file, when the init script runs we end up with the correct content in the file and the boot completes as expected rather than hanging
Having recently run into this and spent some time debugging it would appear that one potential cause is if you have edited /etc/ldap.conf and do not have a new line at the end of the file (so in our case copying a standard config in as part of a deployment script)
When the libnss-ldap init script is run on shutdown it updates ldap.conf with the nss_initgroups_ ignoreusers directive, but appends it to the end of the last line in the file rather than putting it on a new line
As such the last line which did read
ldap_version 3
ended up reading
ldap_version 3nss_initgroups _ignoreusers. ....... .
rather than
ldap_version 3 ignoreusers. ....... ..
nss_initgroups_
By ensuring we have a new line character at the end of the config file, when the init script runs we end up with the correct content in the file and the boot completes as expected rather than hanging