解析并编辑freebsd jail.conf文件

jailconf的Python项目详细描述


使用python解析和编辑freebsd jail.conf文件。

安装

要安装jailconf,只需:

pip3 install jailconf

jailconf需要python 3。

示例

importjailconf

从路径加载配置

conf=jailconf.load('/etc/jail.conf')

从字符串加载配置

conf=jailconf.loads(open('/etc/jail.conf').read())

创建空配置

conf=jailconf.JailConf()

配置被表示为一个dictionary(实际上是ordereddict的一个子类)。

让我们修改一些设置。

配置中带引号的字符串应与引号一起传递。 例如,要获得设置:

path="/var/jail/$name";

你写:

conf['path']='"/var/jail/$name"'

字符串应该与您希望在 配置文件中的参数名。 如果希望参数的值是带引号的字符串,可以传递 包含带引号的字符串的字符串。 这允许您指定希望在输出配置中看到的引号类型 文件(单引号、双引号或根本不引号)。

conf['exec.start']='"/bin/sh /etc/rc"'conf['exec.stop']='"/bin/sh /etc/rc.shutdown"'

布尔参数。获得:

exec.clean;
mount.devfs;

你写:

conf['exec.clean']=Trueconf['mount.devfs']=True

添加监狱:

conf['myjail']=jailconf.JailBlock([('host.hostname','"example.com"'),('ip4.addr',['10.1.1.1','10.1.1.2','10.1.1.3'])])

修改监狱

conf['myjail']['ip4.addr']='192.168.1.2'# this will be rendered as the line: ip4.addr = 192.168.1.2# To set multiple ips, use a list:conf['myjail']['ip4.addr']=['192.168.1.2','192.168.1.3']

删除监狱

delconf['uselessjail']

在监狱里反复阅读

forname,jail_blockinconf.jails():jail_block['host.hostname']='"%s"'%name

将配置输出为字符串

>>>print(conf.dumps())
path = "/var/jail/$name";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;
myjail {
        host.hostname = "myjail";
        ip4.addr = 192.168.1.2, 192.168.1.3;
}

将配置写入文件

conf.write('/etc/jail.conf')

Github回购:https://github.com/leforestier/jailconf

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在mongodb中获取用户有权访问的数据库列表?   基于契约和类不变量的java设计   java我的代码有什么问题,似乎是正确的,但事实并非如此   java Android初学者:布局按钮和文本   400错误Paypal令牌API与Java(HttpURLConnection)   为什么Java从socket中随机读取数据,而不是整个消息?   如果我调用scanner,我会扫描两次。先是下一个,然后是扫描仪。下一个   如果消息发送失败,java ActiveMQ/JMS不重试   java有没有类似于dynaTrace的开源框架?   java Android:获取zip中的文件数(使用存储卷/存储访问框架)   java无法将流图像解码为片段   java如何修复Jenkins插件中的“此位置的预期stackmap帧”   java如何使用javac编译器编译AndroidManifest。xml文件?