Bug#1069706: systemd unit files lack ordering wrt nss-user-lookup.target

Rasmus Villemoes <[email protected]>
Newsgroups gmane.linux.debian.devel.ssh
Message-ID <6c888ba9-2159-4d7e-be7b-d93bd1f3b488__17132.9772261501$1713858861$gmane$org@rasmusvillemoes.dk>
Package: openssh-server
Version: 1:8.9p1-3ubuntu0.6
Severity: normal

Dear Maintainer,

According to systemd.special(7)

    nss-user-lookup.target

        A target that should be used as synchronization point for all
        regular UNIX user/group name service lookups. [...] All
        services for which the availability of the full user/group
        database is essential should be ordered after this target, but
        not pull it in. All services which provide parts of the
        user/group database should be ordered before this target, and
        pull it in.

I have a custom .service that does exactly as described in the second
part, i.e. provides part of the user/group database and says
Before=nss-user-lookup.target, Wants=nss-user-lookup.target
(concretely, it modifies /etc/shadow to update a default password, but
that's not really important). I believe sshd definitely belongs in the
former category, i.e. sshd should not be started until any such
service that updates the user/group database, such as updating
/etc/shadow, have run.

Hence the ssh.service and ssh.socket files should add

After=nss-user-lookup.target

in their [Unit] sections. This is a no-op on systems that do not have
any service pulling in that target, but required for correctness on
systems that do.

Of course, I could, and currently do, handle this via a drop-in config
fragment in some ssh.service.d/ directory. But this, and other similar
synchronization targets, exist so that one does not necessarily need
to know about every other service running on the system.


-- System Information:
Debian Release: bookworm/sid
  APT prefers jammy-updates
  APT policy: (500, 'jammy-updates'), (500, 'jammy-security'), (500,
'jammy'), (100, 'jammy-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.15.136-00006-g3d6db53ae88c (SMP w/8 CPU threads)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages openssh-server depends on:
ii  adduser                3.118ubuntu5
ii  debconf [debconf-2.0]  1.5.79ubuntu1
ii  dpkg                   1.21.1ubuntu2.3
ii  init-system-helpers    1.62
ii  libaudit1              1:3.0.7-1build1
ii  libc6                  2.35-0ubuntu3.6
ii  libcom-err2            1.46.5-2ubuntu1.1
ii  libcrypt1              1:4.4.27-1
ii  libgssapi-krb5-2       1.19.2-2ubuntu0.3
ii  libkrb5-3              1.19.2-2ubuntu0.3
ii  libpam-modules         1.4.0-11ubuntu2.4
ii  libpam-runtime         1.4.0-11ubuntu2.4
ii  libpam0g               1.4.0-11ubuntu2.4
ii  libselinux1            3.3-1build2
ii  libssl3                3.0.2-0ubuntu1.15
ii  libsystemd0            249.11-0ubuntu3.12
ii  libwrap0               7.6.q-31build2
ii  lsb-base               11.1.0ubuntu4
ii  openssh-client         1:8.9p1-3ubuntu0.6
ii  openssh-sftp-server    1:8.9p1-3ubuntu0.6
ii  procps                 2:3.3.17-6ubuntu2.1
ii  ucf                    3.0043
ii  zlib1g                 1:1.2.11.dfsg-2ubuntu9.2

Versions of packages openssh-server recommends:
ii  libpam-systemd [logind]  249.11-0ubuntu3.12
ii  ncurses-term             6.3-2ubuntu0.1
ii  ssh-import-id            5.11-0ubuntu1
ii  xauth                    1:1.1-1build2

Versions of packages openssh-server suggests:
pn  molly-guard                           <none>
pn  monkeysphere                          <none>
ii  ssh-askpass                           1:1.2.4.1-13
ii  ssh-askpass-fullscreen [ssh-askpass]  0.3-3.1build2
ii  ssh-askpass-gnome [ssh-askpass]       1:8.9p1-3ubuntu0.6
ii  ufw                                   0.36.1-4ubuntu0.1

-- debconf information excluded
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.