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