From 6026d26045adc0d7e7c3834c60e827ef63b80bc8 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 29 Dec 2023 17:54:15 +0600 Subject: [PATCH 1/3] Fixes and updates for user and group configuration windows --- source/ubl-settings-usergroups.c | 114 +++++++++++-------- ubl-settings-usergroups-group-creation.glade | 1 - ubl-settings-usergroups-user.glade | 1 - 3 files changed, 67 insertions(+), 49 deletions(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index e006eef..f6e5b9a 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -63,7 +63,6 @@ void yon_interface_update(main_window *widgets){ login = yon_char_divide_search(parameters[0],"=",-1); login[strlen(login)-1]='\0'; } - login[strlen(login)-2]='\0'; if (!strcmp(parameters[1],"x")) parameters[1]=AUTOMATICALLY_LABEL; gtk_list_store_set(widgets->GroupsList,&iter, 1,login, @@ -372,6 +371,36 @@ void on_user_choose(GtkWidget *self, GtkEntry *target){ gtk_widget_show(window->GroupsWindow); } +void on_GID_update(GtkWidget *self, ubl_settings_usergroups_group_creation_window *window){ + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){ + int config_size=0; + int final_size=0; + config_str config_groups = yon_config_get_all_by_key("GROUPADD",&config_size); + yon_char_parsed_prepend_strings(config_groups,config_size,":"); + config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_groups,config_size,&final_size); + long prev_busy=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?0:main_config.MINGID; + for (int i=0;i=main_config.MINGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))){ + if (atol(parsed[2])>main_config.MAXGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))) + break; + if (atol(parsed[2])==prev_busy+1) + prev_busy=atol(parsed[2]); + else { + yon_char_parsed_free(parsed, parsed_size); + break; + } + } + yon_char_parsed_free(parsed, parsed_size); + } + gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1)); + } else { + gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),""); + } +} + void on_group_save(GtkWidget *self, dictionary *dict){ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); ubl_settings_usergroups_group_creation_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_group_creation_window*); @@ -456,29 +485,7 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),GROUPS_TITLE_LABEL); - int config_size=0; - int final_size=0; - config_str config_groups = yon_config_get_all_by_key("GROUPADD",&config_size); - yon_char_parsed_prepend_strings(config_groups,config_size,":"); - config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_groups,config_size,&final_size); - long prev_busy=main_config.MINUID; - for (int i=0;i=main_config.MINUID){ - if (atol(parsed[2])>main_config.MAXUID) - break; - if (atol(parsed[2])==prev_busy+1) - prev_busy=atol(parsed[2]); - else { - yon_char_parsed_free(parsed, parsed_size); - break; - } - } - yon_char_parsed_free(parsed, parsed_size); - } - gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1)); + on_GID_update(NULL,window); dictionary *entry_dict=NULL; yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"combo",window->PasswordCombo); yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"entry",window->PasswordEntry); @@ -488,6 +495,8 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group g_signal_connect(G_OBJECT(window->PasswordCombo),"changed",G_CALLBACK(on_password_combo_changed),window->ChangePasswordButton); g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->UserAdditionalGroupsButton),"clicked",G_CALLBACK(on_user_choose),window->userGroupsEntry); + g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(on_GID_update),window); + g_signal_connect(G_OBJECT(window->SystemGroupCheck),"toggled",G_CALLBACK(on_GID_update),window); return window; } @@ -806,6 +815,36 @@ void on_user_shell_changed(GtkWidget *self, ubl_settings_usergroups_user_window } } +void on_UID_update(GtkWidget *self, ubl_settings_usergroups_user_window *window){ + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){ + int config_size=0; + int final_size=0; + config_str config_users = yon_config_get_all_by_key("USERADD",&config_size); + yon_char_parsed_prepend_strings(config_users,config_size,":"); + config_str final = yon_char_parsed_merge(main_config.users,main_config.users_size,config_users,config_size,&final_size); + long prev_busy=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))?0:main_config.MINGID; + for (int i=0;i=main_config.MINUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))){ + if (atol(parsed[2])>main_config.MAXUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))) + break; + if (atol(parsed[2])==prev_busy+1) + prev_busy=atol(parsed[2]); + else { + yon_char_parsed_free(parsed, parsed_size); + break; + } + } + yon_char_parsed_free(parsed, parsed_size); + } + gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1)); + } else { + gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),""); + } +} + void on_user_save(GtkWidget *self, dictionary *dict){ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); ubl_settings_usergroups_user_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_user_window*); @@ -1080,29 +1119,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ window->UsershadowShutdownCheck=yon_gtk_builder_get_widget(builder,"UsershadowShutdownCheck"); window->userTitleNameLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel"); - int config_size=0; - int final_size=0; - config_str config_users = yon_config_get_all_by_key("USERADD",&config_size); - yon_char_parsed_prepend_strings(config_users,config_size,":"); - config_str final = yon_char_parsed_merge(main_config.users,main_config.users_size,config_users,config_size,&final_size); - long prev_busy=main_config.MINUID; - for (int i=0;i=main_config.MINUID){ - if (atol(parsed[2])>main_config.MAXUID) - break; - if (atol(parsed[2])==prev_busy+1) - prev_busy=atol(parsed[2]); - else { - yon_char_parsed_free(parsed, parsed_size); - break; - } - } - yon_char_parsed_free(parsed, parsed_size); - } - gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1)); + on_UID_update(NULL,window); int shell_size=0; config_str shells = yon_file_open(shell_list_path,&shell_size); for (int i=1;iuserGroupsCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UserGroupsButton); g_signal_connect(G_OBJECT(window->userShellCombo),"changed",G_CALLBACK(on_user_shell_changed),window); g_signal_connect(G_OBJECT(window->ExpirationCalendar),"day-selected",G_CALLBACK(on_date_selected),window); + g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(on_UID_update),window); + g_signal_connect(G_OBJECT(window->userCreateSystemCheck),"toggled",G_CALLBACK(on_UID_update),window); return window; } @@ -1279,6 +1298,7 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ } free(usershadow_sync); } + } } else { model = GTK_TREE_MODEL(widgets->GroupsList); diff --git a/ubl-settings-usergroups-group-creation.glade b/ubl-settings-usergroups-group-creation.glade index eaa557b..97449bd 100644 --- a/ubl-settings-usergroups-group-creation.glade +++ b/ubl-settings-usergroups-group-creation.glade @@ -96,7 +96,6 @@ True False True - 1007 number diff --git a/ubl-settings-usergroups-user.glade b/ubl-settings-usergroups-user.glade index 8fc3cbf..4d536b4 100644 --- a/ubl-settings-usergroups-user.glade +++ b/ubl-settings-usergroups-user.glade @@ -144,7 +144,6 @@ False True 5 - 1001 number -- 2.35.1 From 01640434a6a20ed5ae2c0411b83cb3d47a062ffd Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 29 Dec 2023 18:04:30 +0600 Subject: [PATCH 2/3] Login at main group when 'Login name' checked --- source/ubl-settings-usergroups.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index f6e5b9a..c72c4e1 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -845,6 +845,14 @@ void on_UID_update(GtkWidget *self, ubl_settings_usergroups_user_window *window) } } +void on_user_login_update(GtkWidget *self, ubl_settings_usergroups_user_window *window){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck))){ + gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry),gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry))); + } else { + gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry),""); + } +} + void on_user_save(GtkWidget *self, dictionary *dict){ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); ubl_settings_usergroups_user_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_user_window*); @@ -1156,6 +1164,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ g_signal_connect(G_OBJECT(window->ExpirationCalendar),"day-selected",G_CALLBACK(on_date_selected),window); g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(on_UID_update),window); g_signal_connect(G_OBJECT(window->userCreateSystemCheck),"toggled",G_CALLBACK(on_UID_update),window); + g_signal_connect(G_OBJECT(window->userGroupsCheck),"toggled",G_CALLBACK(on_user_login_update),window); return window; } @@ -1215,6 +1224,7 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ if (parameter_string[strlen(parameter_string)-1]=='\"') parameter_string[strlen(parameter_string)-1]='\0'; config_str parameters = yon_char_parse(parameter_string,&parsed_size,":"); gtk_entry_set_text(GTK_ENTRY(window->userLoginEntry), name); + gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), name); gtk_entry_set_text(GTK_ENTRY(window->userUserNameEntry), parsed_size>0?parameters[0]:""); if (parsed_size>1){ if (!strcmp(parameters[1],"x")) -- 2.35.1 From 710d9ff20bf9796b026d7960d28714914667a4fb Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 29 Dec 2023 18:15:56 +0600 Subject: [PATCH 3/3] Csvs update --- csv/hash_list.csv | 26 +++++++++++++------------- csv/shell_list.csv | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/csv/hash_list.csv b/csv/hash_list.csv index 7909c68..f44b95c 100644 --- a/csv/hash_list.csv +++ b/csv/hash_list.csv @@ -1,16 +1,16 @@ hash_algoritm;hash_description -des -md5 -yescrypt +des;DES (Алгоритм для симметричного шифрования) +md5;MD5 (128-битный алгоритм хеширования) +yescrypt;yescrypt (Криптографическая хэш-функция) gost-yescrypt;GOST-YESCRYPT (Конструкция согласно ГОСТ Р 34.11─2012) -scrypt -bf -bcrypt -bcrypt-a +scrypt;scrypt (Адаптивная криптографическая функция формирования ключа) +bf;Blowfish (Алгоритм блочного симметричного шифрования) +bcrypt;bcrypt (Адаптивная хеш-функция из семейства алгоритмов Blowfish) +bcrypt-a;Адаптивная хеш-функция из семейства алгоритмов Blowfish) sha512crypt;SHA512 (Хеш-функция из семейства алгоритмов SHA-2) -sha256crypt -!sunmd5 -md5crypt -!bsdicrypt -descrypt -!nt \ No newline at end of file +sha256crypt;SHA256 (Хеш-функция из семейства алгоритмов SHA-2) +!sunmd5;Sun MD5 (Хеш-алгоритм от Sun Microsystems) +md5crypt;MD5 Unix (Хэш-алгоритм вызывает тысячу раз стандартный MD5) +!bsdicrypt;Extended DES Crypt (Хеш-функция из семейства алгоритмов DES от BSDi) +descrypt;descrypt (Хеш-функция из семейства алгоритмов DES) +!nt;NTHash (Хеш-функция из семейства алгоритмов NT Windows) \ No newline at end of file diff --git a/csv/shell_list.csv b/csv/shell_list.csv index 5b334ac..5cb00f0 100644 --- a/csv/shell_list.csv +++ b/csv/shell_list.csv @@ -1,4 +1,4 @@ -shell +Shell /bin/bash /bin/sh /bin/ksh -- 2.35.1