diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 57983e3..3a863b0 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -76,6 +76,7 @@ void yon_interface_update(main_window *widgets){ if (parameters_size>2&&!strcmp(parameters[2],"x")) parameters[2]=login; char *pars = ""; if (parameters_size>5&&strcmp(parameters[5],"x")&&strcmp(parameters[5],"")){ + if (!check_is_password_hash(parameters[5])){ pars = ENCRYPTED_LABEL; } else { @@ -128,6 +129,14 @@ void yon_interface_update(main_window *widgets){ } } + if (main_config.groups_size>0){ + yon_char_parsed_free(main_config.groups,main_config.groups_size); + main_config.groups = yon_file_open(groups_path,&main_config.groups_size); + } + if (main_config.users_size>0){ + yon_char_parsed_free(main_config.users,main_config.users_size); + main_config.users = yon_file_open(users_path,&main_config.users_size); + } } void on_config_local_load(GtkWidget *self, main_window *widgets){ @@ -291,7 +300,7 @@ void on_config_global_save(){ } -void on_config_local_save(){ +void on_config_local_save(GtkWidget *self, main_window *widgets){ int size; config_str keys = yon_config_get_all_by_key("USERADD[",&size); int passw_size; @@ -304,7 +313,11 @@ void on_config_local_save(){ if (parsed_size>5&&!yon_char_is_empty(parsed[5])){ yon_char_parsed_add_or_create_if_exists(passwords,&passw_size,yon_char_new(parsed[5])); parsed = yon_char_parsed_rip(parsed,&parsed_size,5); - yon_config_set(key,yon_char_parsed_to_string(parsed,parsed_size,":")); + char *final_string = yon_char_parsed_to_string(parsed,parsed_size,":"); + char *temp = yon_char_append(final_string,":"); + free(final_string); + final_string=temp; + yon_config_set(key,final_string); } free(key); free(value); @@ -318,6 +331,7 @@ void on_config_local_save(){ yon_config_parse_parameter(keys[i],&key,&value); yon_config_set(key,value); } + yon_interface_update(widgets); } void on_saving_settings_save(GtkWidget *self, yon_savasettings_window *window){ @@ -643,8 +657,8 @@ void on_password_change(GtkWidget *self, dictionary *entry_dict){// dictionary *dict = NULL; char *password = (char*)gtk_entry_get_text(output_target); if (!yon_char_is_empty(password)){ - password = yon_char_new(password); if (main_config.load_mode==0){ + password = yon_char_new(password); if (!check_is_password_hash(password)){ gtk_entry_set_text(GTK_ENTRY(window->PasswordHashEntry),password); } else { @@ -819,8 +833,11 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_ yon_dictionary_add_or_create_if_exists_with_data(root_dict,"entry",window->RootPasswordEntry); g_signal_connect(G_OBJECT(window->DefaultPasswordButton),"clicked",G_CALLBACK(on_password_change),default_dict); g_signal_connect(G_OBJECT(window->RootPasswordButton),"clicked",G_CALLBACK(on_password_change),root_dict); - - g_signal_connect(G_OBJECT(window->EncryptAllPasswordsButton),"clicked",G_CALLBACK(on_passwords_encrypt),NULL); + dialog_confirmation_data *data=malloc(sizeof(dialog_confirmation_data)); + data->function=on_passwords_encrypt; + data->action_text = ENCRYPT_SURE_LABEL; + data->data=NULL; + g_signal_connect(G_OBJECT(window->EncryptAllPasswordsButton),"clicked",G_CALLBACK(yon_confirmation_dialog_call),data); g_signal_connect(G_OBJECT(window->PasswordHashCombo),"changed",G_CALLBACK(on_hash_changed),window); @@ -980,6 +997,30 @@ void on_group_save(GtkWidget *self, dictionary *dict){ on_subwindow_close(self); } +void on_system_parameter_changed(GtkWidget *self, ubl_settings_usergroups_group_creation_window *window){ + + char *non_unique = NULL; + char *gsystem = NULL; + + int non_unique_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UnuniqueGIDCheck)); + if(non_unique_active){ + non_unique="--non-unique"; + } else non_unique=""; + + int gsystem_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck)); + if(gsystem_active){ + gsystem="--system"; + } else gsystem=""; + + char *final_str = yon_char_unite( + yon_char_return_if_exist(non_unique,""), + !yon_char_is_empty(non_unique)?" ":"", + yon_char_return_if_exist(gsystem,"") + ); + gtk_entry_set_text(GTK_ENTRY(window->groupExtraOptionsEntry),final_str); + free(final_str); +} + ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group_creation_new(){ ubl_settings_usergroups_group_creation_window *window = malloc(sizeof(ubl_settings_usergroups_group_creation_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_group_creation); @@ -1002,6 +1043,7 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group window->AdminGroupsEntry=yon_gtk_builder_get_widget(builder,"AdminGroupsEntry"); window->AdminGroupsButton=yon_gtk_builder_get_widget(builder,"AdminGroupsButton"); window->GroupaddShutdownCheck=yon_gtk_builder_get_widget(builder,"GroupaddShutdownCheck"); + window->groupExtraOptionsEntry=yon_gtk_builder_get_widget(builder,"groupExtraOptionsEntry"); gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),GROUPS_TITLE_LABEL); @@ -1022,6 +1064,8 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->SystemGroupCheck); g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(yon_gtk_toggle_button_set_inactive_from_toggle_button_inversed),window->UnuniqueGIDCheck); g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UnuniqueGIDCheck); + g_signal_connect(G_OBJECT(window->UnuniqueGIDCheck),"toggled",G_CALLBACK(on_system_parameter_changed),window); + g_signal_connect(G_OBJECT(window->SystemGroupCheck),"toggled",G_CALLBACK(on_system_parameter_changed),window); return window; } @@ -1382,7 +1426,12 @@ void on_user_login_update(GtkWidget *self, ubl_settings_usergroups_user_window * 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),""); - } + } + if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->userHomeCombo))==0){ + char *homepath = yon_char_append("/home/",(char*)gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry))); + gtk_entry_set_text(GTK_ENTRY(window->userHomeEntry),homepath); + free(homepath); + } } void on_user_save(GtkWidget *self, dictionary *dict){ @@ -1394,6 +1443,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){ char *login = NULL; char *username = NULL; char *main_group = NULL; + char *no_user_group=NULL; char *additional_groups = NULL; char *password_changed_date = NULL; char *password_expiration_date = NULL; @@ -1468,9 +1518,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){ if (!main_group_active){ main_group = (char*)gtk_entry_get_text(GTK_ENTRY(window->userGroupsEntry)); if (yon_char_is_empty(main_group)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(window->userGroupsEntry); - return; + no_user_group="--no-user-group"; } } else { main_group = ""; @@ -1521,7 +1569,11 @@ void on_user_save(GtkWidget *self, dictionary *dict){ int user_home_active = gtk_combo_box_get_active(GTK_COMBO_BOX(window->userHomeCombo)); if (user_home_active==2){ - user_home=yon_char_unite(" --home-dir ",(char*)gtk_entry_get_text(GTK_ENTRY(window->userHomeEntry)),NULL); + user_home=yon_char_unite("--home-dir ",(char*)gtk_entry_get_text(GTK_ENTRY(window->userHomeEntry)),NULL); + } else if (user_home_active==0){ + user_home=yon_char_unite("--home-dir ",main_config.default_home,"/",login,NULL); + } else if (user_home_active==1){ + user_home="--no-create-home"; } else user_home = ""; int system_user_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck)); @@ -1595,12 +1647,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){ ":",yon_char_return_if_exist(uid_string,"x"), ":",yon_char_return_if_exist(main_group,"x"), ":",yon_char_return_if_exist(additional_groups,"x"), - ":",yon_char_return_if_exist(user_home,""), - yon_char_return_if_exist(user_shell,""), - yon_char_return_if_exist(create_system_user,""), - yon_char_return_if_exist(create_ununique,""), - yon_char_return_if_exist(do_not_check,""), - !yon_char_is_empty(extra_options)?extra_options:"", + !yon_char_is_empty(extra_options)?" ":"", yon_char_return_if_exist(extra_options,""), ":",yon_char_return_if_exist(password,""), NULL); @@ -1711,6 +1758,80 @@ void on_date_selected(GtkWidget *self, ubl_settings_usergroups_user_window *wind window->expiration_unix=date_string; } +void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *window){ + char *user_shell=NULL; + char *user_home=NULL; + char *login=NULL; + char *create_system_user=NULL; + char *create_ununique=NULL; + char *do_not_check=NULL; + char *main_group=NULL; + char *no_user_group=NULL; + + int do_not_check_actve = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userDontCheckCheck)); + if (do_not_check_actve) + do_not_check = " --badnames"; + + login = (char*)gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry)); + if (login[0]>'0'&&login[0]<'9'&&!do_not_check_actve){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),USER_BEGINS_WITH_DIGIT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->userLoginEntry); + return; + } + if (yon_char_is_empty(login)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->userLoginEntry); + return; + } + + int user_shell_active = gtk_combo_box_get_active(GTK_COMBO_BOX(window->userShellCombo)); + if (user_shell_active>0){ + user_shell = yon_char_unite(" --shell ",(char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->userShellCombo)),NULL); + if (!strcmp(user_shell,SET_LABEL)){ + user_shell = yon_char_unite(" --shell ",(char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->userShellCombo)),NULL); + } + } else user_shell=""; + + int user_home_active = gtk_combo_box_get_active(GTK_COMBO_BOX(window->userHomeCombo)); + if (user_home_active==2){ + user_home=yon_char_unite("--home-dir ",(char*)gtk_entry_get_text(GTK_ENTRY(window->userHomeEntry)),NULL); + } else if (user_home_active==0){ + user_home=yon_char_unite("--home-dir ",main_config.default_home,"/",login,NULL); + } else if (user_home_active==1){ + user_home="--no-create-home"; + } else user_home = ""; + + int system_user_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck)); + if (system_user_active) + create_system_user = " --system"; + + int create_ununique_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck)); + if (create_ununique_active) + create_ununique = " --non-unique"; + int main_group_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck)); + if (!main_group_active){ + main_group = (char*)gtk_entry_get_text(GTK_ENTRY(window->userGroupsEntry)); + if (yon_char_is_empty(main_group)){ + no_user_group="--no-user-group"; + } + } else { + main_group = ""; + } + char *final_string = yon_char_unite(yon_char_return_if_exist(user_home,""), + yon_char_return_if_exist(user_shell,""), + !yon_char_is_empty(user_shell)?" ":"", + yon_char_return_if_exist(create_system_user,""), + !yon_char_is_empty(create_system_user)?" ":"", + yon_char_return_if_exist(create_ununique,""), + !yon_char_is_empty(create_ununique)?" ":"", + yon_char_return_if_exist(do_not_check,""), + !yon_char_is_empty(do_not_check)?" ":"", + yon_char_return_if_exist(no_user_group,""), + NULL); + gtk_entry_set_text(GTK_ENTRY(window->userExtraOptionsEntry),final_string); + free(final_string); +} + ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ ubl_settings_usergroups_user_window *window = malloc(sizeof(ubl_settings_usergroups_user_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_user); @@ -1811,6 +1932,15 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ g_signal_connect(G_OBJECT(window->userPasswordCombo),"changed",G_CALLBACK(on_toggle_button_set_active_from_combo_box),window); g_signal_connect(G_OBJECT(window->userPasswordCombo),"changed",G_CALLBACK(on_toggle_button_set_active_from_combo_box),window); g_signal_connect(G_OBJECT(window->userPasswordEntry),"changed",G_CALLBACK(on_password_user_changed),window); + g_signal_connect(G_OBJECT(window->userHomeEntry),"changed",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userHomeCombo),"changed",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userShellCombo),"changed",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userShellEntry),"changed",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userCreateSystemCheck),"toggled",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userCreateUnuniqueCheck),"toggled",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userDontCheckCheck),"toggled",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userGroupsCheck),"toggled",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userGroupsEntry),"changed",G_CALLBACK(on_parameter_changed),window); return window; } @@ -1930,13 +2060,11 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ // gtk_entry_set_text(GTK_ENTRY(window->), parsed_size>4?parameters[4]:""); } window->old_password=parameters[5]; - if(parsed_size>5){ if (strcmp(parameters[5],"x")){ - gtk_entry_set_text(GTK_ENTRY(window->userPasswordEntry), parsed_size>5?parameters[5]:""); + gtk_entry_set_text(GTK_ENTRY(window->userPasswordEntry),parameters[5]); gtk_combo_box_set_active(GTK_COMBO_BOX(window->userPasswordCombo),2); } - } int samba_sync = yon_samba_sync_get(name); if (samba_sync==1){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userSyncSAMBACheck),1); @@ -2049,6 +2177,10 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ } +void on_main_edit_activate(GtkWidget *self, GtkTreePath *path, GtkTreeViewColumn *column, main_window *widgets){ + on_main_edit(self,widgets); +} + void on_main_delete(GtkWidget *self, main_window *widgets){ GtkTreeModel *model; GtkWidget *cur_tree; @@ -2080,7 +2212,6 @@ void on_config_update(GtkWidget *self, main_window *widgets){ } else { on_config_local_load(NULL,widgets); } - // yon_interface_update(widgets); } @@ -2100,6 +2231,7 @@ void config_init(){ main_config.lock_save_global=0; main_config.lock_save_local=0; main_config.groups_size=0; + main_config.users_size=0; main_config.load_mode=1; main_config.hash_default_id=-1; main_config.groups = yon_file_open(groups_path,&main_config.groups_size); @@ -2150,6 +2282,18 @@ void config_init(){ } } yon_char_parsed_free(login_defs,login_size); + int size=0; + main_config.default_home = NULL; + config_str file_output = yon_file_open(default_home_initiator_path,&size); + for (int i=0;iSavingSettingsButton),"clicked",G_CALLBACK(on_saving_settings_open),widgets); g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets); g_signal_connect(G_OBJECT(widgets->UsersTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->UsersTree),"row-activated",G_CALLBACK(on_main_edit_activate),widgets); g_signal_connect(G_OBJECT(widgets->GroupsTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->GroupsTree),"row-activated",G_CALLBACK(on_main_edit_activate),widgets); g_signal_connect(G_OBJECT(widgets->MainNotebook),"switch-page",G_CALLBACK(on_notebook_page_changed),widgets); g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets); g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_local_save),widgets); diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index 1925ece..c3ef689 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -53,6 +53,7 @@ #define password_limits_path "/etc/security/pwquiality.conf" #define get_home_command "getent passwd "$USER" | cut -d: -f6" #define remove_home_dirs_command(users_string) yon_char_append("/usr/lib/ublinux/functions remove_userhome ", users_string) +#define default_home_initiator_path "/etc/default/useradd" #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" @@ -108,6 +109,7 @@ typedef struct { int sync_size; config_str remove_homes; int homes_size; + char *default_home; } config; typedef struct { @@ -205,6 +207,7 @@ typedef struct{ GtkWidget *AdminGroupsEntry; GtkWidget *AdminGroupsButton; GtkWidget *GroupaddShutdownCheck; + GtkWidget *groupExtraOptionsEntry; } ubl_settings_usergroups_group_creation_window; typedef struct{ diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 7be22aa..9963a0f 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -72,6 +72,7 @@ #define DESCTRYPT_LABEL "desctrypt" #define NT_LABEL "nt" #define ACCEPT_LABEL _("Accept") +#define ENCRYPT_SURE_LABEL _("Are you sure want to encrypt all passwords?\nThis action can't be undone.") //ubl-settings-usergroups-group-creation.glade #define CONFIGURE_GROUP_TITLE_LABEL _("Configure group") diff --git a/ubl-settings-usergroups.pot b/ubl-settings-usergroups.pot index e10d602..29d88ca 100644 --- a/ubl-settings-usergroups.pot +++ b/ubl-settings-usergroups.pot @@ -108,7 +108,7 @@ msgid "UID" msgstr "" #: source/ubl-strings.h:15 source/ubl-strings.h:84 source/ubl-strings.h:14 -#: source/ubl-strings.h:83 source/ubl-strings.h:14 source/ubl-strings.h:83 +#: source/ubl-strings.h:83 source/ubl-strings.h:14 source/ubl-strings.h:84 msgid "Login" msgstr "" @@ -276,7 +276,7 @@ msgid "Set a password" msgstr "" #: source/ubl-strings.h:61 source/ubl-strings.h:87 source/ubl-strings.h:60 -#: source/ubl-strings.h:86 source/ubl-strings.h:60 source/ubl-strings.h:86 +#: source/ubl-strings.h:86 source/ubl-strings.h:60 source/ubl-strings.h:87 msgid "Encrypted password" msgstr "" @@ -288,382 +288,388 @@ msgstr "" msgid "Accept" msgstr "" -#: source/ubl-strings.h:78 source/ubl-strings.h:77 source/ubl-strings.h:77 +#: source/ubl-strings.h:78 source/ubl-strings.h:77 source/ubl-strings.h:78 msgid "Configure group" msgstr "" -#: source/ubl-strings.h:79 source/ubl-strings.h:78 source/ubl-strings.h:78 +#: source/ubl-strings.h:79 source/ubl-strings.h:78 source/ubl-strings.h:79 msgid "Add group" msgstr "" -#: source/ubl-strings.h:80 source/ubl-strings.h:79 source/ubl-strings.h:79 +#: source/ubl-strings.h:80 source/ubl-strings.h:79 source/ubl-strings.h:80 msgid "Group id:" msgstr "" -#: source/ubl-strings.h:81 source/ubl-strings.h:80 source/ubl-strings.h:80 +#: source/ubl-strings.h:81 source/ubl-strings.h:80 source/ubl-strings.h:81 msgid "Group name:" msgstr "" -#: source/ubl-strings.h:82 source/ubl-strings.h:81 source/ubl-strings.h:81 +#: source/ubl-strings.h:82 source/ubl-strings.h:81 source/ubl-strings.h:82 msgid "Group users:" msgstr "" -#: source/ubl-strings.h:83 source/ubl-strings.h:82 source/ubl-strings.h:82 +#: source/ubl-strings.h:83 source/ubl-strings.h:82 source/ubl-strings.h:83 msgid "Automatically" msgstr "" -#: source/ubl-strings.h:85 source/ubl-strings.h:84 source/ubl-strings.h:84 +#: source/ubl-strings.h:85 source/ubl-strings.h:84 source/ubl-strings.h:85 msgid "Create group with ununique GID" msgstr "" -#: source/ubl-strings.h:86 source/ubl-strings.h:85 source/ubl-strings.h:85 +#: source/ubl-strings.h:86 source/ubl-strings.h:85 source/ubl-strings.h:86 msgid "Create system group" msgstr "" -#: source/ubl-strings.h:88 source/ubl-strings.h:87 source/ubl-strings.h:87 +#: source/ubl-strings.h:88 source/ubl-strings.h:87 source/ubl-strings.h:88 msgid "Additional configuration" msgstr "" -#: source/ubl-strings.h:89 source/ubl-strings.h:88 source/ubl-strings.h:88 +#: source/ubl-strings.h:89 source/ubl-strings.h:88 source/ubl-strings.h:89 msgid "Group configuration synchronization" msgstr "" -#: source/ubl-strings.h:90 source/ubl-strings.h:89 source/ubl-strings.h:89 +#: source/ubl-strings.h:90 source/ubl-strings.h:89 source/ubl-strings.h:90 msgid "When shutting down the system, save the group into the configuration" msgstr "" -#: source/ubl-strings.h:91 source/ubl-strings.h:90 source/ubl-strings.h:90 +#: source/ubl-strings.h:91 source/ubl-strings.h:90 source/ubl-strings.h:91 msgid "Group administrators:" msgstr "" -#: source/ubl-strings.h:94 source/ubl-strings.h:93 source/ubl-strings.h:94 +#: source/ubl-strings.h:94 source/ubl-strings.h:93 source/ubl-strings.h:95 msgid "Default groups" msgstr "" -#: source/ubl-strings.h:95 source/ubl-strings.h:94 source/ubl-strings.h:95 +#: source/ubl-strings.h:95 source/ubl-strings.h:94 source/ubl-strings.h:96 msgid "Main group" msgstr "" -#: source/ubl-strings.h:96 source/ubl-strings.h:95 source/ubl-strings.h:96 +#: source/ubl-strings.h:96 source/ubl-strings.h:95 source/ubl-strings.h:97 msgid "Additional groups" msgstr "" -#: source/ubl-strings.h:97 source/ubl-strings.h:96 source/ubl-strings.h:97 +#: source/ubl-strings.h:97 source/ubl-strings.h:96 source/ubl-strings.h:98 msgid "Choose groups" msgstr "" -#: source/ubl-strings.h:98 source/ubl-strings.h:97 source/ubl-strings.h:98 +#: source/ubl-strings.h:98 source/ubl-strings.h:97 source/ubl-strings.h:99 msgid "Choose users" msgstr "" -#: source/ubl-strings.h:101 source/ubl-strings.h:100 source/ubl-strings.h:101 +#: source/ubl-strings.h:101 source/ubl-strings.h:100 source/ubl-strings.h:102 msgid "System users and groups" msgstr "" -#: source/ubl-strings.h:102 source/ubl-strings.h:101 source/ubl-strings.h:102 +#: source/ubl-strings.h:102 source/ubl-strings.h:101 source/ubl-strings.h:103 msgid "Blocked" msgstr "" -#: source/ubl-strings.h:103 source/ubl-strings.h:102 source/ubl-strings.h:103 +#: source/ubl-strings.h:103 source/ubl-strings.h:102 source/ubl-strings.h:104 msgid "Username" msgstr "" -#: source/ubl-strings.h:104 source/ubl-strings.h:103 source/ubl-strings.h:104 +#: source/ubl-strings.h:104 source/ubl-strings.h:103 source/ubl-strings.h:105 msgid "" "Primary\n" "group" msgstr "" -#: source/ubl-strings.h:105 source/ubl-strings.h:104 source/ubl-strings.h:105 +#: source/ubl-strings.h:105 source/ubl-strings.h:104 source/ubl-strings.h:106 msgid "" "Home\n" "directory" msgstr "" #: source/ubl-strings.h:106 source/ubl-strings.h:112 source/ubl-strings.h:105 -#: source/ubl-strings.h:111 source/ubl-strings.h:106 source/ubl-strings.h:112 +#: source/ubl-strings.h:111 source/ubl-strings.h:107 source/ubl-strings.h:113 msgid "Group" msgstr "" -#: source/ubl-strings.h:107 source/ubl-strings.h:106 source/ubl-strings.h:107 +#: source/ubl-strings.h:107 source/ubl-strings.h:106 source/ubl-strings.h:108 msgid "Update the system users and groups list" msgstr "" -#: source/ubl-strings.h:108 source/ubl-strings.h:107 source/ubl-strings.h:108 +#: source/ubl-strings.h:108 source/ubl-strings.h:107 source/ubl-strings.h:109 msgid "Toggle system groups and users" msgstr "" -#: source/ubl-strings.h:110 source/ubl-strings.h:109 source/ubl-strings.h:110 +#: source/ubl-strings.h:110 source/ubl-strings.h:109 source/ubl-strings.h:111 msgid "Password mismatch" msgstr "" -#: source/ubl-strings.h:111 source/ubl-strings.h:110 source/ubl-strings.h:111 +#: source/ubl-strings.h:111 source/ubl-strings.h:110 source/ubl-strings.h:112 msgid "Password must be at least" msgstr "" -#: source/ubl-strings.h:111 source/ubl-strings.h:110 source/ubl-strings.h:111 +#: source/ubl-strings.h:111 source/ubl-strings.h:110 source/ubl-strings.h:112 msgid "characters" msgstr "" -#: source/ubl-strings.h:113 source/ubl-strings.h:112 source/ubl-strings.h:113 +#: source/ubl-strings.h:113 source/ubl-strings.h:112 source/ubl-strings.h:114 msgid "" "Days until\n" "warning" msgstr "" -#: source/ubl-strings.h:114 source/ubl-strings.h:113 source/ubl-strings.h:114 +#: source/ubl-strings.h:114 source/ubl-strings.h:113 source/ubl-strings.h:115 msgid "" "Days\n" "without activity" msgstr "" -#: source/ubl-strings.h:115 source/ubl-strings.h:114 source/ubl-strings.h:115 +#: source/ubl-strings.h:115 source/ubl-strings.h:114 source/ubl-strings.h:116 msgid "" "Shell\n" "path" msgstr "" -#: source/ubl-strings.h:116 source/ubl-strings.h:115 source/ubl-strings.h:116 +#: source/ubl-strings.h:116 source/ubl-strings.h:115 source/ubl-strings.h:117 msgid "" "Password has\n" "been changed" msgstr "" -#: source/ubl-strings.h:117 source/ubl-strings.h:116 source/ubl-strings.h:117 +#: source/ubl-strings.h:117 source/ubl-strings.h:116 source/ubl-strings.h:118 msgid "" "Expiration\n" "date" msgstr "" -#: source/ubl-strings.h:118 source/ubl-strings.h:117 source/ubl-strings.h:118 +#: source/ubl-strings.h:118 source/ubl-strings.h:117 source/ubl-strings.h:119 msgid "" "Password change\n" "interval (min)" msgstr "" -#: source/ubl-strings.h:119 source/ubl-strings.h:118 source/ubl-strings.h:119 +#: source/ubl-strings.h:119 source/ubl-strings.h:118 source/ubl-strings.h:120 msgid "" "Password change\n" "interval (max)" msgstr "" -#: source/ubl-strings.h:122 source/ubl-strings.h:121 source/ubl-strings.h:122 +#: source/ubl-strings.h:122 source/ubl-strings.h:121 source/ubl-strings.h:123 msgid "Add user" msgstr "" -#: source/ubl-strings.h:123 source/ubl-strings.h:122 source/ubl-strings.h:123 +#: source/ubl-strings.h:123 source/ubl-strings.h:122 source/ubl-strings.h:124 msgid "Configure user" msgstr "" -#: source/ubl-strings.h:124 source/ubl-strings.h:123 source/ubl-strings.h:124 +#: source/ubl-strings.h:124 source/ubl-strings.h:123 source/ubl-strings.h:125 msgid "Set" msgstr "" -#: source/ubl-strings.h:125 source/ubl-strings.h:124 source/ubl-strings.h:125 +#: source/ubl-strings.h:125 source/ubl-strings.h:124 source/ubl-strings.h:126 msgid "Empty important field" msgstr "" -#: source/ubl-strings.h:126 source/ubl-strings.h:127 +#: source/ubl-strings.h:126 source/ubl-strings.h:127 source/ubl-strings.h:128 msgid "Loading has failed" msgstr "" -#: source/ubl-strings.h:127 source/ubl-strings.h:128 +#: source/ubl-strings.h:127 source/ubl-strings.h:128 source/ubl-strings.h:129 msgid "Login name" msgstr "" -#: source/ubl-strings.h:128 source/ubl-strings.h:129 +#: source/ubl-strings.h:128 source/ubl-strings.h:129 source/ubl-strings.h:130 msgid "Additional groups:" msgstr "" -#: source/ubl-strings.h:129 source/ubl-strings.h:130 +#: source/ubl-strings.h:129 source/ubl-strings.h:130 source/ubl-strings.h:131 msgid "Password configuration" msgstr "" -#: source/ubl-strings.h:130 source/ubl-strings.h:131 +#: source/ubl-strings.h:130 source/ubl-strings.h:131 source/ubl-strings.h:132 msgid "Password has been changed:" msgstr "" -#: source/ubl-strings.h:131 source/ubl-strings.h:132 +#: source/ubl-strings.h:131 source/ubl-strings.h:132 source/ubl-strings.h:133 msgid "expiration date:" msgstr "" -#: source/ubl-strings.h:132 source/ubl-strings.h:133 +#: source/ubl-strings.h:132 source/ubl-strings.h:133 source/ubl-strings.h:134 msgid "Password change interval: minimum" msgstr "" -#: source/ubl-strings.h:133 source/ubl-strings.h:134 +#: source/ubl-strings.h:133 source/ubl-strings.h:134 source/ubl-strings.h:135 msgid "days, maximum" msgstr "" -#: source/ubl-strings.h:134 source/ubl-strings.h:135 +#: source/ubl-strings.h:134 source/ubl-strings.h:135 source/ubl-strings.h:136 msgid "days" msgstr "" -#: source/ubl-strings.h:135 source/ubl-strings.h:136 +#: source/ubl-strings.h:135 source/ubl-strings.h:136 source/ubl-strings.h:137 msgid "Days until warning:" msgstr "" -#: source/ubl-strings.h:136 source/ubl-strings.h:137 +#: source/ubl-strings.h:136 source/ubl-strings.h:137 source/ubl-strings.h:138 msgid "Days without activity:" msgstr "" -#: source/ubl-strings.h:137 source/ubl-strings.h:138 +#: source/ubl-strings.h:137 source/ubl-strings.h:138 source/ubl-strings.h:139 msgid "Force change at next login" msgstr "" -#: source/ubl-strings.h:138 source/ubl-strings.h:139 +#: source/ubl-strings.h:138 source/ubl-strings.h:139 source/ubl-strings.h:140 msgid "User shell:" msgstr "" -#: source/ubl-strings.h:139 source/ubl-strings.h:140 +#: source/ubl-strings.h:139 source/ubl-strings.h:140 source/ubl-strings.h:141 msgid "Home directory:" msgstr "" -#: source/ubl-strings.h:140 source/ubl-strings.h:141 +#: source/ubl-strings.h:140 source/ubl-strings.h:141 source/ubl-strings.h:142 msgid "Don't set" msgstr "" -#: source/ubl-strings.h:141 source/ubl-strings.h:142 +#: source/ubl-strings.h:141 source/ubl-strings.h:142 source/ubl-strings.h:143 msgid "Create system user" msgstr "" -#: source/ubl-strings.h:142 source/ubl-strings.h:143 +#: source/ubl-strings.h:142 source/ubl-strings.h:143 source/ubl-strings.h:144 msgid "Create user with ununique (repeating) UID" msgstr "" -#: source/ubl-strings.h:143 source/ubl-strings.h:144 +#: source/ubl-strings.h:143 source/ubl-strings.h:144 source/ubl-strings.h:145 msgid "Do not check login for compliance with character rules" msgstr "" -#: source/ubl-strings.h:144 source/ubl-strings.h:145 +#: source/ubl-strings.h:144 source/ubl-strings.h:145 source/ubl-strings.h:146 msgid "Temporary deactivation" msgstr "" -#: source/ubl-strings.h:145 source/ubl-strings.h:146 +#: source/ubl-strings.h:145 source/ubl-strings.h:146 source/ubl-strings.h:147 msgid "Save" msgstr "" -#: source/ubl-strings.h:146 source/ubl-strings.h:147 +#: source/ubl-strings.h:146 source/ubl-strings.h:147 source/ubl-strings.h:148 msgid "login_name" msgstr "" -#: source/ubl-strings.h:147 source/ubl-strings.h:148 +#: source/ubl-strings.h:147 source/ubl-strings.h:148 source/ubl-strings.h:149 msgid "group_name" msgstr "" -#: source/ubl-strings.h:148 source/ubl-strings.h:149 +#: source/ubl-strings.h:148 source/ubl-strings.h:149 source/ubl-strings.h:150 msgid "User name" msgstr "" -#: source/ubl-strings.h:149 source/ubl-strings.h:150 +#: source/ubl-strings.h:149 source/ubl-strings.h:150 source/ubl-strings.h:151 msgid "Sync user" msgstr "" -#: source/ubl-strings.h:150 source/ubl-strings.h:151 +#: source/ubl-strings.h:150 source/ubl-strings.h:151 source/ubl-strings.h:152 msgid "Sync user with password" msgstr "" -#: source/ubl-strings.h:151 source/ubl-strings.h:152 +#: source/ubl-strings.h:151 source/ubl-strings.h:152 source/ubl-strings.h:153 msgid "Encrypt all passwords" msgstr "" -#: source/ubl-strings.h:153 source/ubl-strings.h:154 +#: source/ubl-strings.h:153 source/ubl-strings.h:154 source/ubl-strings.h:155 msgid "User configuration" msgstr "" -#: source/ubl-strings.h:154 source/ubl-strings.h:155 +#: source/ubl-strings.h:154 source/ubl-strings.h:155 source/ubl-strings.h:156 msgid "User configuration synchronization" msgstr "" -#: source/ubl-strings.h:155 source/ubl-strings.h:156 +#: source/ubl-strings.h:155 source/ubl-strings.h:156 source/ubl-strings.h:157 msgid "During system startup, load the user from the configuration" msgstr "" -#: source/ubl-strings.h:156 source/ubl-strings.h:157 +#: source/ubl-strings.h:156 source/ubl-strings.h:157 source/ubl-strings.h:158 msgid "When shutting down the system, save the user into the configuration" msgstr "" -#: source/ubl-strings.h:157 source/ubl-strings.h:158 +#: source/ubl-strings.h:157 source/ubl-strings.h:158 source/ubl-strings.h:159 msgid "User password configuration syncronization" msgstr "" -#: source/ubl-strings.h:158 source/ubl-strings.h:159 +#: source/ubl-strings.h:158 source/ubl-strings.h:159 source/ubl-strings.h:160 msgid "" "During system startup, load the user's parameters from the configuration" msgstr "" -#: source/ubl-strings.h:159 source/ubl-strings.h:160 +#: source/ubl-strings.h:159 source/ubl-strings.h:160 source/ubl-strings.h:161 msgid "" "When shutting down the system, save the user's parameters into the " "configuration" msgstr "" -#: source/ubl-strings.h:161 source/ubl-strings.h:162 +#: source/ubl-strings.h:161 source/ubl-strings.h:162 source/ubl-strings.h:163 msgid "Main" msgstr "" -#: source/ubl-strings.h:162 source/ubl-strings.h:163 +#: source/ubl-strings.h:162 source/ubl-strings.h:163 source/ubl-strings.h:164 msgid "Additional" msgstr "" -#: source/ubl-strings.h:163 source/ubl-strings.h:164 +#: source/ubl-strings.h:163 source/ubl-strings.h:164 source/ubl-strings.h:165 msgid "Syncronization" msgstr "" -#: source/ubl-strings.h:166 source/ubl-strings.h:167 +#: source/ubl-strings.h:166 source/ubl-strings.h:167 source/ubl-strings.h:168 msgid "Repeat password:" msgstr "" -#: source/ubl-strings.h:167 source/ubl-strings.h:168 +#: source/ubl-strings.h:167 source/ubl-strings.h:168 source/ubl-strings.h:169 msgid "Password hash:" msgstr "" -#: source/ubl-strings.h:168 source/ubl-strings.h:169 +#: source/ubl-strings.h:168 source/ubl-strings.h:169 source/ubl-strings.h:170 msgid "Do not encrypt password" msgstr "" -#: source/ubl-strings.h:171 source/ubl-strings.h:172 +#: source/ubl-strings.h:171 source/ubl-strings.h:172 source/ubl-strings.h:173 msgid "Additional configuration of service parameter saving" msgstr "" -#: source/ubl-strings.h:172 source/ubl-strings.h:173 +#: source/ubl-strings.h:172 source/ubl-strings.h:173 source/ubl-strings.h:174 msgid "" "At every system shutdown save changes of (root)/var/lib/samba\n" "into (hd)/ublinux-data/rootcopy" msgstr "" -#: source/ubl-strings.h:173 source/ubl-strings.h:174 +#: source/ubl-strings.h:173 source/ubl-strings.h:174 source/ubl-strings.h:175 msgid "For system save mode \"Sandbox\"" msgstr "" -#: source/ubl-strings.h:176 source/ubl-strings.h:177 +#: source/ubl-strings.h:176 source/ubl-strings.h:177 source/ubl-strings.h:178 msgid "User deletion" msgstr "" -#: source/ubl-strings.h:177 source/ubl-strings.h:178 +#: source/ubl-strings.h:177 source/ubl-strings.h:178 source/ubl-strings.h:179 msgid "Confirm user(-s) deletion:" msgstr "" -#: source/ubl-strings.h:178 source/ubl-strings.h:179 +#: source/ubl-strings.h:178 source/ubl-strings.h:179 source/ubl-strings.h:180 msgid "Chosen" msgstr "" -#: source/ubl-strings.h:179 source/ubl-strings.h:180 +#: source/ubl-strings.h:179 source/ubl-strings.h:180 source/ubl-strings.h:181 msgid "User" msgstr "" -#: source/ubl-strings.h:180 source/ubl-strings.h:181 +#: source/ubl-strings.h:180 source/ubl-strings.h:181 source/ubl-strings.h:182 msgid "Home directory" msgstr "" -#: source/ubl-strings.h:181 source/ubl-strings.h:182 +#: source/ubl-strings.h:181 source/ubl-strings.h:182 source/ubl-strings.h:183 msgid "Delete home directory" msgstr "" -#: source/ubl-strings.h:125 source/ubl-strings.h:126 +#: source/ubl-strings.h:125 source/ubl-strings.h:126 source/ubl-strings.h:127 msgid "Login must not start with digit" msgstr "" -#: source/ubl-strings.h:91 +#: source/ubl-strings.h:91 source/ubl-strings.h:92 msgid "Group name must not start with digit" msgstr "" + +#: source/ubl-strings.h:75 +msgid "" +"Are you sure want to encrypt all passwords?\n" +"This action can't be undone." +msgstr "" diff --git a/ubl-settings-usergroups_ru.po b/ubl-settings-usergroups_ru.po index d204077..52bbbb8 100644 --- a/ubl-settings-usergroups_ru.po +++ b/ubl-settings-usergroups_ru.po @@ -349,39 +349,39 @@ msgstr "При завершении работы системы сохранит msgid "Group administrators:" msgstr "Администраторы группы:" -#: source/ubl-strings.h:94 source/ubl-strings.h:93 +#: source/ubl-strings.h:94 source/ubl-strings.h:93 source/ubl-strings.h:95 msgid "Default groups" msgstr "Группы пользователей по умолчанию" -#: source/ubl-strings.h:95 source/ubl-strings.h:94 +#: source/ubl-strings.h:95 source/ubl-strings.h:94 source/ubl-strings.h:96 msgid "Main group" msgstr "Основная группа" -#: source/ubl-strings.h:96 source/ubl-strings.h:95 +#: source/ubl-strings.h:96 source/ubl-strings.h:95 source/ubl-strings.h:97 msgid "Additional groups" msgstr "Дополнительные группы" -#: source/ubl-strings.h:97 source/ubl-strings.h:96 +#: source/ubl-strings.h:97 source/ubl-strings.h:96 source/ubl-strings.h:98 msgid "Choose groups" msgstr "Выбрать группы" -#: source/ubl-strings.h:98 source/ubl-strings.h:97 +#: source/ubl-strings.h:98 source/ubl-strings.h:97 source/ubl-strings.h:99 msgid "Choose users" msgstr "Выбрать пользователей" -#: source/ubl-strings.h:101 source/ubl-strings.h:100 +#: source/ubl-strings.h:101 source/ubl-strings.h:100 source/ubl-strings.h:102 msgid "System users and groups" msgstr "Пользователи и группы в системе" -#: source/ubl-strings.h:102 source/ubl-strings.h:101 +#: source/ubl-strings.h:102 source/ubl-strings.h:101 source/ubl-strings.h:103 msgid "Blocked" msgstr "Заблокировано" -#: source/ubl-strings.h:103 source/ubl-strings.h:102 +#: source/ubl-strings.h:103 source/ubl-strings.h:102 source/ubl-strings.h:104 msgid "Username" msgstr "Имя пользователя" -#: source/ubl-strings.h:104 source/ubl-strings.h:103 +#: source/ubl-strings.h:104 source/ubl-strings.h:103 source/ubl-strings.h:105 msgid "" "Primary\n" "group" @@ -389,7 +389,7 @@ msgstr "" "Основная\n" "группа" -#: source/ubl-strings.h:105 source/ubl-strings.h:104 +#: source/ubl-strings.h:105 source/ubl-strings.h:104 source/ubl-strings.h:106 msgid "" "Home\n" "directory" @@ -398,31 +398,31 @@ msgstr "" "каталог" #: source/ubl-strings.h:106 source/ubl-strings.h:112 source/ubl-strings.h:105 -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:111 source/ubl-strings.h:107 source/ubl-strings.h:113 msgid "Group" msgstr "Группа" -#: source/ubl-strings.h:107 source/ubl-strings.h:106 +#: source/ubl-strings.h:107 source/ubl-strings.h:106 source/ubl-strings.h:108 msgid "Update the system users and groups list" msgstr "Обновить список пользователей и групп системы" -#: source/ubl-strings.h:108 source/ubl-strings.h:107 +#: source/ubl-strings.h:108 source/ubl-strings.h:107 source/ubl-strings.h:109 msgid "Toggle system groups and users" msgstr "Переключить видимость системных пользователей и групп" -#: source/ubl-strings.h:110 source/ubl-strings.h:109 +#: source/ubl-strings.h:110 source/ubl-strings.h:109 source/ubl-strings.h:111 msgid "Password mismatch" msgstr "Несовпадение паролей" -#: source/ubl-strings.h:111 source/ubl-strings.h:110 +#: source/ubl-strings.h:111 source/ubl-strings.h:110 source/ubl-strings.h:112 msgid "Password must be at least" msgstr "Пароль должен состоять из как минимум" -#: source/ubl-strings.h:111 source/ubl-strings.h:110 +#: source/ubl-strings.h:111 source/ubl-strings.h:110 source/ubl-strings.h:112 msgid "characters" msgstr "символов" -#: source/ubl-strings.h:113 source/ubl-strings.h:112 +#: source/ubl-strings.h:113 source/ubl-strings.h:112 source/ubl-strings.h:114 msgid "" "Days until\n" "warning" @@ -430,7 +430,7 @@ msgstr "" "Дней до\n" "предупреждения" -#: source/ubl-strings.h:114 source/ubl-strings.h:113 +#: source/ubl-strings.h:114 source/ubl-strings.h:113 source/ubl-strings.h:115 msgid "" "Days\n" "without activity" @@ -438,7 +438,7 @@ msgstr "" "Дней без\n" "активности" -#: source/ubl-strings.h:115 source/ubl-strings.h:114 +#: source/ubl-strings.h:115 source/ubl-strings.h:114 source/ubl-strings.h:116 msgid "" "Shell\n" "path" @@ -446,7 +446,7 @@ msgstr "" "Путь до\n" "оболочки" -#: source/ubl-strings.h:116 source/ubl-strings.h:115 +#: source/ubl-strings.h:116 source/ubl-strings.h:115 source/ubl-strings.h:117 msgid "" "Password has\n" "been changed" @@ -454,7 +454,7 @@ msgstr "" "Пароль\n" "изменён" -#: source/ubl-strings.h:117 source/ubl-strings.h:116 +#: source/ubl-strings.h:117 source/ubl-strings.h:116 source/ubl-strings.h:118 msgid "" "Expiration\n" "date" @@ -462,7 +462,7 @@ msgstr "" "Дата\n" "устаревания" -#: source/ubl-strings.h:118 source/ubl-strings.h:117 +#: source/ubl-strings.h:118 source/ubl-strings.h:117 source/ubl-strings.h:119 msgid "" "Password change\n" "interval (min)" @@ -470,7 +470,7 @@ msgstr "" "Интервал смены\n" "пароля (мин.)" -#: source/ubl-strings.h:119 source/ubl-strings.h:118 +#: source/ubl-strings.h:119 source/ubl-strings.h:118 source/ubl-strings.h:120 msgid "" "Password change\n" "interval (max)" @@ -478,187 +478,187 @@ msgstr "" "Интервал смены\n" "пароля (макс.)" -#: source/ubl-strings.h:122 source/ubl-strings.h:121 +#: source/ubl-strings.h:122 source/ubl-strings.h:121 source/ubl-strings.h:123 msgid "Add user" msgstr "Добавить пользователя" -#: source/ubl-strings.h:123 source/ubl-strings.h:122 +#: source/ubl-strings.h:123 source/ubl-strings.h:122 source/ubl-strings.h:124 msgid "Configure user" msgstr "Редактировать пользователя" -#: source/ubl-strings.h:124 source/ubl-strings.h:123 +#: source/ubl-strings.h:124 source/ubl-strings.h:123 source/ubl-strings.h:125 msgid "Set" msgstr "Задать" -#: source/ubl-strings.h:125 source/ubl-strings.h:124 +#: source/ubl-strings.h:125 source/ubl-strings.h:124 source/ubl-strings.h:126 msgid "Empty important field" msgstr "Пустое важное поле" -#: source/ubl-strings.h:126 source/ubl-strings.h:127 +#: source/ubl-strings.h:126 source/ubl-strings.h:127 source/ubl-strings.h:128 msgid "Loading has failed" msgstr "Ошибка загрузки" -#: source/ubl-strings.h:127 source/ubl-strings.h:128 +#: source/ubl-strings.h:127 source/ubl-strings.h:128 source/ubl-strings.h:129 msgid "Login name" msgstr "Имя логина" -#: source/ubl-strings.h:128 source/ubl-strings.h:129 +#: source/ubl-strings.h:128 source/ubl-strings.h:129 source/ubl-strings.h:130 msgid "Additional groups:" msgstr "Дополнительные группы:" -#: source/ubl-strings.h:129 source/ubl-strings.h:130 +#: source/ubl-strings.h:129 source/ubl-strings.h:130 source/ubl-strings.h:131 msgid "Password configuration" msgstr "Конфигурация пароля" -#: source/ubl-strings.h:130 source/ubl-strings.h:131 +#: source/ubl-strings.h:130 source/ubl-strings.h:131 source/ubl-strings.h:132 msgid "Password has been changed:" msgstr "Пароль изменён:" -#: source/ubl-strings.h:131 source/ubl-strings.h:132 +#: source/ubl-strings.h:131 source/ubl-strings.h:132 source/ubl-strings.h:133 msgid "expiration date:" msgstr "Дата устаревания:" -#: source/ubl-strings.h:132 source/ubl-strings.h:133 +#: source/ubl-strings.h:132 source/ubl-strings.h:133 source/ubl-strings.h:134 msgid "Password change interval: minimum" msgstr "Интервал смены пароля: минимум" -#: source/ubl-strings.h:133 source/ubl-strings.h:134 +#: source/ubl-strings.h:133 source/ubl-strings.h:134 source/ubl-strings.h:135 msgid "days, maximum" msgstr "дней, максимум" -#: source/ubl-strings.h:134 source/ubl-strings.h:135 +#: source/ubl-strings.h:134 source/ubl-strings.h:135 source/ubl-strings.h:136 msgid "days" msgstr "дней" -#: source/ubl-strings.h:135 source/ubl-strings.h:136 +#: source/ubl-strings.h:135 source/ubl-strings.h:136 source/ubl-strings.h:137 msgid "Days until warning:" msgstr "Дней до предупреждения:" -#: source/ubl-strings.h:136 source/ubl-strings.h:137 +#: source/ubl-strings.h:136 source/ubl-strings.h:137 source/ubl-strings.h:138 msgid "Days without activity:" msgstr "Дней без активности:" -#: source/ubl-strings.h:137 source/ubl-strings.h:138 +#: source/ubl-strings.h:137 source/ubl-strings.h:138 source/ubl-strings.h:139 msgid "Force change at next login" msgstr "Принудительно сменить при следующем входе в систему" -#: source/ubl-strings.h:138 source/ubl-strings.h:139 +#: source/ubl-strings.h:138 source/ubl-strings.h:139 source/ubl-strings.h:140 msgid "User shell:" msgstr "Оболочка пользователя:" -#: source/ubl-strings.h:139 source/ubl-strings.h:140 +#: source/ubl-strings.h:139 source/ubl-strings.h:140 source/ubl-strings.h:141 msgid "Home directory:" msgstr "Домашний каталог:" -#: source/ubl-strings.h:140 source/ubl-strings.h:141 +#: source/ubl-strings.h:140 source/ubl-strings.h:141 source/ubl-strings.h:142 msgid "Don't set" msgstr "Не создавать" -#: source/ubl-strings.h:141 source/ubl-strings.h:142 +#: source/ubl-strings.h:141 source/ubl-strings.h:142 source/ubl-strings.h:143 msgid "Create system user" msgstr "Создать системного пользователя" -#: source/ubl-strings.h:142 source/ubl-strings.h:143 +#: source/ubl-strings.h:142 source/ubl-strings.h:143 source/ubl-strings.h:144 msgid "Create user with ununique (repeating) UID" msgstr "Создать пользователя с повторяющимися (не уникальными) UID" -#: source/ubl-strings.h:143 source/ubl-strings.h:144 +#: source/ubl-strings.h:143 source/ubl-strings.h:144 source/ubl-strings.h:145 msgid "Do not check login for compliance with character rules" msgstr "Не проверять логин на несоответствие правилам использования символов" -#: source/ubl-strings.h:144 source/ubl-strings.h:145 +#: source/ubl-strings.h:144 source/ubl-strings.h:145 source/ubl-strings.h:146 msgid "Temporary deactivation" msgstr "Временное отключение учётной записи" -#: source/ubl-strings.h:145 source/ubl-strings.h:146 +#: source/ubl-strings.h:145 source/ubl-strings.h:146 source/ubl-strings.h:147 msgid "Save" msgstr "Сохранить" -#: source/ubl-strings.h:146 source/ubl-strings.h:147 +#: source/ubl-strings.h:146 source/ubl-strings.h:147 source/ubl-strings.h:148 msgid "login_name" msgstr "Имя_логина" -#: source/ubl-strings.h:147 source/ubl-strings.h:148 +#: source/ubl-strings.h:147 source/ubl-strings.h:148 source/ubl-strings.h:149 msgid "group_name" msgstr "Имя_группы" -#: source/ubl-strings.h:148 source/ubl-strings.h:149 +#: source/ubl-strings.h:148 source/ubl-strings.h:149 source/ubl-strings.h:150 msgid "User name" msgstr "Имя пользователя" -#: source/ubl-strings.h:149 source/ubl-strings.h:150 +#: source/ubl-strings.h:149 source/ubl-strings.h:150 source/ubl-strings.h:151 msgid "Sync user" msgstr "Синхронизировать пользователя" -#: source/ubl-strings.h:150 source/ubl-strings.h:151 +#: source/ubl-strings.h:150 source/ubl-strings.h:151 source/ubl-strings.h:152 msgid "Sync user with password" msgstr "Синхронизировать пользователя с паролем" -#: source/ubl-strings.h:151 source/ubl-strings.h:152 +#: source/ubl-strings.h:151 source/ubl-strings.h:152 source/ubl-strings.h:153 msgid "Encrypt all passwords" msgstr "Зашифровать все пароли" -#: source/ubl-strings.h:153 source/ubl-strings.h:154 +#: source/ubl-strings.h:153 source/ubl-strings.h:154 source/ubl-strings.h:155 msgid "User configuration" msgstr "Настройка пользователя" -#: source/ubl-strings.h:154 source/ubl-strings.h:155 +#: source/ubl-strings.h:154 source/ubl-strings.h:155 source/ubl-strings.h:156 msgid "User configuration synchronization" msgstr "Синхронизация настроек пользователя" -#: source/ubl-strings.h:155 source/ubl-strings.h:156 +#: source/ubl-strings.h:155 source/ubl-strings.h:156 source/ubl-strings.h:157 msgid "During system startup, load the user from the configuration" msgstr "При загрузке системы загрузить пользователя из конфигурации" -#: source/ubl-strings.h:156 source/ubl-strings.h:157 +#: source/ubl-strings.h:156 source/ubl-strings.h:157 source/ubl-strings.h:158 msgid "When shutting down the system, save the user into the configuration" msgstr "При завершении работы системы сохранить пользователя в конфигурацию" -#: source/ubl-strings.h:157 source/ubl-strings.h:158 +#: source/ubl-strings.h:157 source/ubl-strings.h:158 source/ubl-strings.h:159 msgid "User password configuration syncronization" msgstr "Синхронизация настроек пароля пользователя" -#: source/ubl-strings.h:158 source/ubl-strings.h:159 +#: source/ubl-strings.h:158 source/ubl-strings.h:159 source/ubl-strings.h:160 msgid "" "During system startup, load the user's parameters from the configuration" msgstr "При загрузке системы загрузить параметры пользователя из конфигурации" -#: source/ubl-strings.h:159 source/ubl-strings.h:160 +#: source/ubl-strings.h:159 source/ubl-strings.h:160 source/ubl-strings.h:161 msgid "" "When shutting down the system, save the user's parameters into the " "configuration" msgstr "" "При завершении работы системы сохранить параметры пользователя в конфигурацию" -#: source/ubl-strings.h:161 source/ubl-strings.h:162 +#: source/ubl-strings.h:161 source/ubl-strings.h:162 source/ubl-strings.h:163 msgid "Main" msgstr "Основные" -#: source/ubl-strings.h:162 source/ubl-strings.h:163 +#: source/ubl-strings.h:162 source/ubl-strings.h:163 source/ubl-strings.h:164 msgid "Additional" msgstr "Дополнительные" -#: source/ubl-strings.h:163 source/ubl-strings.h:164 +#: source/ubl-strings.h:163 source/ubl-strings.h:164 source/ubl-strings.h:165 msgid "Syncronization" msgstr "Синхронизация" -#: source/ubl-strings.h:166 source/ubl-strings.h:167 +#: source/ubl-strings.h:166 source/ubl-strings.h:167 source/ubl-strings.h:168 msgid "Repeat password:" msgstr "Подтверждение пароля:" -#: source/ubl-strings.h:167 source/ubl-strings.h:168 +#: source/ubl-strings.h:167 source/ubl-strings.h:168 source/ubl-strings.h:169 msgid "Password hash:" msgstr "Хэш пароля:" -#: source/ubl-strings.h:168 source/ubl-strings.h:169 +#: source/ubl-strings.h:168 source/ubl-strings.h:169 source/ubl-strings.h:170 msgid "Do not encrypt password" msgstr "Не шифровать пароль" -#: source/ubl-strings.h:171 source/ubl-strings.h:172 +#: source/ubl-strings.h:171 source/ubl-strings.h:172 source/ubl-strings.h:173 msgid "Additional configuration of service parameter saving" msgstr "Дополнительные настройки сохранения параметров сервисов" -#: source/ubl-strings.h:172 source/ubl-strings.h:173 +#: source/ubl-strings.h:172 source/ubl-strings.h:173 source/ubl-strings.h:174 msgid "" "At every system shutdown save changes of (root)/var/lib/samba\n" "into (hd)/ublinux-data/rootcopy" @@ -666,39 +666,46 @@ msgstr "" "При каждом завершении работы ОС сохранять изменения (root)/var/lib/samba\n" "в (hd)/ublinux-data/rootcopy/" -#: source/ubl-strings.h:173 source/ubl-strings.h:174 +#: source/ubl-strings.h:173 source/ubl-strings.h:174 source/ubl-strings.h:175 msgid "For system save mode \"Sandbox\"" msgstr "Для режима сохранения системы \"Песочница\"" -#: source/ubl-strings.h:176 source/ubl-strings.h:177 +#: source/ubl-strings.h:176 source/ubl-strings.h:177 source/ubl-strings.h:178 msgid "User deletion" msgstr "Удаление пользователя(-лей)" -#: source/ubl-strings.h:177 source/ubl-strings.h:178 +#: source/ubl-strings.h:177 source/ubl-strings.h:178 source/ubl-strings.h:179 msgid "Confirm user(-s) deletion:" msgstr "Подтвердите удаление пользователя (-ей):" -#: source/ubl-strings.h:178 source/ubl-strings.h:179 +#: source/ubl-strings.h:178 source/ubl-strings.h:179 source/ubl-strings.h:180 msgid "Chosen" msgstr "Выбран" -#: source/ubl-strings.h:179 source/ubl-strings.h:180 +#: source/ubl-strings.h:179 source/ubl-strings.h:180 source/ubl-strings.h:181 msgid "User" msgstr "Пользователь" -#: source/ubl-strings.h:180 source/ubl-strings.h:181 +#: source/ubl-strings.h:180 source/ubl-strings.h:181 source/ubl-strings.h:182 msgid "Home directory" msgstr "Домашний каталог" -#: source/ubl-strings.h:181 source/ubl-strings.h:182 +#: source/ubl-strings.h:181 source/ubl-strings.h:182 source/ubl-strings.h:183 msgid "Delete home directory" msgstr "Удалить домашний каталог" -#: source/ubl-strings.h:125 source/ubl-strings.h:126 +#: source/ubl-strings.h:125 source/ubl-strings.h:126 source/ubl-strings.h:127 msgid "Login must not start with digit" msgstr "Логин не должен начинаться с цифры" -#: source/ubl-strings.h:91 +#: source/ubl-strings.h:91 source/ubl-strings.h:92 #, fuzzy msgid "Group name must not start with digit" msgstr "Имя группы не должно начинаться с цифры" + +#: source/ubl-strings.h:75 +msgid "" +"Are you sure want to encrypt all passwords?\n" +"This action can't be undone." +msgstr "Вы уверены что хотите зашифровать все пароли?\n" +"Это действие нельзя отменить."