|
|
|
@ -58,8 +58,8 @@ def adminConnectLdap(fun):
|
|
|
|
|
if not self.getLdapObjInFile():
|
|
|
|
|
flagError = True
|
|
|
|
|
if not self.baseDN:
|
|
|
|
|
if self.clVars.defined("soft_ldap_base"):
|
|
|
|
|
self.baseDN = self.clVars.Get("soft_ldap_base")
|
|
|
|
|
if self.clVars.defined("ld_base_dn"):
|
|
|
|
|
self.baseDN = self.clVars.Get("ld_base_dn")
|
|
|
|
|
if not self.baseDN:
|
|
|
|
|
self.printERROR (_('Not found LDAP base DN'))
|
|
|
|
|
if flagError:
|
|
|
|
@ -195,7 +195,7 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
|
|
|
|
|
strUid = resPasswd.split(":")[2]
|
|
|
|
|
if strUid:
|
|
|
|
|
delBackDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_ldap_delete_user_dir"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_deleted_path"),
|
|
|
|
|
"%s-%s"%(userName,strUid),
|
|
|
|
|
service)
|
|
|
|
|
if strUid and os.path.exists(delBackDir) and os.listdir(delBackDir):
|
|
|
|
@ -234,7 +234,7 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
|
|
|
|
|
strUid = searchUnixUser[0][0][1]['uidNumber'][0]
|
|
|
|
|
if strUid:
|
|
|
|
|
delBackDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_ldap_delete_user_dir"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_deleted_path"),
|
|
|
|
|
"%s-%s"%(userName,strUid),
|
|
|
|
|
service)
|
|
|
|
|
if os.path.exists(delBackDir) and os.listdir(delBackDir):
|
|
|
|
@ -245,19 +245,19 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
delBackDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_ldap_delete_user_dir"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_deleted_path"),
|
|
|
|
|
"%s"%(userName),
|
|
|
|
|
service)
|
|
|
|
|
i = 0
|
|
|
|
|
while os.path.exists(delBackDir):
|
|
|
|
|
i += 1
|
|
|
|
|
delBackDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_ldap_delete_user_dir"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_deleted_path"),
|
|
|
|
|
"%s_%s"%(userName,i),
|
|
|
|
|
service)
|
|
|
|
|
# Cоздаем директорию хранения удаленных пользователей
|
|
|
|
|
if not os.path.exists(self.clVars.Get("soft_ldap_delete_user_dir")):
|
|
|
|
|
os.makedirs(self.clVars.Get("soft_ldap_delete_user_dir"))
|
|
|
|
|
if not os.path.exists(self.clVars.Get("sr_deleted_path")):
|
|
|
|
|
os.makedirs(self.clVars.Get("sr_deleted_path"))
|
|
|
|
|
#Делаем сохранение директории
|
|
|
|
|
try:
|
|
|
|
|
self.copyDir(delBackDir,srcDir)
|
|
|
|
@ -338,7 +338,7 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
|
|
|
|
|
def getALLServices(self):
|
|
|
|
|
"""Получаем все сервисы которые описаны в профилях"""
|
|
|
|
|
# путь к директории профилей
|
|
|
|
|
profilePath = self.clVars.Get("setup_path_profinstall")[0]
|
|
|
|
|
profilePath = self.clVars.Get("cl_profile_path")[-1]
|
|
|
|
|
data = os.listdir(profilePath)
|
|
|
|
|
service = []
|
|
|
|
|
for fileData in data:
|
|
|
|
@ -597,7 +597,7 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def createUserDir(self, uid, gid, userDir, mode=0700):
|
|
|
|
|
"""Создание пользовательской директории для почты"""
|
|
|
|
|
"""Создание пользовательской директории"""
|
|
|
|
|
if not os.path.exists(userDir):
|
|
|
|
|
os.makedirs(userDir)
|
|
|
|
|
if mode:
|
|
|
|
@ -1226,7 +1226,7 @@ class servUnix(shareLdap):
|
|
|
|
|
_("group name %s is found in Unix service") %\
|
|
|
|
|
str(groupName) + " ...")
|
|
|
|
|
return True
|
|
|
|
|
self.clVars.Set("soft_ldap_group_name",groupName)
|
|
|
|
|
self.clVars.Set("ur_group",groupName)
|
|
|
|
|
# номер группы
|
|
|
|
|
gid = str(self.getMaxGid())
|
|
|
|
|
if options.has_key('g'):
|
|
|
|
@ -1242,12 +1242,12 @@ class servUnix(shareLdap):
|
|
|
|
|
if self.searchUnixGid(gid):
|
|
|
|
|
self.printERROR(_("GID is found in Unix service") + " ...")
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Set("soft_ldap_group_id", gid)
|
|
|
|
|
self.clVars.Set("ur_group_id", gid)
|
|
|
|
|
# Коментарий к группе
|
|
|
|
|
gecos = self.groupGecos
|
|
|
|
|
if options.has_key('c'):
|
|
|
|
|
gecos = options['c']
|
|
|
|
|
self.clVars.Set("soft_ldap_group_desc",gecos)
|
|
|
|
|
self.clVars.Set("ur_group_comment",gecos)
|
|
|
|
|
|
|
|
|
|
ldifFile = self.ldifFileGroup
|
|
|
|
|
groupLdif = self.createLdif(ldifFile)
|
|
|
|
@ -1270,7 +1270,7 @@ class servUnix(shareLdap):
|
|
|
|
|
def addMachineLdapServer(self, machineName, options):
|
|
|
|
|
"""Добавляет Unix машину в LDAP-сервер"""
|
|
|
|
|
machineLogin = machineName.replace('$','') + "$"
|
|
|
|
|
groupName = self.clVars.Get('soft_ldap_machine_group_name')
|
|
|
|
|
groupName = self.clVars.Get('sr_samba_machine_group')
|
|
|
|
|
|
|
|
|
|
resSearch = self.searchUnixGroupName(groupName)
|
|
|
|
|
if resSearch:
|
|
|
|
@ -1298,11 +1298,11 @@ class servUnix(shareLdap):
|
|
|
|
|
options = {'g':groupId,'c':self.groupCompGecos}
|
|
|
|
|
if not self.addGroupUnixServer(groupName, options):
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Set('soft_ldap_machine_login',machineLogin)
|
|
|
|
|
self.clVars.Set('sr_samba_machine_login',machineLogin)
|
|
|
|
|
# Находим последний добавленный id
|
|
|
|
|
userIdNumber = str(self.getMaxUid())
|
|
|
|
|
self.clVars.Set('soft_ldap_machine_id',userIdNumber)
|
|
|
|
|
self.clVars.Set('soft_ldap_machine_gid',groupId)
|
|
|
|
|
self.clVars.Set('sr_samba_machine_id',userIdNumber)
|
|
|
|
|
self.clVars.Set('sr_samba_machine_gid',groupId)
|
|
|
|
|
ldifFile = self.ldifFileMachine
|
|
|
|
|
userLdif = self.createLdif(ldifFile)
|
|
|
|
|
if not self.ldapObj.getError():
|
|
|
|
@ -1311,7 +1311,6 @@ class servUnix(shareLdap):
|
|
|
|
|
if self.ldapObj.getError():
|
|
|
|
|
print _("LDAP Error") + ": " + self.ldapObj.getError().strip()
|
|
|
|
|
return False
|
|
|
|
|
#clVars.Write("soft_ldap_user_id",str(int(userId)+1))
|
|
|
|
|
self.printSUCCESS(_("Added machine") + "...")
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
@ -1326,7 +1325,7 @@ class servUnix(shareLdap):
|
|
|
|
|
return False
|
|
|
|
|
# id нового пользователя
|
|
|
|
|
userId = str(self.getMaxUid())
|
|
|
|
|
self.clVars.Set("soft_ldap_user_login", userName)
|
|
|
|
|
self.clVars.Set("ur_name", userName)
|
|
|
|
|
baseDir = self.baseDir
|
|
|
|
|
# Базовая домашняя директория
|
|
|
|
|
if options.has_key('b'):
|
|
|
|
@ -1341,23 +1340,23 @@ class servUnix(shareLdap):
|
|
|
|
|
homeDir = options['d']
|
|
|
|
|
else:
|
|
|
|
|
homeDir = os.path.join(baseDir, userName)
|
|
|
|
|
self.clVars.Set("soft_ldap_user_home",homeDir)
|
|
|
|
|
self.clVars.Set("ur_home_path",homeDir)
|
|
|
|
|
|
|
|
|
|
fullNameUser = self.fullNameUser
|
|
|
|
|
# Полное имя пользователя
|
|
|
|
|
if options.has_key('c'):
|
|
|
|
|
fullNameUser = options['c']
|
|
|
|
|
self.clVars.Set("soft_ldap_user_full_name",fullNameUser)
|
|
|
|
|
self.clVars.Set("ur_fio",fullNameUser)
|
|
|
|
|
# По умолчанию пользователя не видно
|
|
|
|
|
visible = '0'
|
|
|
|
|
if options.has_key('v'):
|
|
|
|
|
visible = '1'
|
|
|
|
|
self.clVars.Set("soft_ldap_user_visible",visible)
|
|
|
|
|
self.clVars.Set("ur_visible",visible)
|
|
|
|
|
# Оболочка пользователя
|
|
|
|
|
userShell = self.userShell
|
|
|
|
|
if options.has_key('s'):
|
|
|
|
|
userShell = options['s']
|
|
|
|
|
self.clVars.Set("soft_ldap_user_shell", userShell)
|
|
|
|
|
self.clVars.Set("ur_shell", userShell)
|
|
|
|
|
|
|
|
|
|
# id пользователя
|
|
|
|
|
if options.has_key('u'):
|
|
|
|
@ -1376,7 +1375,7 @@ class servUnix(shareLdap):
|
|
|
|
|
" /etc/passwd"+ " ...")
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
self.clVars.Set("soft_ldap_user_id",userId)
|
|
|
|
|
self.clVars.Set("ur_id",userId)
|
|
|
|
|
|
|
|
|
|
# Добавляем пользователя в группы (находим имена групп)
|
|
|
|
|
if options.has_key('G'):
|
|
|
|
@ -1426,7 +1425,7 @@ class servUnix(shareLdap):
|
|
|
|
|
self.printERROR(_("ERROR") + ": " +\
|
|
|
|
|
_("create crypto password"))
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Set("soft_ldap_user_pw_hash",userPwdHash)
|
|
|
|
|
self.clVars.Set("ur_hash",userPwdHash)
|
|
|
|
|
# флаги добавления
|
|
|
|
|
flagAdd = {}
|
|
|
|
|
# Добавление основной группы пользователя
|
|
|
|
@ -1446,7 +1445,7 @@ class servUnix(shareLdap):
|
|
|
|
|
flagAdd['group'] = flagAddGroup
|
|
|
|
|
if not flagAddGroup:
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Set("soft_ldap_user_gid", userGid)
|
|
|
|
|
self.clVars.Set("ur_gid", userGid)
|
|
|
|
|
|
|
|
|
|
ldifFile = self.ldifFileUser
|
|
|
|
|
userLdif = self.createLdif(ldifFile)
|
|
|
|
@ -2143,12 +2142,12 @@ service"))
|
|
|
|
|
if options.has_key("f"):
|
|
|
|
|
forceOptions = True
|
|
|
|
|
# В случае если сервер установлен
|
|
|
|
|
if self.clVars.Get("soft_unix_setup") == "yes" and\
|
|
|
|
|
if self.clVars.Get("sr_unix_set") == "on" and\
|
|
|
|
|
not forceOptions:
|
|
|
|
|
self.printWARNING (_("WARNING") + ": " +\
|
|
|
|
|
_("Unix service already configured")+ ".")
|
|
|
|
|
return True
|
|
|
|
|
if not self.clVars.Get("soft_ldap_setup") == "yes":
|
|
|
|
|
if not self.clVars.Get("sr_ldap_set") == "on":
|
|
|
|
|
self.printERROR(_("LDAP service not setuped") +" ...")
|
|
|
|
|
return False
|
|
|
|
|
if not forceOptions:
|
|
|
|
@ -2174,10 +2173,8 @@ service"))
|
|
|
|
|
bakupObj = servLdap()
|
|
|
|
|
bakupObj.backupServer()
|
|
|
|
|
# Имя устанавливаемого сервиса
|
|
|
|
|
self.clVars.Set("soft_ldap_setup_name","unix")
|
|
|
|
|
self.clVars.Write("soft_unix_setup","no")
|
|
|
|
|
# Для тестовых целей устанавливаем директорию инсталяции
|
|
|
|
|
#clVars.Set("setup_path_install","/tmp/test1/")
|
|
|
|
|
self.clVars.Set("cl_pass_service","unix")
|
|
|
|
|
self.clVars.Write("sr_unix_set","off")
|
|
|
|
|
# Cоздаем объект профиль устанавливая директорию ldap для
|
|
|
|
|
# файлов профилей
|
|
|
|
|
if not self.applyProfilesFromService('unix'):
|
|
|
|
@ -2217,10 +2214,10 @@ service"))
|
|
|
|
|
# Записываем данные администратора сервиса Unix
|
|
|
|
|
ldapParser = iniLdapParser()
|
|
|
|
|
ldapParser.setVar("unix",
|
|
|
|
|
{"DN":self.clVars.Get("soft_ldap_admin_unix"),
|
|
|
|
|
"PASS":self.clVars.Get("soft_ldap_admin_unixpw")})
|
|
|
|
|
{"DN":self.clVars.Get("ld_unix_dn"),
|
|
|
|
|
"PASS":self.clVars.Get("ld_unix_pw")})
|
|
|
|
|
self.printOK(_("Unix service configured") +" ...")
|
|
|
|
|
self.clVars.Write("soft_unix_setup","yes")
|
|
|
|
|
self.clVars.Write("sr_unix_set","on")
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def setShadowLastChange(self, userName):
|
|
|
|
@ -2309,7 +2306,7 @@ class servMail(shareLdap):
|
|
|
|
|
" ...")
|
|
|
|
|
return False
|
|
|
|
|
#почтовая директория пользователя
|
|
|
|
|
mailDir = os.path.join(self.clVars.Get("soft_ldap_mail_path"),
|
|
|
|
|
mailDir = os.path.join(self.clVars.Get("sr_mail_path"),
|
|
|
|
|
userName)
|
|
|
|
|
if options.has_key('r'):
|
|
|
|
|
backup = False
|
|
|
|
@ -2632,8 +2629,8 @@ class servMail(shareLdap):
|
|
|
|
|
mail = altMail
|
|
|
|
|
else:
|
|
|
|
|
mail = "%s@%s.%s" %(altMail,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
if not primaryMail:
|
|
|
|
|
primaryMail = mail
|
|
|
|
|
if self.searchUserToMail(mail) or\
|
|
|
|
@ -2680,8 +2677,8 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
mail = altMail
|
|
|
|
|
else:
|
|
|
|
|
mail = "%s@%s.%s" %(altMail,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
if self.searchUserToMail(mail) or\
|
|
|
|
|
self.searchGroupToMail(mail):
|
|
|
|
|
self.printERROR(
|
|
|
|
@ -2695,20 +2692,20 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
str(groupName) + " ...")
|
|
|
|
|
return False
|
|
|
|
|
mail = "%s@%s.%s" %(groupName,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
if self.searchUserToMail(mail) or\
|
|
|
|
|
self.searchGroupToMail(mail):
|
|
|
|
|
self.printERROR(
|
|
|
|
|
_("Email address %s is found in Mail service")%\
|
|
|
|
|
str(mail) + " ...")
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Set("soft_ldap_group_name",groupName)
|
|
|
|
|
self.clVars.Set("ur_group",groupName)
|
|
|
|
|
# Комментарий к группе
|
|
|
|
|
groupGecos = self.servUnixObj.groupGecos
|
|
|
|
|
if options.has_key('c'):
|
|
|
|
|
groupGecos = options['c']
|
|
|
|
|
self.clVars.Set("soft_ldap_group_desc",groupGecos)
|
|
|
|
|
self.clVars.Set("ur_group_comment",groupGecos)
|
|
|
|
|
ldifFile = self.ldifFileGroup
|
|
|
|
|
groupRawLdif = self.createLdif(ldifFile)
|
|
|
|
|
if not groupRawLdif:
|
|
|
|
@ -2785,8 +2782,8 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
usersInGroup = res[0][0][1]['rfc822member']
|
|
|
|
|
for userName in usersNames:
|
|
|
|
|
userMail = "%s@%s.%s" %(userName,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
if userMail in usersInGroup:
|
|
|
|
|
findUsers.append(userName)
|
|
|
|
|
return findUsers
|
|
|
|
@ -2835,7 +2832,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
if flagError:
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
mailDir = os.path.join(self.clVars.Get("soft_ldap_mail_path"),
|
|
|
|
|
mailDir = os.path.join(self.clVars.Get("sr_mail_path"),
|
|
|
|
|
userName)
|
|
|
|
|
flagError = False
|
|
|
|
|
if not self.createUserDir(uid, gid, mailDir):
|
|
|
|
@ -2885,8 +2882,8 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
modAttrs = []
|
|
|
|
|
for userName in addUsers:
|
|
|
|
|
userMail = "%s@%s.%s" %(userName,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
modAttrs.append((ldap.MOD_ADD, 'rfc822member', userMail))
|
|
|
|
|
if modAttrs:
|
|
|
|
|
groupDN = self.addDN("cn="+groupName, self.relGroupsDN)
|
|
|
|
@ -2919,8 +2916,8 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
mail = altMail
|
|
|
|
|
else:
|
|
|
|
|
mail = "%s@%s.%s" %(altMail,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
if not primaryMail:
|
|
|
|
|
primaryMail = mail
|
|
|
|
|
if self.searchUserToMail(mail) or\
|
|
|
|
@ -2940,8 +2937,8 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
mail = "%s@%s.%s" %(userName,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
if self.searchUserToMail(mail) or\
|
|
|
|
|
self.searchGroupToMail(mail):
|
|
|
|
|
self.printERROR(
|
|
|
|
@ -2977,7 +2974,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
_("User %s is not found in Unix service") % str(userName)+\
|
|
|
|
|
" ...")
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Set("soft_ldap_user_login", userName)
|
|
|
|
|
self.clVars.Set("ur_name", userName)
|
|
|
|
|
#Полное имя пользователя
|
|
|
|
|
fullNameUser = self.servUnixObj.fullNameUser
|
|
|
|
|
if options.has_key('c'):
|
|
|
|
@ -2985,7 +2982,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
else:
|
|
|
|
|
if resUnix and resUnix[0][0][1].has_key('cn'):
|
|
|
|
|
fullNameUser = resUnix[0][0][1]['cn'][0]
|
|
|
|
|
self.clVars.Set("soft_ldap_user_full_name",fullNameUser)
|
|
|
|
|
self.clVars.Set("ur_fio",fullNameUser)
|
|
|
|
|
if not userPwd:
|
|
|
|
|
userPwdHash = "crypt{xxx}"
|
|
|
|
|
else:
|
|
|
|
@ -2997,7 +2994,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
if flagCreateUnixUser:
|
|
|
|
|
self.servUnixObj.delUserUnixServer(userName, {}, False, False)
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Set("soft_ldap_user_pw_hash",userPwdHash)
|
|
|
|
|
self.clVars.Set("ur_hash",userPwdHash)
|
|
|
|
|
ldifFile = self.ldifFileUser
|
|
|
|
|
userRawLdif = self.createLdif(ldifFile)
|
|
|
|
|
if not userRawLdif:
|
|
|
|
@ -3028,7 +3025,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
if not flagError:
|
|
|
|
|
# Востановим удаленного пользователя
|
|
|
|
|
# Почтовая директория пользователя
|
|
|
|
|
mailDir = os.path.join(self.clVars.Get("soft_ldap_mail_path"),
|
|
|
|
|
mailDir = os.path.join(self.clVars.Get("sr_mail_path"),
|
|
|
|
|
userName)
|
|
|
|
|
message = _("Restored deleted user %s data")% userName + "\n" +\
|
|
|
|
|
_("(Y - yes, n - no, ctrl+c - cansel)")
|
|
|
|
@ -3074,7 +3071,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
self.createClVars()
|
|
|
|
|
#self.clVars.printVars()
|
|
|
|
|
#return True
|
|
|
|
|
if self.clVars.Get("soft_unix_setup") != "yes":
|
|
|
|
|
if self.clVars.Get("sr_unix_set") != "on":
|
|
|
|
|
self.printERROR (_("ERROR") + ": " +\
|
|
|
|
|
_("LDAP server is not configured")+ ".")
|
|
|
|
|
self.printWARNING(_("Unix service is not setuped"))
|
|
|
|
@ -3082,7 +3079,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
self.printWARNING(" cl-setup unix")
|
|
|
|
|
return False
|
|
|
|
|
# В случае если сервер установлен
|
|
|
|
|
if self.clVars.Get("soft_mail_setup") == "yes" and\
|
|
|
|
|
if self.clVars.Get("sr_mail_set") == "on" and\
|
|
|
|
|
not forceOptions:
|
|
|
|
|
self.printWARNING (_("WARNING") + ": " +\
|
|
|
|
|
_("Mail server is configured")+ ".")
|
|
|
|
@ -3120,8 +3117,8 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
if not self.stopServices(["mail"]):
|
|
|
|
|
return False
|
|
|
|
|
# Имя устанавливаемого сервиса
|
|
|
|
|
self.clVars.Set("soft_ldap_setup_name","mail")
|
|
|
|
|
self.clVars.Write("soft_mail_setup","no")
|
|
|
|
|
self.clVars.Set("cl_pass_service","mail")
|
|
|
|
|
self.clVars.Write("sr_mail_set","off")
|
|
|
|
|
# Cоздаем объект профиль устанавливая директорию mail для
|
|
|
|
|
# файлов профилей
|
|
|
|
|
if not self.applyProfilesFromService('mail'):
|
|
|
|
@ -3161,8 +3158,8 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
# Записываем данные администратора сервиса Mail
|
|
|
|
|
ldapParser = iniLdapParser()
|
|
|
|
|
ldapParser.setVar("mail",
|
|
|
|
|
{"DN":self.clVars.Get("soft_ldap_admin_mail"),
|
|
|
|
|
"PASS":self.clVars.Get("soft_ldap_admin_mailpw")})
|
|
|
|
|
{"DN":self.clVars.Get("ld_mail_dn"),
|
|
|
|
|
"PASS":self.clVars.Get("ld_mail_pw")})
|
|
|
|
|
self.printOK(_("Added ldif file") +" ...")
|
|
|
|
|
textLine = self.execProg("newaliases")
|
|
|
|
|
if not (textLine == None):
|
|
|
|
@ -3186,7 +3183,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("dovecot"):
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Write("soft_mail_setup","yes")
|
|
|
|
|
self.clVars.Write("sr_mail_set","on")
|
|
|
|
|
self.printOK(_("Mail service configured") + " ...")
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
@ -3606,12 +3603,12 @@ class servJabber(shareLdap):
|
|
|
|
|
_("group name %s is found in Jabber service") %\
|
|
|
|
|
str(groupName) + " ...")
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Set("soft_ldap_group_name",groupName)
|
|
|
|
|
self.clVars.Set("ur_group",groupName)
|
|
|
|
|
# Комментарий к группе
|
|
|
|
|
groupGecos = self.servUnixObj.groupGecos
|
|
|
|
|
if options.has_key('c'):
|
|
|
|
|
groupGecos = options['c']
|
|
|
|
|
self.clVars.Set("soft_ldap_group_desc",groupGecos)
|
|
|
|
|
self.clVars.Set("ur_group_comment",groupGecos)
|
|
|
|
|
ldifFile = self.ldifFileGroup
|
|
|
|
|
groupLdif = self.createLdif(ldifFile)
|
|
|
|
|
if not groupLdif:
|
|
|
|
@ -3631,8 +3628,8 @@ class servJabber(shareLdap):
|
|
|
|
|
"""Добавляет jabber пользователя"""
|
|
|
|
|
#jabber id
|
|
|
|
|
jabberId = "%s@%s.%s" %(userName,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
if self.searchUserToId(jabberId):
|
|
|
|
|
self.printERROR(_("User exists in Jabber service"))
|
|
|
|
|
return False
|
|
|
|
@ -3642,13 +3639,13 @@ class servJabber(shareLdap):
|
|
|
|
|
return False
|
|
|
|
|
if not userPwd:
|
|
|
|
|
userPwd = "crypt{xxx}"
|
|
|
|
|
self.clVars.Set("soft_ldap_user_pw_hash",userPwd)
|
|
|
|
|
self.clVars.Set("soft_ldap_user_login", userName)
|
|
|
|
|
self.clVars.Set("ur_hash",userPwd)
|
|
|
|
|
self.clVars.Set("ur_name", userName)
|
|
|
|
|
#Полное имя пользователя
|
|
|
|
|
fullNameUser = self.servUnixObj.fullNameUser
|
|
|
|
|
if options.has_key('c'):
|
|
|
|
|
fullNameUser = options['c']
|
|
|
|
|
self.clVars.Set("soft_ldap_user_full_name",fullNameUser)
|
|
|
|
|
self.clVars.Set("ur_fio",fullNameUser)
|
|
|
|
|
ldifFile = self.ldifFileUser
|
|
|
|
|
userLdif = self.createLdif(ldifFile)
|
|
|
|
|
if not self.ldapObj.getError():
|
|
|
|
@ -3680,7 +3677,7 @@ class servJabber(shareLdap):
|
|
|
|
|
self.createClVars()
|
|
|
|
|
#self.clVars.printVars()
|
|
|
|
|
#return True
|
|
|
|
|
if self.clVars.Get("soft_ldap_setup") != "yes":
|
|
|
|
|
if self.clVars.Get("sr_ldap_set") != "on":
|
|
|
|
|
self.printERROR (_("ERROR") + ": " +\
|
|
|
|
|
_("LDAP server is not configured")+ ".")
|
|
|
|
|
self.printWARNING(_("LDAP service is not setuped"))
|
|
|
|
@ -3688,7 +3685,7 @@ class servJabber(shareLdap):
|
|
|
|
|
self.printWARNING(" cl-setup ldap")
|
|
|
|
|
return False
|
|
|
|
|
# В случае если сервер установлен
|
|
|
|
|
if self.clVars.Get("soft_jabber_setup") == "yes" and\
|
|
|
|
|
if self.clVars.Get("sr_jabber_set") == "on" and\
|
|
|
|
|
not forceOptions:
|
|
|
|
|
self.printWARNING (_("WARNING") + ": " +\
|
|
|
|
|
_("Jabber server is configured")+ ".")
|
|
|
|
@ -3723,8 +3720,8 @@ class servJabber(shareLdap):
|
|
|
|
|
if not self.stopServices(["jabber"]):
|
|
|
|
|
return False
|
|
|
|
|
# Имя устанавливаемого сервиса
|
|
|
|
|
self.clVars.Set("soft_ldap_setup_name","jabber")
|
|
|
|
|
self.clVars.Write("soft_jabber_setup","no")
|
|
|
|
|
self.clVars.Set("cl_pass_service","jabber")
|
|
|
|
|
self.clVars.Write("sr_jabber_set","off")
|
|
|
|
|
# Cоздаем объект профиль устанавливая директорию jabber для
|
|
|
|
|
# файлов профилей
|
|
|
|
|
if not self.applyProfilesFromService('jabber'):
|
|
|
|
@ -3764,16 +3761,16 @@ class servJabber(shareLdap):
|
|
|
|
|
# Администратор сервиса
|
|
|
|
|
adminName = "admin"
|
|
|
|
|
adminFullName = "%s@%s.%s" %(adminName,
|
|
|
|
|
self.clVars.Get("net_host"),
|
|
|
|
|
self.clVars.Get("sys_domain"))
|
|
|
|
|
self.clVars.Get("os_net_hostname"),
|
|
|
|
|
self.clVars.Get("os_net_domain"))
|
|
|
|
|
print _("Enter the %s password" % adminFullName)
|
|
|
|
|
if not self.addUserJabberServer(adminName,{'p':""}):
|
|
|
|
|
return False
|
|
|
|
|
# Записываем данные администратора сервиса Jabber
|
|
|
|
|
ldapParser = iniLdapParser()
|
|
|
|
|
ldapParser.setVar("jabber",
|
|
|
|
|
{"DN":self.clVars.Get("soft_ldap_admin_jabber"),
|
|
|
|
|
"PASS":self.clVars.Get("soft_ldap_admin_jabberpw")})
|
|
|
|
|
{"DN":self.clVars.Get("ld_jabber_dn"),
|
|
|
|
|
"PASS":self.clVars.Get("ld_jabber_pw")})
|
|
|
|
|
self.printOK(_("Added ldif file") +" ...")
|
|
|
|
|
# создаем сертификат если есть используем прежний
|
|
|
|
|
self.execProg("/bin/bash /etc/jabber/self-cert.sh")
|
|
|
|
@ -3789,7 +3786,7 @@ class servJabber(shareLdap):
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("ejabberd"):
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Write("soft_jabber_setup","yes")
|
|
|
|
|
self.clVars.Write("sr_jabber_set","on")
|
|
|
|
|
self.printOK(_("Jabber service configured") + " ...")
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
@ -3841,16 +3838,16 @@ class servSamba(shareLdap):
|
|
|
|
|
str(delUser))
|
|
|
|
|
return False
|
|
|
|
|
winProfDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_samba_winprofile_path"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_samba_winprof_path"),
|
|
|
|
|
userName)
|
|
|
|
|
linProfDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_samba_linprofile_path"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_samba_linprof_path"),
|
|
|
|
|
userName)
|
|
|
|
|
userHomeDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_samba_home_path"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_samba_home_path"),
|
|
|
|
|
userName)
|
|
|
|
|
userNetlogonDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_samba_winlogon_path"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_samba_winlogon_path"),
|
|
|
|
|
userName)
|
|
|
|
|
if options.has_key('r'):
|
|
|
|
|
backup = False
|
|
|
|
@ -3964,16 +3961,16 @@ class servSamba(shareLdap):
|
|
|
|
|
if "Added" in str(textLine):
|
|
|
|
|
flagError = False
|
|
|
|
|
winProfDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_samba_winprofile_path"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_samba_winprof_path"),
|
|
|
|
|
userName)
|
|
|
|
|
linProfDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_samba_linprofile_path"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_samba_linprof_path"),
|
|
|
|
|
userName)
|
|
|
|
|
userHomeDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_samba_home_path"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_samba_home_path"),
|
|
|
|
|
userName)
|
|
|
|
|
userNetlogonDir =\
|
|
|
|
|
os.path.join(self.clVars.Get("soft_samba_winlogon_path"),
|
|
|
|
|
os.path.join(self.clVars.Get("sr_samba_winlogon_path"),
|
|
|
|
|
userName)
|
|
|
|
|
message = _("Restored deleted user %s")% userName + "\n" +\
|
|
|
|
|
_("(Y - yes, n - no, ctrl+c - cansel)")
|
|
|
|
@ -4144,7 +4141,7 @@ class servSamba(shareLdap):
|
|
|
|
|
self.createClVars()
|
|
|
|
|
if options.has_key("f"):
|
|
|
|
|
forceOptions = True
|
|
|
|
|
if self.clVars.Get("soft_unix_setup") != "yes":
|
|
|
|
|
if self.clVars.Get("sr_unix_set") != "on":
|
|
|
|
|
self.printERROR (_("ERROR") + ": " +\
|
|
|
|
|
_("LDAP server is not configured")+ ".")
|
|
|
|
|
self.printWARNING(_("Unix service is not setuped"))
|
|
|
|
@ -4152,7 +4149,7 @@ class servSamba(shareLdap):
|
|
|
|
|
self.printWARNING(" cl-setup unix")
|
|
|
|
|
return False
|
|
|
|
|
# В случае если сервер установлен
|
|
|
|
|
if self.clVars.Get("soft_samba_setup") == "yes" and\
|
|
|
|
|
if self.clVars.Get("sr_samba_set") == "on" and\
|
|
|
|
|
not forceOptions:
|
|
|
|
|
self.printWARNING (_("WARNING") + ": " +\
|
|
|
|
|
_("Samba server is configured")+ ".")
|
|
|
|
@ -4186,8 +4183,8 @@ class servSamba(shareLdap):
|
|
|
|
|
if not self.stopServices(["samba"]):
|
|
|
|
|
return False
|
|
|
|
|
# Имя устанавливаемого сервиса
|
|
|
|
|
self.clVars.Set("soft_ldap_setup_name","samba")
|
|
|
|
|
self.clVars.Write("soft_samba_setup","no")
|
|
|
|
|
self.clVars.Set("cl_pass_service","samba")
|
|
|
|
|
self.clVars.Write("sr_samba_set","off")
|
|
|
|
|
# Cоздаем объект профиль устанавливая директорию samba для
|
|
|
|
|
# файлов профилей
|
|
|
|
|
if not self.applyProfilesFromService('samba'):
|
|
|
|
@ -4203,8 +4200,8 @@ class servSamba(shareLdap):
|
|
|
|
|
# Записываем данные администратора сервиса Samba
|
|
|
|
|
ldapParser = iniLdapParser()
|
|
|
|
|
ldapParser.setVar("samba",
|
|
|
|
|
{"DN":self.clVars.Get("soft_ldap_admin_samba"),
|
|
|
|
|
"PASS":self.clVars.Get("soft_ldap_admin_sambapw")})
|
|
|
|
|
{"DN":self.clVars.Get("ld_samba_dn"),
|
|
|
|
|
"PASS":self.clVars.Get("ld_samba_pw")})
|
|
|
|
|
ldapParser = iniLdapParser()
|
|
|
|
|
pswd = ldapParser.getVar("samba","PASS")
|
|
|
|
|
if not pswd:
|
|
|
|
@ -4258,7 +4255,7 @@ class servSamba(shareLdap):
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("samba"):
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Write("soft_samba_setup","yes")
|
|
|
|
|
self.clVars.Write("sr_samba_set","on")
|
|
|
|
|
self.printOK(_("Samba service configured") + " ...")
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
@ -4364,7 +4361,7 @@ class servLdap(shareLdap):
|
|
|
|
|
"/usr/lib/calculate/calculate-server/ldif/ldap_base.ldif"
|
|
|
|
|
# Для backup
|
|
|
|
|
# Директория куда будет сохранен архив
|
|
|
|
|
self.backupDirectory = "/var/calculate/backup/LDAP"
|
|
|
|
|
self.backupDirectory = "/var/calculate/server-backup/ldap"
|
|
|
|
|
# ldif файл базы LDAP
|
|
|
|
|
self.archLdifFile = "/tmp/LDAP_DATABASE.ldif"
|
|
|
|
|
# приватная директория Samba
|
|
|
|
@ -4396,28 +4393,39 @@ class servLdap(shareLdap):
|
|
|
|
|
"""
|
|
|
|
|
servicePaths = []
|
|
|
|
|
servInstalled = []
|
|
|
|
|
# путь к директории профилей
|
|
|
|
|
profilePath = self.clVars.Get("setup_path_profinstall")[0]
|
|
|
|
|
if self.clVars.Get("soft_ldap_setup") == "yes":
|
|
|
|
|
serv = "ldap"
|
|
|
|
|
servicePaths.append(os.path.join(profilePath,serv))
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("soft_unix_setup") == "yes":
|
|
|
|
|
serv = "unix"
|
|
|
|
|
servicePaths.append(os.path.join(profilePath,serv))
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("soft_samba_setup") == "yes":
|
|
|
|
|
serv = "samba"
|
|
|
|
|
servicePaths.append(os.path.join(profilePath,serv))
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("soft_mail_setup") == "yes":
|
|
|
|
|
serv = "mail"
|
|
|
|
|
servicePaths.append(os.path.join(profilePath,serv))
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("soft_jabber_setup") == "yes":
|
|
|
|
|
serv = "jabber"
|
|
|
|
|
servicePaths.append(os.path.join(profilePath,serv))
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
# пути к директориям профилей
|
|
|
|
|
profilePaths = self.clVars.Get("cl_profile_path")
|
|
|
|
|
for profilePath in profilePaths:
|
|
|
|
|
if self.clVars.Get("sr_ldap_set") == "on":
|
|
|
|
|
serv = "ldap"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_unix_set") == "on":
|
|
|
|
|
serv = "unix"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_samba_set") == "on":
|
|
|
|
|
serv = "samba"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_mail_set") == "on":
|
|
|
|
|
serv = "mail"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_jabber_set") == "on":
|
|
|
|
|
serv = "jabber"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
return (servicePaths, servInstalled)
|
|
|
|
|
|
|
|
|
|
def backupServer(self):
|
|
|
|
@ -4467,13 +4475,13 @@ class servLdap(shareLdap):
|
|
|
|
|
ldapParser = iniLdapParser()
|
|
|
|
|
#iniPath = ldapParser.pathIniFile
|
|
|
|
|
#scanPrivDirs.append(iniPath)
|
|
|
|
|
dirDelUsers = self.clVars.Get("soft_ldap_delete_user_dir")
|
|
|
|
|
dirDelUsers = self.clVars.Get("sr_deleted_path")
|
|
|
|
|
if os.path.exists(dirDelUsers):
|
|
|
|
|
scanPrivDirs.append(dirDelUsers)
|
|
|
|
|
# Добавляем calulate.ldap
|
|
|
|
|
allArchFiles.append(ldapParser.nameIniFile)
|
|
|
|
|
# Добавляем calculate.env
|
|
|
|
|
iniFile = "/" + self.clVars.Get("sys_calculate_ini")
|
|
|
|
|
iniFile = "/" + self.clVars.Get("cl_env_path")[2]
|
|
|
|
|
allArchFiles.append(iniFile)
|
|
|
|
|
if "samba" in servInstalled:
|
|
|
|
|
scanPrivDirs.append(self.sambaPrivate)
|
|
|
|
@ -4687,7 +4695,7 @@ class servLdap(shareLdap):
|
|
|
|
|
|
|
|
|
|
def removeTmpRestoreFile(self):
|
|
|
|
|
"""Удаляем временные файлы нужные для восстановлеиня сервисов"""
|
|
|
|
|
profilePath = self.clVars.Get("setup_path_profinstall")[0]
|
|
|
|
|
profilePath = self.clVars.Get("cl_profile_path")[0]
|
|
|
|
|
backupDir = os.path.join(profilePath, self.backupDir)
|
|
|
|
|
fileObj = cl_profile._file()
|
|
|
|
|
scanObjs = fileObj.scanDirs([backupDir])
|
|
|
|
@ -4716,8 +4724,8 @@ class servLdap(shareLdap):
|
|
|
|
|
|
|
|
|
|
используем DN и пароль временного админстратора
|
|
|
|
|
"""
|
|
|
|
|
self.ldapObj = ldapFunction(self.clVars.Get("soft_ldap_admin_tmp"),
|
|
|
|
|
self.clVars.Get("soft_ldap_adminpw_tmp"))
|
|
|
|
|
self.ldapObj = ldapFunction(self.clVars.Get("ld_temp_dn"),
|
|
|
|
|
self.clVars.Get("ld_temp_pw"))
|
|
|
|
|
self.conLdap = self.ldapObj.conLdap
|
|
|
|
|
if self.ldapObj.getError():
|
|
|
|
|
self.printERROR(_("Can not connected to LDAP server") + " ...")
|
|
|
|
@ -4733,7 +4741,7 @@ class servLdap(shareLdap):
|
|
|
|
|
if options.has_key("f"):
|
|
|
|
|
forceOptions = True
|
|
|
|
|
|
|
|
|
|
if self.clVars.Get("soft_ldap_setup") == "yes" and\
|
|
|
|
|
if self.clVars.Get("sr_ldap_set") == "on" and\
|
|
|
|
|
not forceOptions:
|
|
|
|
|
self.printWARNING (_("WARNING") + ": " +\
|
|
|
|
|
_("LDAP server is configured")+ ".")
|
|
|
|
@ -4767,7 +4775,7 @@ class servLdap(shareLdap):
|
|
|
|
|
if not self.stopServices(self.getALLServices()):
|
|
|
|
|
return False
|
|
|
|
|
# Получим путь к ini файлу
|
|
|
|
|
iniFile = "/" + self.clVars.Get("sys_calculate_ini")
|
|
|
|
|
iniFile = "/" + self.clVars.Get("cl_env_path")[2]
|
|
|
|
|
# Удаляем ini файл
|
|
|
|
|
if os.path.exists(iniFile):
|
|
|
|
|
os.remove(iniFile)
|
|
|
|
@ -4778,10 +4786,10 @@ class servLdap(shareLdap):
|
|
|
|
|
if os.path.exists(ldapFile):
|
|
|
|
|
os.remove(ldapFile)
|
|
|
|
|
# Имя устанавливаемого сервиса
|
|
|
|
|
self.clVars.Set("soft_ldap_setup_name","ldap")
|
|
|
|
|
self.clVars.Write("soft_ldap_setup","no")
|
|
|
|
|
self.clVars.Set("cl_pass_service","ldap")
|
|
|
|
|
self.clVars.Write("sr_ldap_set","off")
|
|
|
|
|
# Первый проход
|
|
|
|
|
self.clVars.Set("setup_pass_parser","1",True)
|
|
|
|
|
self.clVars.Set("cl_pass_step","1",True)
|
|
|
|
|
if not self.applyProfilesFromService('ldap'):
|
|
|
|
|
self.printERROR(_("Can not apply profiles") +":"+ _("first pass"))
|
|
|
|
|
return False
|
|
|
|
@ -4804,7 +4812,7 @@ class servLdap(shareLdap):
|
|
|
|
|
self.printOK(_("Added ldif file") +" ...")
|
|
|
|
|
# Второй проход,
|
|
|
|
|
# удаляем временного пользователя root из конфигурационного файла
|
|
|
|
|
self.clVars.Set("setup_pass_parser","2",True)
|
|
|
|
|
self.clVars.Set("cl_pass_step","2",True)
|
|
|
|
|
if not self.applyProfilesFromService('ldap'):
|
|
|
|
|
self.printERROR(_("Can not apply profiles") +":"+ _("second pass"))
|
|
|
|
|
return False
|
|
|
|
@ -4813,12 +4821,12 @@ class servLdap(shareLdap):
|
|
|
|
|
return False
|
|
|
|
|
# Записываем данные администратора сервера
|
|
|
|
|
ldapParser.setVar("admin",
|
|
|
|
|
{"DN":self.clVars.Get("soft_ldap_admin"),
|
|
|
|
|
"PASS":self.clVars.Get("soft_ldap_adminpw")})
|
|
|
|
|
{"DN":self.clVars.Get("ld_admin_dn"),
|
|
|
|
|
"PASS":self.clVars.Get("ld_admin_pw")})
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("slapd"):
|
|
|
|
|
return False
|
|
|
|
|
self.clVars.Write("soft_ldap_setup","yes")
|
|
|
|
|
self.clVars.Write("sr_ldap_set","on")
|
|
|
|
|
self.printOK(_("LDAP service configured") +" ...")
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|