|
|
|
@ -334,75 +334,82 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon, prnServ):
|
|
|
|
|
# Базовый DN LDAP сервера
|
|
|
|
|
self.baseDN = False
|
|
|
|
|
# Статические группы
|
|
|
|
|
self.staticGroups = {\
|
|
|
|
|
'client':self.addInfoGroup('client',
|
|
|
|
|
'900',
|
|
|
|
|
'Client group',
|
|
|
|
|
'2801',
|
|
|
|
|
'2'),
|
|
|
|
|
'Domain Admins':self.addInfoGroup('Domain Admins',
|
|
|
|
|
'512',
|
|
|
|
|
'Domain Administrators',
|
|
|
|
|
'512',
|
|
|
|
|
'2'),
|
|
|
|
|
'Domain Users':self.addInfoGroup('Domain Users',
|
|
|
|
|
'513',
|
|
|
|
|
'Domain Users',
|
|
|
|
|
'513',
|
|
|
|
|
'2'),
|
|
|
|
|
'Domain Guests':self.addInfoGroup('Domain Guests',
|
|
|
|
|
'514',
|
|
|
|
|
'Domain Guests Users',
|
|
|
|
|
'514',
|
|
|
|
|
'2'),
|
|
|
|
|
'Domain Computers':self.addInfoGroup('Domain Computers',
|
|
|
|
|
'515',
|
|
|
|
|
'Domain Computers accounts',
|
|
|
|
|
'515',
|
|
|
|
|
'2'),
|
|
|
|
|
'Administrators':self.addInfoGroup('Administrators',
|
|
|
|
|
'544',
|
|
|
|
|
'Domain Members can fully \
|
|
|
|
|
administer the computer/sambaDomainName',
|
|
|
|
|
'544',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-544"),
|
|
|
|
|
'Account Operators':self.addInfoGroup('Account Operators',
|
|
|
|
|
'548',
|
|
|
|
|
'Domain Users to manipulate \
|
|
|
|
|
users accounts',
|
|
|
|
|
'548',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-548"),
|
|
|
|
|
'System Operators':self.addInfoGroup('System Operators',
|
|
|
|
|
'549',
|
|
|
|
|
'Domain System Operators',
|
|
|
|
|
'549',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-549"),
|
|
|
|
|
'Print Operators':self.addInfoGroup('Print Operators',
|
|
|
|
|
'550',
|
|
|
|
|
'Domain Print Operators',
|
|
|
|
|
'550',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-550"),
|
|
|
|
|
'Backup Operators':self.addInfoGroup('Backup Operators',
|
|
|
|
|
'551',
|
|
|
|
|
'Domain Members can bypass \
|
|
|
|
|
file security to back up files',
|
|
|
|
|
'551',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-551"),
|
|
|
|
|
'Replicators':self.addInfoGroup('Replicators',
|
|
|
|
|
'552',
|
|
|
|
|
'Domain Supports file replication \
|
|
|
|
|
in a sambaDomainName',
|
|
|
|
|
'552',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-552"),
|
|
|
|
|
self.staticGroups = {
|
|
|
|
|
'client':self.addInfoGroup(
|
|
|
|
|
'client',
|
|
|
|
|
'900',
|
|
|
|
|
'Client group',
|
|
|
|
|
'2801',
|
|
|
|
|
'2'),
|
|
|
|
|
'Domain Admins':self.addInfoGroup(
|
|
|
|
|
'Domain Admins',
|
|
|
|
|
'512',
|
|
|
|
|
'Domain Administrators',
|
|
|
|
|
'512',
|
|
|
|
|
'2'),
|
|
|
|
|
'Domain Users':self.addInfoGroup(
|
|
|
|
|
'Domain Users',
|
|
|
|
|
'513',
|
|
|
|
|
'Domain Users',
|
|
|
|
|
'513',
|
|
|
|
|
'2'),
|
|
|
|
|
'Domain Guests':self.addInfoGroup(
|
|
|
|
|
'Domain Guests',
|
|
|
|
|
'514',
|
|
|
|
|
'Domain Guests Users',
|
|
|
|
|
'514',
|
|
|
|
|
'2'),
|
|
|
|
|
'Domain Computers':self.addInfoGroup(
|
|
|
|
|
'Domain Computers',
|
|
|
|
|
'515',
|
|
|
|
|
'Domain Computers accounts',
|
|
|
|
|
'515',
|
|
|
|
|
'2'),
|
|
|
|
|
'Administrators':self.addInfoGroup(
|
|
|
|
|
'Administrators',
|
|
|
|
|
'544',
|
|
|
|
|
'Domain Members can fully administer the computer/sambaDomainName',
|
|
|
|
|
'544',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-544"),
|
|
|
|
|
'Account Operators':self.addInfoGroup(
|
|
|
|
|
'Account Operators',
|
|
|
|
|
'548',
|
|
|
|
|
'Domain Users to manipulate users accounts',
|
|
|
|
|
'548',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-548"),
|
|
|
|
|
'System Operators':self.addInfoGroup(
|
|
|
|
|
'System Operators',
|
|
|
|
|
'549',
|
|
|
|
|
'Domain System Operators',
|
|
|
|
|
'549',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-549"),
|
|
|
|
|
'Print Operators':self.addInfoGroup(
|
|
|
|
|
'Print Operators',
|
|
|
|
|
'550',
|
|
|
|
|
'Domain Print Operators',
|
|
|
|
|
'550',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-550"),
|
|
|
|
|
'Backup Operators':self.addInfoGroup(
|
|
|
|
|
'Backup Operators',
|
|
|
|
|
'551',
|
|
|
|
|
'Domain Members can bypass file security to back up files',
|
|
|
|
|
'551',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-551"),
|
|
|
|
|
'Replicators':self.addInfoGroup(
|
|
|
|
|
'Replicators',
|
|
|
|
|
'552',
|
|
|
|
|
'Domain Supports file replication in a sambaDomainName',
|
|
|
|
|
'552',
|
|
|
|
|
'5',
|
|
|
|
|
"S-1-5-32-552"),
|
|
|
|
|
}
|
|
|
|
|
# Статические пользователи
|
|
|
|
|
self.staticUsers = {\
|
|
|
|
|
self.staticUsers = {
|
|
|
|
|
'client':self.addInfoUser('client',
|
|
|
|
|
'900',
|
|
|
|
|
'900',
|
|
|
|
@ -11392,7 +11399,7 @@ service")
|
|
|
|
|
{
|
|
|
|
|
'progAccess':(2,),
|
|
|
|
|
'helpChapter':_("Examples"),
|
|
|
|
|
'help':pcs( " cl-groupmod -a guest test unix", self.column_width,
|
|
|
|
|
'help':pcs( " cl-groupmod -a test guest unix", self.column_width,
|
|
|
|
|
"# " + _("add user test to group guest in Unix service"),
|
|
|
|
|
self.consolewidth-self.column_width )
|
|
|
|
|
},
|
|
|
|
@ -14959,8 +14966,8 @@ with another option."))
|
|
|
|
|
ldapValue = info[0][1][attr]
|
|
|
|
|
# Изменяем значения аттрибутов для вывода на печать
|
|
|
|
|
#modUserAttr already decodes
|
|
|
|
|
ldapValue[0] = self.modUserAttr(attr, ldapValue[0],
|
|
|
|
|
service)
|
|
|
|
|
ldapValue = [self.modUserAttr(attr, x, service) for x
|
|
|
|
|
in ldapValue]
|
|
|
|
|
flagFirst = False
|
|
|
|
|
for value in ldapValue:
|
|
|
|
|
if not flagFirst:
|
|
|
|
@ -15030,7 +15037,7 @@ with another option."))
|
|
|
|
|
memberUid = searchRes[0][0][1]['memberUid']
|
|
|
|
|
groupId = searchRes[0][0][1]['gidNumber'][0].decode("UTF-8")
|
|
|
|
|
primaryUids = self.getUnixUidPrimGroup(groupId)
|
|
|
|
|
memberUid = [x for x in primaryUids] + [x.encode("UTF-8") for x in memberUid]
|
|
|
|
|
memberUid = [x for x in primaryUids] + [x.decode("UTF-8") for x in memberUid]
|
|
|
|
|
uniqueUid = []
|
|
|
|
|
# Удаляем одинаковые элементы
|
|
|
|
|
for uid in memberUid:
|
|
|
|
@ -15043,7 +15050,7 @@ with another option."))
|
|
|
|
|
attr = retrAttrs[i]
|
|
|
|
|
attrName = attributes[i]
|
|
|
|
|
if attr in info[0][1]:
|
|
|
|
|
ldapValue = info[0][1][attr].decode("UTF-8")
|
|
|
|
|
ldapValue = info[0][1][attr]
|
|
|
|
|
# Изменяем значения аттрибутов для вывода на печать
|
|
|
|
|
for i in range(len(ldapValue)):
|
|
|
|
|
ldapValue[i] = self.modGroupAttr(attr, ldapValue[i],
|
|
|
|
@ -15149,7 +15156,7 @@ with another option."))
|
|
|
|
|
if attr in info[0][1]:
|
|
|
|
|
ldapValue = info[0][1][attr]
|
|
|
|
|
# Изменяем значения аттрибутов для вывода на печать
|
|
|
|
|
ldapValue[0] = self.modUserAttr(attr, ldapValue[0], service)
|
|
|
|
|
ldapValue = [self.modUserAttr(attr, x, service) for x in ldapValue]
|
|
|
|
|
flagFirst = False
|
|
|
|
|
for value in ldapValue:
|
|
|
|
|
if not flagFirst:
|
|
|
|
@ -15219,8 +15226,7 @@ with another option."))
|
|
|
|
|
for attr in retrAttrs:
|
|
|
|
|
if attr in info[0][1]:
|
|
|
|
|
ldapValue = info[0][1][attr]
|
|
|
|
|
ldapValue[0] = self.modUserAttr(attr, ldapValue[0],
|
|
|
|
|
service)
|
|
|
|
|
ldapValue = [self.modUserAttr(attr, x, service) for x in ldapValue]
|
|
|
|
|
# Если несколько значений то разделяем их запятыми
|
|
|
|
|
value = reduce(lambda x,y: ",".join([x,y])[0] == "," and\
|
|
|
|
|
",".join([x,y])[1:] or ",".join([x,y])[1:]\
|
|
|
|
@ -15276,7 +15282,7 @@ with another option."))
|
|
|
|
|
if attr in info[0][1]:
|
|
|
|
|
ldapValue = info[0][1][attr]
|
|
|
|
|
# Изменяем значения аттрибутов для вывода на печать
|
|
|
|
|
ldapValue[0] = self.modGroupAttr(attr,ldapValue[0],service)
|
|
|
|
|
ldapValue = [self.modGroupAttr(attr, x, service) for x in ldapValue]
|
|
|
|
|
#Если несколько значений то разделяем их запятыми
|
|
|
|
|
value = reduce(lambda x,y: ",".join([x,y])[0] == "," and\
|
|
|
|
|
",".join([x,y])[1:] or ",".join([x,y])[1:]\
|
|
|
|
@ -15453,7 +15459,7 @@ with another option."))
|
|
|
|
|
if attr in info[0][1]:
|
|
|
|
|
ldapValue = info[0][1][attr]
|
|
|
|
|
# Изменяем значения аттрибутов для вывода на печать
|
|
|
|
|
ldapValue[0] = self.modUserAttr(attr, ldapValue[0], service)
|
|
|
|
|
ldapValue = [self.modUserAttr(attr, x, service) for x in ldapValue]
|
|
|
|
|
# Если несколько значений то разделяем их запятыми
|
|
|
|
|
value = reduce(lambda x,y: ",".join([x,y])[0] == "," and\
|
|
|
|
|
",".join([x,y])[1:] or ",".join([x,y])[1:]\
|
|
|
|
|