Изменен метод генерации хеша пароля

git-svn-id: http://svn.calculate.ru/calculate2/calculate-server/trunk@974 c91db197-33c1-4113-bf15-f8a5c547ca64
develop
asamoukin 16 years ago
parent b5c712635c
commit 2d7c3ca623

@ -667,7 +667,6 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
_("password incorrect")+ ": " + _("try again"))
return False
userPwd = pwdA
userPwd = re.sub("(\W)", r"\\\1",userPwd)
return userPwd
def getRunDaemons(self, daemons, printError=False):
@ -711,6 +710,23 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
return False
else:
return True
def getHashPasswd(self, password, crypt):
"""Хеш пароля используя slappasswd"""
if not crypt:
self.printERROR(_("ERROR") + " getHashPasswd: " +\
_("crypto algoritm empty"))
return False
cryptStr = "{%s}"%crypt.upper()
lenCryptStr = len(cryptStr)
pwd = re.sub("(\W)", r"\\\1", password)
pwdHash = self.execProg("slappasswd -s %s -h %s" %(pwd,cryptStr))
if pwdHash and len(pwdHash)>lenCryptStr and\
pwdHash[:lenCryptStr] == cryptStr:
return pwdHash
self.printERROR(_("ERROR") + " getHashPasswd: " +\
_("create crypto password"))
return False
def getRunService(self, nameService, printError=False):
"""Проверка, запущен ли сервис с данным именем"""
@ -1257,7 +1273,7 @@ class servUnix(shareLdap):
# Скелетная директория для создания пользователя
self.skelDir = "/etc/skel"
# Алгоритм шифрования пароля для LDAP пользователя
self.userCrypt = "{SSHA}"
self.userCrypt = "ssha"
# Используемые ldif файлы
self.ldifFileMachine =\
"/usr/lib/calculate/calculate-server/ldif/samba_machine.ldif"
@ -1715,11 +1731,8 @@ class servUnix(shareLdap):
if not userPwd:
userPwdHash = "crypt{xxx}"
else:
userPwdHash =\
self.execProg("slappasswd -s %s -h %s" %(userPwd,self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
self.printERROR(_("ERROR") + ": " +\
_("create crypto password"))
return False
self.clVars.Set("ur_hash",userPwdHash)
# флаги добавления
@ -2223,8 +2236,9 @@ service"))
if userPwd == False:
return False
if userPwd:
userPwdHash = self.execProg("slappasswd -s %s -h %s"\
%(userPwd, self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
return False
if res[0][0][1].has_key('userPassword'):
modAttrs.append((ldap.MOD_REPLACE, 'userPassword',
userPwdHash))
@ -2319,9 +2333,9 @@ service"))
userPwd = self.getUserPassword(optPasswd, "p", False)
if userPwd == False:
return False
userPwdHash =\
self.execProg("slappasswd -s %s -h %s"\
%(userPwd, self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
return False
if res[0][0][1].has_key('userPassword'):
modAttrs.append((ldap.MOD_REPLACE, 'userPassword',
userPwdHash))
@ -2589,7 +2603,7 @@ class servMail(shareLdap):
self.ldifFileGroup =\
"/usr/lib/calculate/calculate-server/ldif/mail_group.ldif"
# Алгоритм шифрования пароля для Mail пользователя
self.userCrypt = "{SSHA}"
self.userCrypt = "ssha"
# Директория хранения писем
if unixObj:
# получаем объект сервиса Unix
@ -2959,8 +2973,9 @@ class servMail(shareLdap):
if userPwd == False:
return False
if userPwd:
userPwdHash = self.execProg("slappasswd -s %s -h %s"\
%(userPwd, self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
return False
if res[0][0][1].has_key('userPassword'):
modAttrs.append((ldap.MOD_REPLACE, 'userPassword',
userPwdHash))
@ -3092,9 +3107,9 @@ in Unix service ...") %str(primaryMail))
userPwd = self.getUserPassword(optPasswd, "p", False)
if userPwd == False:
return False
userPwdHash =\
self.execProg("slappasswd -s %s -h %s"\
%(userPwd, self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
return False
if res[0][0][1].has_key('userPassword'):
modAttrs.append((ldap.MOD_REPLACE, 'userPassword',
userPwdHash))
@ -3329,11 +3344,8 @@ in Unix service ...") %str(primaryMail))
if not userPwd:
userPwdHash = "crypt{xxx}"
else:
userPwdHash =\
self.execProg("slappasswd -s %s -h %s" %(userPwd,self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
self.printERROR(_("ERROR") + ": " +\
_("create crypto password"))
if flagCreateUnixUser:
self.servUnixObj.delUserUnixServer(userName, {}, False, False)
return False
@ -7194,7 +7206,7 @@ class servFtp(shareLdap):
# DN пользователей, относительно базового DN
self.relUsersDN = self.addDN(self.relUsDN, self.relDN)
# Алгоритм шифрования пароля для LDAP пользователя
self.userCrypt = "{SSHA}"
self.userCrypt = "ssha"
# Используемые ldif файлы
self.ldifFileUser =\
"/usr/lib/calculate/calculate-server/ldif/ftp_user.ldif"
@ -7394,9 +7406,9 @@ class servFtp(shareLdap):
if userPwd == False:
return False
if userPwd:
userPwdHash =\
self.execProg("slappasswd -s %s -h %s"\
%(userPwd, self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
return False
if resSearch[0][0][1].has_key('userPassword'):
modAttrs.append((ldap.MOD_REPLACE, 'userPassword',
userPwdHash))
@ -7432,9 +7444,9 @@ class servFtp(shareLdap):
userPwd = self.getUserPassword(optPasswd, "p", False)
if userPwd == False:
return False
userPwdHash =\
self.execProg("slappasswd -s %s -h %s"\
%(userPwd, self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
return False
if resSearch[0][0][1].has_key('userPassword'):
modAttrs.append((ldap.MOD_REPLACE, 'userPassword',
userPwdHash))
@ -7528,11 +7540,8 @@ class servFtp(shareLdap):
if not userPwd:
userPwdHash = "crypt{xxx}"
else:
userPwdHash =\
self.execProg("slappasswd -s %s -h %s" %(userPwd,self.userCrypt))
userPwdHash = self.getHashPasswd(userPwd, self.userCrypt)
if not userPwdHash:
self.printERROR(_("ERROR") + ": " +\
_("create crypto password"))
if flagCreateUnixUser:
self.servUnixObj.delUserUnixServer(userName, {}, False, False)
return False

Loading…
Cancel
Save