解析并编辑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')