Самый простой способ - выполнить команду(ы) внутри клетки из консоли хост системы командой jexec, например
nas4free ~/ root~$ jexec 1 cd / && ls -la
total 18
drwxr-xr-x 3 root wheel 512 Feb 7 17:32 ./
drwxr-xr-x 18 root wheel 512 Feb 6 21:59 ../
-rw------- 1 root wheel 38 Feb 8 21:34 .bash_history
drwx------ 2 root wheel 512 Mar 1 2014 .ssh/
Но по одной команде выполнять неудобно. Одиночной команды или конвейера (&& в примере выше) обычно не хватает. Тогда как команду можно выполнить командный интерпретатор, обычно tcsh, ср
nas4free ~/ root~$ jls
JID IP Address Hostname Path
1 192.168.1.55 owncloud /mnt/Pool/Ext/Finch/usr/jails/owncloud
2 192.168.1.54 tm /mnt/Pool/Ext/Finch/usr/jails/tm
4 192.168.1.249 jail3.local /mnt/Pool/Ext/Jails/jail3
Здесь мы сначала смотрим список исполняемых клеток. И выбираем нужную по JID (уникальному номеру, который получают клетки в порядке запуска)
nas4free ~/ root~$ jexec 4 tcsh
root@jail3:/ # ls
.cshrc bin etc media rescue sys var
.profile boot lib mnt root tmp
COPYRIGHT dev libexec proc sbin usr
root@jail3:/ # exit
exit
nas4free ~/ root~$
Здесь мы запускаем командный интерпретатор (шелл в просторечье, от англ shell) внутри клетки. Обратите внимание - системное приглашение меняется от
nas4free ~/ root~$
на root@jail3:/ #
Затем исполняем команды в клетке (ls для примера) и выходим из шелла (exit). Системное приглашение меняется обратно.
Прим. Команды выше я исполнял от суперпользователя (root). Обычно для административных задач это и требуется. Но в клетку можно зайти и другим (существующим в клетке и способным к логину) пользователем, напр
nas4free ~/ root~$ jexec -u www 4 tcsh
www@jail3:/ % whoami
www
www@jail3:/ % exit
exit
nas4free ~/ root~$
А вот исполнить jexec от имени непривилегированного пользователя не удастся
nas4free ~/ root~$ su transmission
[transmission@nas4free /root]$ jexec 4 tcsh
jexec: jail_attach(4): Operation not permitted
[transmission@nas4free /root]$
NB. jexec ещё и универсальный способ - для клеток, созданных любым способом - вручную, через TheBrig, qjail или ещё каким способом.
PS[ Существуют и другие способы попасть в консоль клетки.]Существуют и другие способы попасть в консоль клетки.
Для qjail клеток есть команда console
nas4free ~/ root~$ qjail console tm
finch: chrooting to "/mnt/Pool/Ext/Finch" for this 1 command only.
Last login: Sat Aug 1 00:04:44 on pts/0
FreeBSD 10.2-RELEASE-p9 (NAS4FREE-amd64) #0 r294041M: Thu Jan 14 22:57:44 CET 2016
Welcome to your FreeBSD jail.
tm ~/ root~# exit
logout
nas4free ~/ root~$
Её недостаток в том, что работает тольк с созданными qjail клетками. А еще по умолчанию не настроена русская кодировка и русские буквы идут кракозябрами.
Можно настроить ssh непосредственно внутрь клетки. Это требует трудозатрат - но способ, в принципе, правильный. Например, когда кого-то можно пускать только в клетку и никак не в хост систему.