#c #freebsd #jail
#c #freebsd #тюрьма
Вопрос:
Я пытался создать BSD-тюрьмы из приложения. На основе справочных страниц FreeBSD для jail (2) я придумал:
struct jail _jail;
_jail->version = <jail version>;
_jail->path = "/some/path/";
_jail->hostname = "some-host";
_jail->jailname = "jailname";
_jail->ip4s = <ip value>;
_jail->ip6s = <ip value>;
_jail->ip4 = <ip4 struct>;
_jail->ip6 = <ip6 struct>;
int jid = jail(amp;jail);
Исходя из этого, мне было интересно, как будут выглядеть примерные значения для полей ip4 и ip6? Кроме того, какие инструменты я могу использовать для проверки тюрем, чтобы убедиться, что я создал их правильно? (Я традиционно пользователь Linux, так что для меня это неизведанная территория).
Чтобы прояснить вопрос с полями, я понимаю, что такое тип in_addr в Linux, могу ли я предположить, что он такой же для FreeBSD?
Комментарии:
1. на самом деле ip4 и ip6 — это количество передаваемых вами структур ip4 и ip6.. На самом деле это очень хорошо описано на справочной странице jail(2).
2. @AhmedMasud Это не то, о чем я спрашиваю, как я уже сказал в своей правке, я спрашиваю, могу ли я предположить, что in_addr такой же, как в Linux?
3. Что вы имеете в виду, говоря «проверить тюрьму, чтобы убедиться, что я правильно создал их экземпляры?»?
4. Я имею в виду инструмент, который позволяет мне видеть процессы, пользователя и fs в тюрьме.
5. @ChristianGrabowski
jexec ps
иjexec ls /
?
Ответ №1:
Для запуска произвольной команды в тюрьме используйте jexec:
jexec jail ls
jexec jail ps
Вы также можете запустить оболочку внутри тюрьмы:
jexec jail csh
Или даже
jexec jail env -i TERM=$TERM /usr/bin/login -fp root