The user in bug 2125403 is using "compat" rather than "files" for
passwd, group, and shadow[1]. I don't grok the generated postinst well
enough to be sure, but I think that means that since we have
"after=files" in libnss-systemd.nss, the sed expressions don't match the
existing content of /etc/nsswitch.conf:

root@q:~# cat /var/lib/dpkg/info/libnss-systemd\:amd64.postinst
#!/bin/sh
set -e
# Automatically added by dh_installnss/1.7
if [ "$1" = "configure" ] && [ -f 
"${DPKG_ROOT}/etc/nsswitch.conf.nss.${DPKG_MAINTSCRIPT_PACKAGE}-will-install" ] 
&& [ -e "${DPKG_ROOT}/etc/nsswitch.conf" ] ; then
        if ! grep -q -E  -e '^group:[^#]*\s(systemd)(\s|#|$)' -e 
'^gshadow:[^#]*\s(systemd)(\s|#|$)' -e '^passwd:[^#]*\s(systemd)(\s|#|$)' -e 
'^shadow:[^#]*\s(systemd)(\s|#|$)' "${DPKG_ROOT}/etc/nsswitch.conf" ; then
                # Installing passwd/systemd from libnss-systemd in position 
after=files
                sed -E -i "${DPKG_ROOT}/etc/nsswitch.conf" -e 
'/^passwd:\s[^#]*$/ s/(\s)(files(\s+\[[^]]+\])?)(\s|$)/\1\2 systemd /' -e 
'/^passwd:\s.*#/ s/(\s)(files(\s+\[[^]]+\])?)(\s|#)/\1\2 systemd \3/' -e 's/ 
$//'
                # Installing group/systemd from libnss-systemd in position 
after=files
                sed -E -i "${DPKG_ROOT}/etc/nsswitch.conf" -e 
'/^group:\s[^#]*$/ s/(\s)(files(\s+\[[^]]+\])?)(\s|$)/\1\2 systemd /' -e 
'/^group:\s.*#/ s/(\s)(files(\s+\[[^]]+\])?)(\s|#)/\1\2 systemd \3/' -e 's/ $//'
                # Installing shadow/systemd from libnss-systemd in position 
after=files
                sed -E -i "${DPKG_ROOT}/etc/nsswitch.conf" -e 
'/^shadow:\s[^#]*$/ s/(\s)(files(\s+\[[^]]+\])?)(\s|$)/\1\2 systemd /' -e 
'/^shadow:\s.*#/ s/(\s)(files(\s+\[[^]]+\])?)(\s|#)/\1\2 systemd \3/' -e 's/ 
$//'
                # Installing gshadow/systemd from libnss-systemd in position 
after=files
                sed -E -i "${DPKG_ROOT}/etc/nsswitch.conf" -e 
'/^gshadow:\s[^#]*$/ s/(\s)(files(\s+\[[^]]+\])?)(\s|$)/\1\2 systemd /' -e 
'/^gshadow:\s.*#/ s/(\s)(files(\s+\[[^]]+\])?)(\s|#)/\1\2 systemd \3/' -e 's/ 
$//'
        fi
        rm 
"${DPKG_ROOT}/etc/nsswitch.conf.nss.${DPKG_MAINTSCRIPT_PACKAGE}-will-install"
fi
# End automatically added section

In other words, since the user did not have "files" listed for those
dbs, "systemd" does not get added. It's also unclear to me from the
docs[2] what to do in this case.

Can we just add "after=compat" entries as a fallback to libnss-
systemd.nss?


[1] https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/2125403/comments/4
[2] https://manpages.debian.org/unstable/dh-nss/dh_installnss.1.en.html

** Changed in: systemd (Ubuntu)
     Assignee: (unassigned) => Nick Rosbrook (enr0n)

** Tags added: dcr-incoming

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2121017

Title:
  gdm3 49~beta doesn't start [unix_chkpwd: could not obtain user info
  (gdm-greeter)] on systems installed before 2024

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dh-nss/+bug/2121017/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to