|
|
|
@ -3511,7 +3511,7 @@ Unix service ...") %str(primaryMail))
|
|
|
|
|
%"Mail"
|
|
|
|
|
strPrompt = _("allow networks: ")
|
|
|
|
|
netAllow = self.clVars.Get("sr_mail_net_allow")
|
|
|
|
|
strNetAllow = self.clVars.Get("os_net_allow")
|
|
|
|
|
strNetAllow = ""
|
|
|
|
|
if netAllow:
|
|
|
|
|
strNetAllow = netAllow.replace(","," ")
|
|
|
|
|
allowNet = self.getUserAllowNetwork(strPrompt, strNetAllow)
|
|
|
|
@ -3529,8 +3529,9 @@ Unix service ...") %str(primaryMail))
|
|
|
|
|
forceOptions = True
|
|
|
|
|
# Создаем объект переменных
|
|
|
|
|
self.createClVars()
|
|
|
|
|
#self.clVars.printVars()
|
|
|
|
|
#return True
|
|
|
|
|
# Установка доступных сетей по умолчанию
|
|
|
|
|
self.clVars.Set("sr_mail_net_allow", self.clVars.Get("os_net_allow"),
|
|
|
|
|
True)
|
|
|
|
|
if self.clVars.Get("sr_unix_set") != "on":
|
|
|
|
|
self.printERROR(_("Unix service is not setuped"))
|
|
|
|
|
self.printWARNING(_("Setup Unix service"))
|
|
|
|
@ -3556,11 +3557,15 @@ Unix service ...") %str(primaryMail))
|
|
|
|
|
_("input 'yes'") +", "+ _("if not 'no'")
|
|
|
|
|
if not self.dialogYesNo(messDialog):
|
|
|
|
|
return True
|
|
|
|
|
if not self.getAllowNet():
|
|
|
|
|
return False
|
|
|
|
|
if options.has_key("netallow"):
|
|
|
|
|
# Получаем от пользователя доверительные сети
|
|
|
|
|
if not self.getAllowNet():
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
if not self.getAllowNet():
|
|
|
|
|
return False
|
|
|
|
|
if options.has_key("netallow"):
|
|
|
|
|
# Получаем от пользователя доверительные сети
|
|
|
|
|
if not self.getAllowNet():
|
|
|
|
|
return False
|
|
|
|
|
# делаем backup
|
|
|
|
|
# Проверим запущен ли ldap
|
|
|
|
|
if not self.getRunService("ldap"):
|
|
|
|
@ -3675,8 +3680,6 @@ Unix service ...") %str(primaryMail))
|
|
|
|
|
self.clVars.Write("sr_mail_host",mailHost,True,"local")
|
|
|
|
|
self.clVars.Write("sr_mail_type",
|
|
|
|
|
self.clVars.Get("sr_mail_type"),True,"local")
|
|
|
|
|
|
|
|
|
|
self.clVars.Delete("sr_mail_send_crypt","",True)
|
|
|
|
|
self.clVars.Write("sr_mail_crypt",
|
|
|
|
|
self.clVars.Get("sr_mail_crypt"),True,"local")
|
|
|
|
|
self.clVars.Write("sr_mail_net_allow",
|
|
|
|
@ -4772,7 +4775,7 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
|
|
|
|
|
%"Samba"
|
|
|
|
|
strPrompt = _("allow networks: ")
|
|
|
|
|
netAllow = self.clVars.Get("sr_samba_net_allow")
|
|
|
|
|
strNetAllow = self.clVars.Get("os_net_allow")
|
|
|
|
|
strNetAllow = ""
|
|
|
|
|
if netAllow:
|
|
|
|
|
strNetAllow = netAllow.replace(","," ")
|
|
|
|
|
allowNet = self.getUserAllowNetwork(strPrompt, strNetAllow)
|
|
|
|
@ -4788,6 +4791,9 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
|
|
|
|
|
forceOptions = False
|
|
|
|
|
# Cоздаем объект переменные
|
|
|
|
|
self.createClVars()
|
|
|
|
|
# Установка доступных сетей по умолчанию
|
|
|
|
|
self.clVars.Set("sr_samba_net_allow", self.clVars.Get("os_net_allow"),
|
|
|
|
|
True)
|
|
|
|
|
if options.has_key("f"):
|
|
|
|
|
forceOptions = True
|
|
|
|
|
if self.clVars.Get("sr_unix_set") != "on":
|
|
|
|
@ -4813,13 +4819,15 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
|
|
|
|
|
_("input 'yes'") +", "+ _("if not 'no'")
|
|
|
|
|
if not self.dialogYesNo(messDialog):
|
|
|
|
|
return True
|
|
|
|
|
# Получаем от пользователя доверительные сети
|
|
|
|
|
if not self.getAllowNet():
|
|
|
|
|
return False
|
|
|
|
|
if options.has_key("netallow"):
|
|
|
|
|
# Получаем от пользователя доверительные сети
|
|
|
|
|
if not self.getAllowNet():
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
# Получаем от пользователя доверительные сети
|
|
|
|
|
if not self.getAllowNet():
|
|
|
|
|
return False
|
|
|
|
|
if options.has_key("netallow"):
|
|
|
|
|
# Получаем от пользователя доверительные сети
|
|
|
|
|
if not self.getAllowNet():
|
|
|
|
|
return False
|
|
|
|
|
# делаем backup
|
|
|
|
|
# Проверим запущен ли ldap
|
|
|
|
|
if not self.getRunService("ldap"):
|
|
|
|
@ -5144,6 +5152,10 @@ class servLdap(shareLdap):
|
|
|
|
|
self.sslJabberFile = "/etc/jabber/ssl.pem"
|
|
|
|
|
# директория для хранения временных файлов
|
|
|
|
|
self.tmpEnvDir = "/tmp/tmp_calculate"
|
|
|
|
|
# Сервис Samba
|
|
|
|
|
self.servSambaObj = servSamba()
|
|
|
|
|
# Сервис Mail
|
|
|
|
|
self.servMailObj = servMail()
|
|
|
|
|
|
|
|
|
|
def savePrivateFile(self, fileName, data):
|
|
|
|
|
"""Записать файл с правами 0600"""
|
|
|
|
@ -5225,6 +5237,7 @@ outdated. If the backup is obsolete, use cl-backup."))
|
|
|
|
|
return True
|
|
|
|
|
# В случае создания сервера репликации из файла backup c
|
|
|
|
|
# другого компьютера
|
|
|
|
|
replServices = []
|
|
|
|
|
if options.has_key("repl"):
|
|
|
|
|
# Находим имена сервисов репликации для этого сервера
|
|
|
|
|
# и инициализируются переменные
|
|
|
|
@ -5246,11 +5259,17 @@ outdated. If the backup is obsolete, use cl-backup."))
|
|
|
|
|
if not self.restoreServer(False):
|
|
|
|
|
return False
|
|
|
|
|
verbose = False
|
|
|
|
|
opt = {}
|
|
|
|
|
if options.has_key("v"):
|
|
|
|
|
opt = {'v':''}
|
|
|
|
|
else:
|
|
|
|
|
opt = {}
|
|
|
|
|
if not self.updateServer(opt, "all"):
|
|
|
|
|
opt['v'] = ''
|
|
|
|
|
if options.has_key("netallow"):
|
|
|
|
|
opt['netallow'] = ''
|
|
|
|
|
# Сервисы для которых не будет задаваться вопрос о доступных сетях
|
|
|
|
|
# при включенной опции netallow
|
|
|
|
|
noInputAllowNetServices = []
|
|
|
|
|
if "samba" in replServices:
|
|
|
|
|
noInputAllowNetServices = ["samba"]
|
|
|
|
|
if not self.updateServer(opt, "all", False, noInputAllowNetServices):
|
|
|
|
|
return False
|
|
|
|
|
self.printOK(_("Rebuilding all services") + " ...")
|
|
|
|
|
return True
|
|
|
|
@ -5259,7 +5278,8 @@ outdated. If the backup is obsolete, use cl-backup."))
|
|
|
|
|
"""Перегенерирует конфигурационные файлы, и базу данных LDAP"""
|
|
|
|
|
return self.rebuildServer(options)
|
|
|
|
|
|
|
|
|
|
def updateServer(self, options, serviceUpdate, clVars=False):
|
|
|
|
|
def updateServer(self, options, serviceUpdate, clVars=False,
|
|
|
|
|
noInputAllowNetServices=[]):
|
|
|
|
|
"""Перегенерируем конфигурационные файлы
|
|
|
|
|
|
|
|
|
|
определенного или всех сервисов
|
|
|
|
@ -5341,25 +5361,34 @@ outdated. If the backup is obsolete, use cl-backup."))
|
|
|
|
|
for service in servInstalled:
|
|
|
|
|
if service == "ldap":
|
|
|
|
|
continue
|
|
|
|
|
# Добавляем файл в директорию share в случае репликации
|
|
|
|
|
# сервиса Samba
|
|
|
|
|
sharePath = self.clVars.Get("sr_samba_share_path")
|
|
|
|
|
# если нет share то создадим
|
|
|
|
|
if not os.path.exists(sharePath):
|
|
|
|
|
os.makedirs(sharePath)
|
|
|
|
|
# Создадим иконку для share
|
|
|
|
|
fileTxt = "[Desktop Entry]\nIcon=folder-bookmarks"
|
|
|
|
|
fileDirectory = os.path.join(sharePath,".directory")
|
|
|
|
|
if not os.path.exists(fileDirectory):
|
|
|
|
|
uid = 0
|
|
|
|
|
gid = 0
|
|
|
|
|
if not self.createUserFile(fileDirectory, fileTxt, uid,
|
|
|
|
|
gid):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Файл для определения к какому из серверов подключился клиент
|
|
|
|
|
fileReplRun = os.path.join(sharePath,".reprun")
|
|
|
|
|
if service == "samba":
|
|
|
|
|
# Получаем от пользователя доверительные сети
|
|
|
|
|
# для сервиса Samba
|
|
|
|
|
if options.has_key("netallow") and\
|
|
|
|
|
not service in noInputAllowNetServices:
|
|
|
|
|
self.servSambaObj.clVars = self.clVars
|
|
|
|
|
if not self.servSambaObj.getAllowNet():
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Добавляем файл в директорию share в случае репликации
|
|
|
|
|
# сервиса Samba
|
|
|
|
|
sharePath = self.clVars.Get("sr_samba_share_path")
|
|
|
|
|
# Файл для определения к какому из серверов
|
|
|
|
|
# подключился клиент
|
|
|
|
|
fileReplRun = os.path.join(sharePath,".reprun")
|
|
|
|
|
# если нет share то создадим
|
|
|
|
|
if not os.path.exists(sharePath):
|
|
|
|
|
os.makedirs(sharePath)
|
|
|
|
|
# Создадим иконку для share
|
|
|
|
|
fileTxt = "[Desktop Entry]\nIcon=folder-bookmarks"
|
|
|
|
|
fileDirectory = os.path.join(sharePath,".directory")
|
|
|
|
|
if not os.path.exists(fileDirectory):
|
|
|
|
|
uid = 0
|
|
|
|
|
gid = 0
|
|
|
|
|
if not self.createUserFile(fileDirectory, fileTxt, uid,
|
|
|
|
|
gid):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
if self.clVars.Get("ld_repl_samba_set") == "on":
|
|
|
|
|
if not os.path.exists(fileReplRun):
|
|
|
|
|
# Создаем файл
|
|
|
|
@ -5373,6 +5402,15 @@ it was added by the calculate-server")
|
|
|
|
|
else:
|
|
|
|
|
if os.path.exists(fileReplRun):
|
|
|
|
|
os.remove(fileReplRun)
|
|
|
|
|
if service == "mail":
|
|
|
|
|
# Получаем от пользователя доверительные сети
|
|
|
|
|
# для сервиса Mail
|
|
|
|
|
if options.has_key("netallow") and\
|
|
|
|
|
not service in noInputAllowNetServices:
|
|
|
|
|
self.servMailObj.clVars = self.clVars
|
|
|
|
|
if not self.servMailObj.getAllowNet():
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
if not flagError:
|
|
|
|
|
files = self.applyProfilesFromService(service, verbose)
|
|
|
|
|
if not files:
|
|
|
|
@ -5436,12 +5474,20 @@ it was added by the calculate-server")
|
|
|
|
|
self.clVars.Write("sr_mail_crypt",
|
|
|
|
|
self.clVars.Get("sr_mail_crypt"),
|
|
|
|
|
True,"local")
|
|
|
|
|
self.clVars.Write("sr_mail_net_allow",
|
|
|
|
|
self.clVars.Get("sr_mail_net_allow"),
|
|
|
|
|
True,"local")
|
|
|
|
|
#запишем переменные для клиента
|
|
|
|
|
if self.clVars.Get("sr_mail_type") == "all":
|
|
|
|
|
self.clVars.Set("sr_mail_type","imap")
|
|
|
|
|
clientVars = ["sr_mail_type", "sr_mail_crypt"]
|
|
|
|
|
if not self.saveVarsClient(clientVars):
|
|
|
|
|
return False
|
|
|
|
|
# Переменные для Samba
|
|
|
|
|
if "samba" in servInstalled and serviceUpdate in ["all","samba"]:
|
|
|
|
|
self.clVars.Write("sr_samba_net_allow",
|
|
|
|
|
self.clVars.Get("sr_samba_net_allow"),
|
|
|
|
|
True,"local")
|
|
|
|
|
if flagError:
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
@ -6836,6 +6882,11 @@ the password will be changed only for Samba account")
|
|
|
|
|
'helpChapter':_("Samba service options"),
|
|
|
|
|
'help':_("netbios name, default hostname")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(6,),
|
|
|
|
|
'longOption':"netallow",
|
|
|
|
|
'helpChapter':_("Samba service options"),
|
|
|
|
|
'help':_("enter the allowed ip addresses and network")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(6,),
|
|
|
|
|
'shortOption':"w",
|
|
|
|
|
'optVal':"WORKGROUP",
|
|
|
|
@ -6849,6 +6900,11 @@ the password will be changed only for Samba account")
|
|
|
|
|
'helpChapter':_("Mail service options"),
|
|
|
|
|
'help':_("mail host, default - hostname")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(6,),
|
|
|
|
|
'longOption':"netallow",
|
|
|
|
|
'helpChapter':_("Mail service options"),
|
|
|
|
|
'help':_("enter the allowed ip addresses and network")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(6,),
|
|
|
|
|
'shortOption':"t",
|
|
|
|
|
'optVal':"TYPE",
|
|
|
|
@ -6973,12 +7029,28 @@ the password will be changed only for Samba account")
|
|
|
|
|
'helpChapter':_("Mail service options"),
|
|
|
|
|
'help':_("encryption type - 'none', 'tls'")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(9,),
|
|
|
|
|
'longOption':"netallow",
|
|
|
|
|
'helpChapter':_("Mail service options"),
|
|
|
|
|
'help':_("enter the allowed ip addresses and network")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(9,),
|
|
|
|
|
'longOption':"netallow",
|
|
|
|
|
'helpChapter':_("Samba service options"),
|
|
|
|
|
'help':_("enter the allowed ip addresses and network")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(9,10),
|
|
|
|
|
'shortOption':"v",
|
|
|
|
|
'longOption':"verbose",
|
|
|
|
|
'helpChapter':_("Common options"),
|
|
|
|
|
'help':_("display additional information")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(10,),
|
|
|
|
|
'longOption':"netallow",
|
|
|
|
|
'helpChapter':_("Common options"),
|
|
|
|
|
'help':_("enter the allowed ip addresses and network\
|
|
|
|
|
for installed services")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(10,),
|
|
|
|
|
'longOption':"repl",
|
|
|
|
|
'helpChapter':_("Common options"),
|
|
|
|
|