Я работаю над парсером для файла sudoers в формате, который легче читать для программы, над которой я работаю.Я новичок в Python, и у меня недостаточно опыта, чтобы делать то, что мне нужно.
Пока у меня есть следующий код:
#!/usr/bin/env python
import operator
import os
import sys
import re
import json
example_file = "./Sudoers_example.txt"
try:
column1 = []
column2 = []
column3 = []
with open(example_file) as f:
for line in f:
#result.append(re.split(r'\s+', line)[0:3])
column1.append(re.split(r'\s+', line)[0])
column2.append(re.split(r'\s+', line)[1])
column3.append(re.split(r'\s+', line)[2])
mergedDict = {'op':column1, 'runas':column2, 'cmds':column3}
print(json.dumps(mergedDict, indent=4, sort_keys=False))
except Exception as ee:
print(ee)
sys.exit(-1)
Это не дает того, что яхочу.Это работа в процессе.
Тем не менее, я хочу увидеть следующее:
{
"hostname": "host.moo.com",
"sudoers": [
{
"op": "operator1",
"runas": "ALL=(ALL)",
"cmds": "ALL"
},
{
"op": "operator2",
"runas": "ALL=(ALL)",
"cmds": "ALL"
}
]
}
Я не уверен, каков будет следующий шаг.Как мне действовать?
Редактировать , файлы примеров выглядят так (согласно запросу):
root ALL=(ALL) ALL
%group1 ALL=(ALL) ALL
operator1 ALL=(ALL) ALL
operator2 ALL=(ALL) ALL
%systems ALL=(ALL) ALL