quickjail
, quickshell
—
Utility to spawn transient single-command jails
quickjail |
[-c ] [param=value ...]
command=command ... |
The quickjail
command is used to create transient
single-command jails in a reasonably secure manner.
The key advantage to quickjail
over
jail(8)
is the model that quickjail
uses to execute
command. quickjail
will fork
and execute command in a non-persistent jail, while
jail(8)
will mark the jail as persistent and remove the jail when the child process
is gone. For some use-cases, this behavior is not ideal as it may
potentially leave the jail behind depending on how the child command
exits.
If a path param is specified to
quickjail
, then quickjail
will
chdir(2)
to this path before creating the jail with the same
path.
An optional flag, -c
, is allowed if
specified before any other parameters. The -c
flag
is otherwise ignored. This allows quickjail
to
maintain an interface compatible with
jail(8)
for the purposes of other tools, like
bectl(8).
The quickshell
command is a simplified
interface to quickjail
specifically for running a
shell in the alien path. It defaults to
sh(1), but
that may be overridden by the QUICKSHELL
environment
variable.
If the -s
argument is supplied to
quickshell
, then it will use the
SHELL
environment variable instead of
QUICKSHELL
.
quickshell
explicitly does not use the
user's current shell because it is assumed that the
path we are creating a jail at does not have the
user's current shell. This is the common case for the author of
quickshell
.
quickjail
path=/mnt
command=/bin/sh
quickjail
name=qemu0
path=/mnt command=/bin/sh
quickshell
/mnt
quickjail
was a quick-and-dirty hack to facilitate the
author's testing of qemu usermode emulation.