Added check of the previous nt hash when you change a user password on the server from the client

legacy
Самоукин Алексей 14 years ago
parent 7c63c3cfd2
commit f27012d493

@ -12619,7 +12619,8 @@ remove user %s in the LDAP branch 'Worked'")%str(login))
.calculate.env в домашней директории пользователя
"""
varsData = ("unix_hash", "samba_lm_hash", "samba_nt_hash")
varsData = ("unix_hash", "samba_lm_hash",
"samba_nt_hash", "samba_nt_hash_old")
if not set(varsData)<=set(varsDict.keys()):
notFoundVars = set(varsData) - set(varsDict.keys())
if len(notFoundVars)<len(varsData):
@ -12633,6 +12634,7 @@ remove user %s in the LDAP branch 'Worked'")%str(login))
userPwdHash = varsDict["unix_hash"].encode("UTF-8")
userLMHash = varsDict["samba_lm_hash"].encode("UTF-8")
userNTHash = varsDict["samba_nt_hash"].encode("UTF-8")
userOldNTHash = varsDict["samba_nt_hash_old"].encode("UTF-8")
# Поиск пользователя в Unix сервисе
resUnix = self.servUnixObj.searchUnixUser(userName)
# Поиск пользователя в Samba сервисе
@ -12645,6 +12647,18 @@ remove user %s in the LDAP branch 'Worked'")%str(login))
self.printERROR(
_("Samba user %s is not found")%str(userName))
return False
# Проверка правильности предыдущего пароля
if resSamba[0][0][1].has_key('sambaNTPassword'):
if userOldNTHash !=resSamba[0][0][1]['sambaNTPassword'][0]:
self.printERROR(
_("Invalid previous password for the user %s")\
%str(userName))
return False
else:
self.printERROR(
_("Can not find password for user %s in service Samba")\
%str(userName))
return False
# Изменение пароля пользователя Unix
# Изменяемые аттрибуты пользователя
modAttrs = []
@ -12661,7 +12675,6 @@ remove user %s in the LDAP branch 'Worked'")%str(login))
# Изменим время последнего измения пароля пользователя
if not self.servUnixObj.setShadowLastChange(userName):
return False
# Изменение пароля пользователя Samba
# Изменяемые аттрибуты пользователя
modAttrs = []

@ -466,13 +466,3 @@ class Data:
#Настроен или нет сервис DHCP
sr_dhcp_set = {'mode':"w",
'value':'off'}
#-----------------------------------------------------
# Управление сервисами ~/.calculate.env
#-----------------------------------------------------
# хеш пароля пользователя для сервиса Unix
ur_unix_hash = {'mode':"w"}
# LANMAN хеш пароля пользователя для сервиса Samba
ur_samba_lm_hash = {'mode':"w"}
# NT хеш пароля пользователя для сервиса Samba
ur_samba_nt_hash = {'mode':"w"}
Loading…
Cancel
Save