Parse and edit your FreeBSD jail.conf file
Project description
Parse and edit your FreeBSD jail.conf file with python.
Installation
To install jailconf, simply:
pip3 install jailconf
jailconf requires Python 3.
Examples
import jailconf
Load the configuration from a path
conf = jailconf.load('/etc/jail.conf')
Load the configuration from a string
conf = jailconf.loads(open('/etc/jail.conf').read())
Create an empty configuration
conf = jailconf.JailConf()
The configuration is represented as a dictionnary (actually a subclass of OrderedDict).
Let’s modify some settings.
The quoted strings in the configuration should be passed with the quotes. For example, to obtain the setting:
path = "/var/jail/$name";
you write:
conf['path'] = '"/var/jail/$name"'
The string should be exactly what you want to appear on the right side of the parameter name in the configuration file. If you want the value of a parameter to be a quoted string, you pass a string containing a quoted string. This allows you to specify what kind of quotes you want to see in the output configuration file (single quotes, double quotes, or no quote at all).
conf['exec.start'] = '"/bin/sh /etc/rc"'
conf['exec.stop'] = '"/bin/sh /etc/rc.shutdown"'
Boolean parameters. To obtain:
exec.clean;
mount.devfs;
you write:
conf['exec.clean'] = True
conf['mount.devfs'] = True
Add a jail:
conf['myjail'] = jailconf.JailBlock([
('host.hostname', '"example.com"'),
('ip4.addr', ['10.1.1.1', '10.1.1.2', '10.1.1.3'])
])
Modify a jail
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']
Delete a jail
del conf['uselessjail']
Iterate over jails
for name, jail_block in conf.jails():
jail_block['host.hostname'] = '"%s"' % name
Output the configuration as a string
>>> 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;
}
Write the configuration to a file
conf.write('/etc/jail.conf')
GitHub repo: https://github.com/leforestier/jailconf
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file jailconf-0.2.2.tar.gz
.
File metadata
- Download URL: jailconf-0.2.2.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17cb2f14a1247356ea8981e9776113cf9141e4c71cf9f769411822b9cc296d88 |
|
MD5 | f301e7791e1fe343c640b0641d9be18f |
|
BLAKE2b-256 | 5b180227c051b497550e9c7d00cddfa2f7e27c1b00b236b4931c3dbd04b219a9 |