我一直在尝试从应用程序创建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(&jail);
因此,我想知道ip4和ip6字段的示例值是什么样子的?另外,我可以使用什么工具来检查jail,以确保正确地实例化了它们?(我是一个传统的Linux用户,所以这对我来说是一个未知的领域)。
澄清字段的问题,我理解in_addr类型在Linux中是什么,我可以假设它是相同的FreeBSD?
使用jexec:
在jail中运行任意命令jexec jail ls
jexec jail ps
你也可以在jail中运行shell:
jexec jail csh
或者
jexec jail env -i TERM=$TERM /usr/bin/login -fp root