envuidgid — add UID and GID environment variables then chain
envuidgid
[--supplementary] {account
} {next-prog
}
envuidgid is a chain-loading utility that sets the UID
and GID
environment variables to the values for account
in the system account database and then chain loads to next-prog
with the execvp(3) function.
If the --supplementary option is used, it will also set the GIDLIST
environment variable to the (comma-separated) list of supplementary GIDs for the groups to which account belongs, as listed in the groups database.
Without that option, it ignores the group database and unsets the GIDLIST
environment variable entirely.
If it cannot set the environment variables, or cannot find an account named account
in the database, it does not chain and exits with status code 111.
next-prog
may contain its own command line options, which envuidgid will ignore.
The main purpose of envuidgid is to eliminate the need for a process that has run chroot(1) to read from the system password database. Instead of running setuidgid(1) and thus forcing the need for a copy of the system password database inside the changed root environment, a chain runs envuidgid and can obtain the account information from the environment (or run setuidgid-fromenv(1)) later.