Bug#890436: systemd-sysv-install uses ROOT variable from environment for chrooting

Lars Michelsen lm at larsmichelsen.com
Wed Feb 14 17:32:06 GMT 2018


Package: systemd
Version: 232-25+deb9u1
Severity: normal

systemd-sysv-install uses `ROOT` variable from environment when not set
via `-r` and tries to execute update-rc.d chrooted to the content of
this variable.

I'm am a bit unsure whether or not this really is a bug, but since it
was a total surprise for me when I found the cause of the issue and I
did not find any documentation about this behaviour, I think this is a
bug.

*Expected behaviour I didn't see*

root at Klappspaten:/# systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with
/lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
Created symlink /etc/systemd/system/sshd.service →
/lib/systemd/system/ssh.service.

*Unexpected behaviour I saw*

When ROOT is e.g. set to /dev/sda1, this issue occurs:

root at Klappspaten:/# systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with
/lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
chroot: cannot change root directory to "'/dev/sda1'": No such file or
directory

*Steps to reproduce the problem*

Simply set the environment variable and try to enable a service that is
also available as SysV-Init-Script

root at Klappspaten:/# export ROOT=/dev/sda1
root at Klappspaten:/# systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with
/lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ssh
chroot: cannot change root directory to "'/dev/sda1'": No such file or
directory

*Possible solution*

ROOT should be initialized with an empty value before reading command
line options.

*References*

https://github.com/systemd/systemd/issues/8180
https://salsa.debian.org/systemd-team/systemd/blob/master/debian/extra/systemd-sysv-install

-- Package-specific info:

-- System Information:
Debian Release: 9.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages systemd depends on:
ii  adduser         3.115
ii  libacl1         2.2.52-3+b1
ii  libapparmor1    2.11.0-3
ii  libaudit1       1:2.6.7-2
ii  libblkid1       2.29.2-1
ii  libc6           2.24-11+deb9u1
ii  libcap2         1:2.25-1
ii  libcryptsetup4  2:1.7.3-4
ii  libgcrypt20     1.7.6-2+deb9u2
ii  libgpg-error0   1.26-2
ii  libidn11        1.33-1
ii  libip4tc0       1.6.0+snapshot20161117-6
ii  libkmod2        23-2
ii  liblz4-1        0.0~r131-2+b1
ii  liblzma5        5.2.2-1.2+b1
ii  libmount1       2.29.2-1
ii  libpam0g        1.1.8-3.6
ii  libseccomp2     2.3.1-2.1
ii  libselinux1     2.6-3+b3
ii  libsystemd0     232-25+deb9u1
ii  mount           2.29.2-1
ii  procps          2:3.3.12-3
ii  util-linux      2.29.2-1

Versions of packages systemd recommends:
ii  dbus            1.10.24-0+deb9u1
ii  libpam-systemd  232-25+deb9u1

Versions of packages systemd suggests:
pn  policykit-1        <none>
pn  systemd-container  <none>
pn  systemd-ui         <none>

Versions of packages systemd is related to:
pn  dracut           <none>
ii  initramfs-tools  0.130
ii  udev             232-25+deb9u1

-- Configuration Files:
/etc/systemd/logind.conf changed [not included]

-- no debconf information


More information about the Pkg-systemd-maintainers mailing list