python 指令碼檢視比對檔案許可權

2021-10-10 07:25:14 字數 711 閱讀 4886

安全基線要求中大多數都要求檢測/etc/passwd,/etc/shadow等目錄的許可權。我嘗試用python 編寫相關指令碼進行檢測,遇到了幾個難點,記錄一下。

從python指令碼輸入shell指令並取得返回值,這個我用匯入的subprocess模組中的check_output方法解決了

返回的字串沒有辦法做許可權大小的比較,需要把rwx這樣的字串轉換成111這樣的二進位制數,這裡我用for迴圈加if檢測,在用按位或運算達成效果。

import os, subprocess

def turn_str_to_num(str): # 建立乙個檢測許可權字串的方法

count = 0

for i in range(len(str[1:10])):

if str[i] != "-":

count = count | 2**(len(str[1:10])-i) # 通過按位或運算將檢測出來的許可權轉換成二進位制數

print(bin(count))

return bin(count)

backstr = subprocess.check_output("ls -l /etc/passwd", shell=true) # 取得執行命令返回的字串

newstr = backstr[1:10] # 切割返回的字串

print(turn_str_to_num(newstr))

shell比對文字檔案

1,對於檔案中的字元是以換行結尾的如下 root py test cat 1.txt 1122 aa33 cc root py test cat 2.txt 11cc ddee ff 使用如下 root py test cat 2.sh while read line1 do while read ...

python 檔案比對

coding utf 8 class data def init self,a b self.a a self.b b def return data self return self.a,self.b class createobject def init self,class name null...

git 使用vimdiff 格式顯示比對檔案

可以指定外邊的diff工具來顯示檔案差異,可以使用 git difftool tool help 檢視difftool可用的工具 如果不指定預設的difftool工具,需要使用 extcmd 引數指定具體的diff工具,比如 git difftool extcmd vimdiff cache pri...