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

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

@ -471,3 +471,13 @@ def mountEcryptfs(userName,userPwd,userDir):
# отправить пароль через stdin
mountProcess.write("passphrase_passwd="+userPwd)
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 calculate.lib.datavars import Variable,VariableError,ReadonlyVariable
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
import sys
from calculate.lib.cl_lang import setLocalTranslate
@ -229,7 +229,8 @@ class VariableUrHomeCryptSet(ReadonlyVariable):
# если пользовательского профиля нет, то шифровать ли профиль
# узнаем на уровне системы
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 "off"

Loading…
Cancel
Save