Add clean user password in the keys kernel when a user logs out of X session

master
Самоукин Алексей 14 years ago
parent 59d916b544
commit fd23d370f4

@ -45,3 +45,12 @@ char* getKey(char *login)
};
return buffer;
};
int clearKey(char *login)
{
char *buffer;
buffer = "XXXXXXXX";
key_serial_t dest;
dest = KEY_SPEC_USER_SESSION_KEYRING;
return add_key("user", login, buffer, strlen(buffer), dest);
};

@ -2,5 +2,6 @@
%inline %{
/* Put header files here or function declarations like below */
extern char* getKey(char*);
extern int clearKey(char*);
%}
%include cl_keys.c

@ -533,7 +533,6 @@ conjunction with the 'login' or 'logout'")
def errorExit(self):
"""Отмонтирование пользовательских ресурсов при ошибке"""
# TODO: добавить удаление приватных файлов
if self.errorAndUnmountUserRes and self.userName:
self.umountUserResNoSync(self.userName, False, False, False, True)
@ -1547,6 +1546,19 @@ or ld_bind_dn or ld_bind_pw")
return False
return True
def clearUserKey(self, userName):
"""Очищает пользовательский ключ ядра"""
# Ищем ключ в ядре
if _cl_keys.getKey(userName):
# Если нашли очищаем
if _cl_keys.clearKey(userName) == 0:
return True
else:
self.printERROR(_("Can not clear kernel key from user %s")\
%userName)
return False
return True
def umountUserRes(self, userName,progress=False):
"""Отмонтирование пользовательских ресурсов и синхронизация настроек"""
# Имя пользователя
@ -1665,6 +1677,8 @@ or ld_bind_dn or ld_bind_pw")
except:
# Удаляем приватные файлы
self.removePrivateFiles(homeDir)
# Очищаем ключ в ядре
self.clearUserKey(userName)
# Отмонтируем пользовательские ресурсы в случае ошибки
self.errorAndUnmountUserRes = True
return False
@ -1672,11 +1686,15 @@ or ld_bind_dn or ld_bind_pw")
if needSync and not self.syncUser(userName,homeDir,"logout",uid,gid):
# Удаляем приватные файлы
self.removePrivateFiles(homeDir)
# Очищаем ключ в ядре
self.clearUserKey(userName)
# Отмонтируем пользовательские ресурсы в случае ошибки
self.errorAndUnmountUserRes = True
return False
# Удаляем приватные файлы
self.removePrivateFiles(homeDir)
# Очищаем ключ в ядре
self.clearUserKey(userName)
flagError = False
for path, res in pathRemote:
if self.isMount(path ,"cifs"):

Loading…
Cancel
Save