linux权限解析代码
将文件夹或则文件的权限值解析成数字
最近在编写基线检查的一些脚本,用到对特定文件的权限进行检查,写了各解析文件权限值函数记录下
## 将传入的一行或者 drwxr--r--当场参数传入,获取解析的值
def getFileP(key):
def getFileP(key):
rwx_1 = key[1:4]
rwx_2 = key[4:7]
rwx_3 = key[7:10]
to_number = {
"rwx": "7",
"rw-": "6",
"r-x": "5",
"r--": "4",
"-wx": "3",
"-w-": "2",
"--x": "1",
"---": "0",
}
p = 0
if rwx_1[-1] == 's':
rwx_1 = rwx_1.replace("s", "x")
p += 4
if rwx_2[-1] == 's':
rwx_2 = rwx_2.replace("s", "x")
p += 2
if rwx_3[-1] == "t":
rwx_3 = rwx_3.replace("t", "x")
p += 1
# print(rwx_1,rwx_2,rwx_3)
p = str(p) + to_number.get(rwx_1, "") + to_number.get(rwx_2, "") + to_number.get(rwx_3, "")
return p
## chekP(t,"0655") 将特定文件的权限和0655进行比较,小于0655则为True,否则返回False
def checkP(p, t):
p_t = zip(list(p), list(t))
return all(
list(
map(lambda x: True if int(x[0]) < int(x[1]) else False, p_t)
)
)
## 多行文件群贤分成行,和列
def getRWX(content):
if not content:
return None
content = content.split("\n")
content = list(filter(lambda _: _.strip(), content))
lines = list(map(lambda _: re.split("\s+", _), content))
return lines

浙公网安备 33010602011771号