Я использую модуль tarfile
, чтобы проверить разрешение пакетов в моем файле tar.gz.Моя проблема в два раза.
Значение битов доступа отличается от значения, полученного из команды ls -l
.Из команды list
значение равно 755
.Но я получаю 488
в моей программе.Я использую приведенную ниже командную функцию -
def checkAndExtratZipFile (value,packageElementInfoList):
try:
tar = tarfile.open(value,"r:gz")
for tarinfo in tar:
global elementType
# Populate all information about the element
name = tarinfo.name
size = tarinfo.size
perm = tarinfo.mode
if tarinfo.isdir():
eleType = elementType.Directory
elif tarinfo.issym():
eleType = elementType.SymbolicLink
else:
eleType = elementType.File
# Populate into list
packageElementInfoList.append(packageElementInfo(name,eleType,perm,size))
tar.close()
except:
print "Verification of package %s failed.\n Reason : Not able to read contents in the tar package." % value
sys.exit(1)
В моей системе (работающей на SUSE Linux) будут проверяться пакеты, созданные на SUSE / AIX и платформе HP.Поэтому мне нужно проверить пакеты, созданные на платформе AIX / HP / Linux на Linux Server.Биты разрешений пакета AIX / HP в Linux очень странные. Бит разрешения 755
задается как 33256
.
. Любая помощь приветствуется.