| Lines 43-48
          
      
      
        Link Here | 
        
          | 43 | from samba.idmap import IDmapDB | 43 | from samba.idmap import IDmapDB | 
        
          | 44 | from samba.auth import system_session | 44 | from samba.auth import system_session | 
        
          | 45 | from samba.param import LoadParm | 45 | from samba.param import LoadParm | 
            
              |  |  | 46 | from samba.provision import setup_idmapdb | 
        
          | 46 |  | 47 |  | 
        
          | 47 | name = 'samba4-idmap' | 48 | name = 'samba4-idmap' | 
        
          | 48 | description = 'Update local IDmap entries' | 49 | description = 'Update local IDmap entries' | 
  
    | Lines 94-112
          
      
      
        Link Here | 
        
          | 94 |  | 95 |  | 
        
          | 95 | __SPECIAL_SIDS = set(__SPECIAL_ACCOUNT_SIDS.values()) | 96 | __SPECIAL_SIDS = set(__SPECIAL_ACCOUNT_SIDS.values()) | 
        
          | 96 |  | 97 |  | 
            
              |  |  | 98 | __IDMAP = None | 
            
              | 99 |  | 
        
          | 97 |  | 100 |  | 
        
          | 98 | def open_idmap(): | 101 | def open_idmap(): | 
            
              |  |  | 102 | 	if __IDMAP: | 
            
              | 103 | 		return __IDMAP | 
            
              | 104 |  | 
        
          | 99 | 	global lp | 105 | 	global lp | 
            
              |  |  | 106 |  | 
            
              | 107 | 	idmap_ldb = '/var/lib/samba/private/idmap.ldb' | 
        
          | 100 | 	listener.setuid(0) | 108 | 	listener.setuid(0) | 
        
          | 101 | 	try: | 109 | 	try: | 
          
            
              | 102 | 		idmap = IDmapDB('/var/lib/samba/private/idmap.ldb', session_info=system_session(), lp=lp) | 110 | 		if not os.path.exists(idmap_ldb): | 
            
              |  |  | 111 | 			setup_idmapdb(idmap_ldb, session_info=system_session(), lp=lp) | 
            
              | 112 | 		__IDMAP = IDmapDB(idmap_ldb, session_info=system_session(), lp=lp) | 
        
          | 103 | 	except ldb.LdbError: | 113 | 	except ldb.LdbError: | 
        
          | 104 | 		univention.debug.debug(univention.debug.LISTENER, univention.debug.ERROR, "%s: /var/lib/samba/private/idmap.ldb could not be opened" % name) | 114 | 		univention.debug.debug(univention.debug.LISTENER, univention.debug.ERROR, "%s: /var/lib/samba/private/idmap.ldb could not be opened" % name) | 
        
          | 105 | 		raise | 115 | 		raise | 
        
          | 106 | 	finally: | 116 | 	finally: | 
        
          | 107 | 		listener.unsetuid() | 117 | 		listener.unsetuid() | 
        
          | 108 |  | 118 |  | 
          
            
              | 109 | 	return idmap | 119 | 	return __IDMAP | 
        
          | 110 |  | 120 |  | 
        
          | 111 |  | 121 |  | 
        
          | 112 | def rename_or_modify_idmap_entry(old_sambaSID, new_sambaSID, xidNumber, type_string, idmap=None): | 122 | def rename_or_modify_idmap_entry(old_sambaSID, new_sambaSID, xidNumber, type_string, idmap=None): | 
  
    | Lines 235-240
          
      
      
        Link Here | 
        
          | 235 | 			idmap_ldb_backup = '%s_%d' % (idmap_ldb, time.time()) | 245 | 			idmap_ldb_backup = '%s_%d' % (idmap_ldb, time.time()) | 
        
          | 236 | 			univention.debug.debug(univention.debug.LISTENER, univention.debug.PROCESS, 'Move %s to %s' % (idmap_ldb, idmap_ldb_backup)) | 246 | 			univention.debug.debug(univention.debug.LISTENER, univention.debug.PROCESS, 'Move %s to %s' % (idmap_ldb, idmap_ldb_backup)) | 
        
          | 237 | 			os.rename(idmap_ldb, idmap_ldb_backup) | 247 | 			os.rename(idmap_ldb, idmap_ldb_backup) | 
            
              |  |  | 248 | 			setup_idmapdb(idmap_ldb, session_info=system_session(), lp=lp) | 
        
          | 238 | 		finally: | 249 | 		finally: | 
        
          | 239 | 			listener.unsetuid() | 250 | 			listener.unsetuid() | 
        
          | 240 |  | 251 |  |