The Linux Homefront Project reports on Lennart Poettering looking to do away with the good old "su" command. From the article, "With this pull request systemd now support a su command functional and can create privileged sessions, that are fully isolated from the original session. Su is a classic UNIX command and used more than 30 years. Why su is bad? Lennart Poettering says:"
Well, there have been long discussions about this, but the problem is that what su is supposed to do is very unclear. On one hand it’s supposed to open a new session and change a number of execution context parameters (uid, gid, env, …), and on the other it’s supposed to inherit a lot concepts from the originating session (tty, cgroup, audit, …). Since this is so weakly defined it’s a really weird mix&match of old and new paramters. To keep this somewhat managable we decided to only switch the absolute minimum over, and that excludes XDG_RUNTIME_DIR, specifically because XDG_RUNTIME_DIR is actually bound to the session/audit runtime and those we do not transition. Instead we simply unset it.
Long story short: su is really a broken concept. It will given you kind of a shell, and it’s fine to use it for that, but it’s not a full login, and shouldn’t be mistaken for one.
I'm guessing that Devuan won't be getting rid of "su."
(Score: 3, Insightful) by https on Monday August 31 2015, @05:58PM
I always thought that the su command's purpose was 100% clear: substitute user. That is, I like my set of environment variables, for the most part, but I wish I was someone else. The linux manpage explicitly confirms it: "The current environment is passed to the new shell."
That Poettering can claim with any semblance of a straight face that su is unclear in either principle or practice should convince thinking observers that this dude is not to be believed in any statement, including his (or maybe her?) name and employer.
BSD, here I come...
Offended and laughing about it.