【发布时间】:2018-11-26 00:25:23
【问题描述】:
我正在将 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
【问题讨论】:
-
您的示例文件是什么样的?您可以添加它吗?
-
@SufiyanGhori,将其添加到主帖中。
标签: python json parsing sudoers