runuser do not preserve env
Elan Ruusamäe
glen at delfi.ee
Mon Apr 16 21:08:18 CEST 2018
doesn't seem like runuser resets env...
seems to me that these days only reliable way to switch user is using
sudo, no standard tools available...
# rpm -qf `which runuser`
util-linux-2.31-2.x86_64
# runuser --help
Usage:
runuser [options] -u <user> [[--] <command>]
runuser [options] [-] [<user> [<argument>...]]
Run <command> with the effective user ID and group ID of <user>. If -u is
not given, fall back to su(1)-compatible semantics and execute standard
shell.
The options -c, -f, -l, and -s are mutually exclusive with -u.
Options:
-u, --user <user> username
-m, -p, --preserve-environment do not reset environment variables
-g, --group <group> specify the primary group
-G, --supp-group <group> specify a supplemental group
-, -l, --login make the shell a login shell
-c, --command <command> pass a single command to the shell with -c
--session-command <command> pass a single command to the shell with -c
and do not create a new session
-f, --fast pass -f to the shell (for csh or tcsh)
-s, --shell <shell> run <shell> if /etc/shells allows it
-P, --pty create a new pseudo-terminal
-h, --help display this help
-V, --version display version
For more details see runuser(1).
# env TMP111=foo runuser -u http -- env|grep TMP
TMP=/home/glen/tmp
TMPDIR=/home/glen/tmp
TMP111=foo
and "login shell" has completely useless purpose
$ env TMP111=foo runuser -l -u http -- env|grep TMP
runuser: options --{shell,fast,command,session-command,login} and --user
are mutually exclusive
More information about the pld-devel-en
mailing list