From f817933bdb304f1c6c4e37d253b23123ce0882a0 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 25 Dec 2023 09:30:48 +0600 Subject: [PATCH] Added algorythm to block shell paths and hash alogythms from loading --- Makefile | 2 ++ source/ubl-settings-usergroups.c | 29 ++++++++++++++++++- source/ubl-settings-usergroups.h | 3 ++ ...tings-usergroups-additional-settings.glade | 16 ---------- ubl-settings-usergroups-user.glade | 10 ------- 5 files changed, 33 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 435c5d1..7f11cb6 100644 --- a/Makefile +++ b/Makefile @@ -139,6 +139,8 @@ install: check uninstall @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.accept-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.cancel-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.profile-settings-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv" "csv/hash_list.csv" + @install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv" "csv/shell_list.csv" @install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy" @if [ -z ${DESTDIR} ]; then \ [ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \ diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index eaea778..6cf9eb5 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -265,7 +265,19 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_ window->AcceptButton=yon_gtk_builder_get_widget(builder,"AcceptButton"); gtk_window_set_title(GTK_WINDOW(window->Window),ADDITIONAL_SETTINGS_TITLE_LABEL); - + int hash_size=0; + config_str hash_algos = yon_file_open(hash_list_path,&hash_size); + for (int i=1;iPasswordHashCombo),parsed[0]); + yon_char_parsed_free(parsed,parsed_size); + } + } + yon_char_parsed_free(hash_algos,hash_size); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->PasswordHashCombo),0); char *default_user = yon_config_get_by_key("DEFAULTUSER"); if (!yon_char_is_empty(default_user)) gtk_entry_set_text(GTK_ENTRY(window->DefaultUserNameEntry),default_user); @@ -986,6 +998,21 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ window->UserCancelButton=yon_gtk_builder_get_widget(builder,"UserCancelButton"); window->UserOkButton=yon_gtk_builder_get_widget(builder,"UserOkButton"); gtk_window_set_title(GTK_WINDOW(window->CreateUserWindow),USER_TITLE_LABEL); + + int shell_size=0; + config_str shells = yon_file_open(shell_list_path,&shell_size); + for (int i=1;iuserShellCombo),parsed[0]); + yon_char_parsed_free(parsed,parsed_size); + } + } + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->userShellCombo),SET_LABEL); + yon_char_parsed_free(shells,shell_size); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->userShellCombo),0); window->old_password=NULL; dictionary *entry_dict = NULL; yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"combo",window->userPasswordCombo); diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index 7388a40..f135231 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -43,6 +43,9 @@ #define uid_path "/etc/login.defs" #define password_limits_path "/etc/security/pwquiality.conf" +#define hash_list_path "/usr/share/ubl-settings-usergroups/csv/hash_list.csv" +#define shell_list_path "/usr/share/ubl-settings-usergroups/csv/shell_list.csv" + #define USERADD(user) yon_char_unite("USERADD[",user,"]",NULL) #define GROUPADD(group) yon_char_unite("GROUPADD[",group,"]",NULL) #define USERSHADOW(user) yon_char_unite("USERSHADOW[",user,"]",NULL) diff --git a/ubl-settings-usergroups-additional-settings.glade b/ubl-settings-usergroups-additional-settings.glade index a3291f4..2c2efb9 100644 --- a/ubl-settings-usergroups-additional-settings.glade +++ b/ubl-settings-usergroups-additional-settings.glade @@ -309,22 +309,6 @@ True False 0 - - md5 - yescrypt - ghost-yescrypt - scrypt - bf - bcrypt - bcrypt-a - sha512crypt - sha256crypt - sunmd5 - md5crypt - bsdicrypt - desctrypt - nt - True diff --git a/ubl-settings-usergroups-user.glade b/ubl-settings-usergroups-user.glade index d816604..2abfe8e 100644 --- a/ubl-settings-usergroups-user.glade +++ b/ubl-settings-usergroups-user.glade @@ -754,16 +754,6 @@ 0 Default - /bin/bash - /bin/sh - /bin/ksh - /bin/csh - /bin/tcsh - /bin/dash - /usr/bin/nologin - /usr/bin/git-shell - /usr/bin/zsh - Set