Overview
Security elevation mechanism for plainbox
This command is a part of the implementation of plainbox. It is not intended to be invoked directly and the command line arguments and behavior may freely change between versions.
Technically this program is used to run a command associated with a job definition as another user (typically as root). The existing technologies such as sudo (8) and pkexec (1) don't have enough granularity to still restrict arbitrary commands but allow the commands that are inside system-wide installed locations (thus safe as one needs root access to install those in the first place). One additional restriction is that some commands are themselves generated by other jobs.
Warm-up Mode
If the --warmup option is specified then nothing more happens and the program exists immediately. This is intended to 'warm-up' the tool that executes plainbox-trusted-launcher-1 itself (typically pkexec or sudo)
Normal Execution
In normal execution mode, the launcher looks up the job with the checksum specified by --target and executes the command embedded inside. Environment passed via --target-environment is appended to the environment variables inherited from the parent process.
Standard output, standard error and exit code of plainbox-trusted-launcher-1 is exactly as the values from the commands embedded into the selected job itself.
Indirect Execution
In indirect execution mode, the launcher first looks up the job with the checksum specified by --generator, executes it, discarding stderr and re-interpreting stdout as a set of job definitions. Environment passed via the --generator-environment is appended (but just to the generator job, the --target job has independent environment). All of the additional job definitions are added to the global pool of jobs the launcher knows about.
After that the launcher continues as with normal execution, returning the same stdout, stderr and exit code.
History
-
Debian 9 (Stretch): the text shown here
-
Debian 8 (Jessie)
--generator since Debian 9 (Stretch);
--generator-environment since Debian 9 (Stretch);
--target since Debian 9 (Stretch);
--target-environment since Debian 9 (Stretch);
-G since Debian 9 (Stretch);
-T since Debian 9 (Stretch);
-g since Debian 9 (Stretch);
-t since Debian 9 (Stretch).
--help until Debian 8 (Jessie);
-h until Debian 8 (Jessie).