Package: util-linux
Version: 2.32-0.4
Severity: normal

Dear Andreas, Maintainer,

the change to 'su' from 'util-linux' broke an important workload for me:

My backup script, running as root, needs access to the SSH agent running
as user in order to backup remote machines. It needs root access for doing
BTRFS-Snapshots – I could change that to sudo - and also for writing out
the data with correct ownership preserved. It uses some commands that are
in 'sbin' directories.

Thus I set the PATH manually in the script initially, as your explaination
which I appreciate was not available at the time the change happened. But
then I left that 'su' without setting new environment open, which broke
apt on installing a new package, since dpkg did not find ldconfig and another
command, since 'sbin' related directories where not in PATH.

I wonder what else may break for other users.

Meanwhile you described the change:

> util-linux (2.32-0.4) unstable; urgency=medium
>
> The util-linux implementation of /bin/su is now used, replacing the
> one previously supplied by src:shadow (shipped in login package), and
> bringing Debian in line with other modern distributions. The two
> implementations are very similar but have some minor differences (and
> there might be more that was not yet noticed ofcourse), e.g.
>
> - new 'su' (with no args, i.e. when preserving the environment) also
>   preserves PATH and IFS, while old su would always reset PATH and IFS
>   even in 'preserve environment' mode.
> - su '' (empty user string) used to give root, but now returns an error.
> - previously su only had one pam config, but now 'su -' is configured
>   separately in /etc/pam.d/su-l
>
> The first difference is probably the most user visible one. Doing
> plain 'su' is a really bad idea for many reasons, so using 'su -' is

I read this here and elsewhere. Everytime with one thing common:

Bad idea, should never do it. But *no reasons*.

Not enough for me as a user and admin to make an informed decision about it.

> strongly recommended to always get a newly set up environment similar
> to a normal login. If you want to restore behaviour more similar to
> the previous one you can add 'ALWAYS_SET_PATH yes' in /etc/login.defs.
> -- Andreas Henriksson <[…]>  Fri, 03 Aug 2018 10:52:22 +0200

No reasons, no insight on why I should change the way I do things regarding
those backup scripts.

Also… I tried out sudo… and it does not preserve environment variables for
SSH Agent. Is it really that unusual to use a SSH Agent running in a user
session from a root session? What is really the issue with that? Root could
do it anyway.

So I´d really appreciate some more on explaining the reasons behind the
change, why it is a bad idea of using "su" without initializing new
environment – not even the "su" manpage mentions something about it,
it appears to be highly outdated anyway (July 2014). I may ask on
'util-linux' mailing list about that.

And hints on migrating workloads that depended on this behavior.

I think that would be beneficial to have before a Debian stable release,
but maybe my idea on how many users rely on the old behavior does not match
the fact and I may be one of the only users who accessed an SSH agent from
a root session.

I have a slight idea on how to rewrite the whole script to run as user,
using "setpriv" to do the actions it needs to do as root, but before I do
that: Why would it be better? Most of the stuff it needs to do as root.

Thanks,
Martin


-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (200, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.18.0-rc5-tp520-btrfstrim+ (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=de 
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages util-linux depends on:
ii  fdisk          2.32-0.3
ii  libaudit1      1:2.8.3-1+b1
ii  libblkid1      2.32-0.3
ii  libc6          2.27-5
ii  libmount1      2.32-0.3
ii  libpam0g       1.1.8-3.7
ii  libselinux1    2.8-1+b1
ii  libsmartcols1  2.32-0.3
ii  libsystemd0    239-7
ii  libtinfo6      6.1+20180714-1
ii  libudev1       239-7
ii  libuuid1       2.32-0.3
ii  login          1:4.5-1.1
ii  zlib1g         1:1.2.11.dfsg-1

util-linux recommends no packages.

Versions of packages util-linux suggests:
ii  dosfstools          4.1-2
ii  kbd                 2.0.4-4
ii  util-linux-locales  2.32-0.3

-- no debconf information

Reply via email to