2016-10-04 3 views
1

Я пытаюсь создать BSD-тюрьмы из приложения. На основе человеко-страниц FreeBSD для jail(2) Я придумал:Создание экземпляров BSD из C

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(&jail); 

Так от этого, мне было интересно, что пример значения для IP4, и ip6 поля будет выглядеть? Кроме того, какие инструменты я могу использовать для проверки тюрьмы, чтобы убедиться, что я правильно их создал? (Я традиционно пользователь Linux, поэтому для меня это не обозначенная территория).

Чтобы уточнить вопрос по полям, я понимаю, что такое тип in_addr в Linux, могу ли я предположить, что это то же самое для FreeBSD?

+0

фактически ip4s и ip6s являются подсчеты ip4 и ip6-структур, которые вы проходите. На самом деле это очень хорошо описано в man-странице тюрьмы (2). –

+0

@AhmedMasud Это не то, о чем я прошу, как я сказал в своем редактировании, я спрашиваю, могу ли я предположить, что in_addr - то же самое из Linux? –

+0

Что вы подразумеваете под «проверкой тюрьмы, чтобы убедиться, что я правильно их создал?»? –

ответ

1

Чтобы запустить произвольную команду в использовании тюрьмы jexec:

jexec jail ls 
jexec jail ps 

Вы также можете запустить оболочку в тюрьме:

jexec jail csh 

Или даже

jexec jail env -i TERM=$TERM /usr/bin/login -fp root