xref: /freebsd/usr.sbin/jexec/jexec.8 (revision d56f3b051f6135b4a675fd75ccfcef0310368781)
1.\"
2.\" Copyright (c) 2003 Mike Barcroft <mike@FreeBSD.org>
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24.\" SUCH DAMAGE.
25.\"
26.Dd March 5, 2025
27.Dt JEXEC 8
28.Os
29.Sh NAME
30.Nm jexec
31.Nd "execute a command inside an existing jail"
32.Sh SYNOPSIS
33.Nm
34.Op Fl l
35.Op Fl d Ar working-directory
36.Op Fl u Ar username | Fl U Ar username
37.Ar jail Op Ar command ...
38.Sh DESCRIPTION
39The
40.Nm
41utility executes
42.Ar command
43inside the
44.Ar jail
45identified by its jid or name.
46If
47.Ar command
48is not specified then the user's shell is used.
49.Pp
50The following options are available:
51.Bl -tag -width indent
52.It Fl d Ar working-directory
53The working directory for running commands inside the jail.
54The default is the jail root directory.
55.It Fl l
56Execute in a clean environment.
57The environment is discarded except for
58.Ev HOME , SHELL , TERM , USER ,
59and anything from the login class capability database for the user.
60.Ev PATH
61is set to "/bin:/usr/bin".
62If a user is specified (via
63.Fl u
64or
65.Fl U ) ,
66and absent the
67.Fl d
68option, commands are run from that (possibly jailed) user's directory.
69.It Fl u Ar username
70The user name from host environment as whom the
71.Ar command
72should run.
73This is the default.
74.It Fl U Ar username
75The user name from jailed environment as whom the
76.Ar command
77should run.
78.El
79.Sh EXAMPLES
80.Ss Example 1 : Open a shell in a jail
81The following command specifies a jail by its name and utilizes the current
82user's shell:
83.Pp
84.Dl # jexec name
85.Pp
86It is also possible to specify a jail by its jid:
87.Pp
88.Dl # jexec JID
89.Ss Example 2 : Run a single command without opening a shell
90The following command runs
91.Ql uname -a
92in a jail called
93.Dq name .
94Since a command is specified explicitly,
95.Nm
96does not spawn an interactive shell.
97Instead,
98.Nm
99executes the specified command directly.
100.Pp
101.Dl # jexec name uname -a
102.Ss Example 3 : Open a shell in a jail with a clean environment
103The following command opens a
104.Xr sh 1
105shell in a jail with a clean environment:
106.Pp
107.Dl # jexec -l name sh
108.Ss Example 4 : Open a shell in a jail with the login command
109The following command utilizes
110.Xr login 1
111to access the jail, submitting an audit record, and displaying the
112user's last login, system copyright, and
113.Xr motd 5
114message:
115.Pp
116.Dl # jexec -l name login -f root
117.Sh SEE ALSO
118.Xr jail_attach 2 ,
119.Xr jail 8 ,
120.Xr jls 8
121.Sh HISTORY
122The
123.Nm
124utility was added in
125.Fx 5.1 .
126.Sh BUGS
127If the jail is not identified by
128.Ar jid
129there is a possible race in between the lookup of the jail
130and executing the command inside the jail.
131Giving a
132.Ar jid
133has a similar race as another process can stop the jail and
134start another one after the user looked up the
135.Ar jid .
136