Исправлено определение необходимости шифрования профиля.

Добавлено правило: если каталог содержит только данные от
бутстрапа cl-core, то его необходимо шифровать при включенном общем
шифровании.
master3.3
Mike Hiretsky 11 years ago
parent 833c5c2fc4
commit ece4ededee

@ -471,3 +471,13 @@ def mountEcryptfs(userName,userPwd,userDir):
# отправить пароль через stdin # отправить пароль через stdin
mountProcess.write("passphrase_passwd="+userPwd) mountProcess.write("passphrase_passwd="+userPwd)
return mountProcess.success() return mountProcess.success()
def isBootstrapDataOnly(directory):
"""
Каталог содержит только сертификат, созданный командой cl-core
"""
from calculate.lib.utils.files import (process,readLinesFile,STDOUT,
isMount)
userCalculate = path.join(directory,".calculate")
return (set(listDirectory(directory)) == set([".calculate"]) and
set(listDirectory(userCalculate)) == set(["client_cert"]))

@ -21,7 +21,7 @@ import grp
from os import environ,path from os import environ,path
from calculate.lib.datavars import Variable,VariableError,ReadonlyVariable from calculate.lib.datavars import Variable,VariableError,ReadonlyVariable
from calculate.lib.cl_vars_share import varsShare from calculate.lib.cl_vars_share import varsShare
from calculate.lib.utils.common import getPasswdUsers from calculate.lib.utils.common import getPasswdUsers,isBootstrapDataOnly
from calculate.lib.utils.files import listDirectory from calculate.lib.utils.files import listDirectory
import sys import sys
from calculate.lib.cl_lang import setLocalTranslate from calculate.lib.cl_lang import setLocalTranslate
@ -229,7 +229,8 @@ class VariableUrHomeCryptSet(ReadonlyVariable):
# если пользовательского профиля нет, то шифровать ли профиль # если пользовательского профиля нет, то шифровать ли профиль
# узнаем на уровне системы # узнаем на уровне системы
homeDir = self.Get('ur_home_path') homeDir = self.Get('ur_home_path')
if not path.exists(homeDir) or not listDirectory(homeDir): if (not path.exists(homeDir) or not listDirectory(homeDir) or
isBootstrapDataOnly(homeDir)):
return self.Get('cl_home_crypt_set') return self.Get('cl_home_crypt_set')
# профиль не шифрованный # профиль не шифрованный
return "off" return "off"

Loading…
Cancel
Save