diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 3b9c3e9..529b412 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -72,6 +72,8 @@ void yon_interface_update(main_window *widgets){ login = yon_char_divide_search(parameters[0],"=",-1); login[strlen(login)-1]='\0'; } + if(!strcmp(parameters[0],"x")) + parameters[0]=""; if (parameters_size>1&&!strcmp(parameters[1],"x")) parameters[1]=AUTOMATICALLY_LABEL; if (parameters_size>2&&!strcmp(parameters[2],"x")) parameters[2]=login; char *pars = ""; @@ -491,17 +493,15 @@ void yon_delete_confirmation_open(main_window *widgets){ for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->UsersList),&iter)){ char *name,*username,*parameters,*homedir=NULL; gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,3,&username,6,¶meters,-1); - int found = yon_char_parsed_check_exist(main_config.users,main_config.users_size,yon_char_append(name,":")); - - if (found>-1){ - int parsed_size; - config_str parsed = yon_char_parse(main_config.users[found],&parsed_size,":"); - if (parsed_size>5&&!yon_char_is_empty(parsed[5])&&strcmp(parsed[5],"x")){ - - homedir = yon_char_new(parsed[5]); - } - yon_char_parsed_free(parsed,parsed_size); + int size; + config_str home = yon_config_load(get_home_command(name),&size); + if (size>0&&!yon_char_is_empty(home[0])){ + if (home[0][strlen(home[0])-1]=='\n') home[0][strlen(home[0])-1]='\0'; + homedir=home[0]; + } else { + homedir = NULL; } + int status=0; if (homedir) status=1; gtk_list_store_append(window->list,&itar); @@ -865,7 +865,8 @@ void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *self, main_w void on_user_choose(GtkWidget *self, GtkEntry *target){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),GROUP_USERS_TITLE_LABEL); - gtk_label_set_text(GTK_LABEL(window->HeaderLabel),GROUP_USERS_TITLE_LABEL); + gtk_label_set_text(GTK_LABEL(window->HeaderLabel),GROUP_USERS_TITLE_LABEL); + gtk_tree_view_column_set_title(GTK_TREE_VIEW_COLUMN(window->GroupColumn),USERS_LABEL); GtkTreeIter iter, itar; char *output = (char*)gtk_entry_get_text(target); int size=0; @@ -1095,6 +1096,7 @@ ubl_settings_usergroups_group_window *yon_ubl_settings_usergroups_group_new(){ window->GroupsOkButton=yon_gtk_builder_get_widget(builder,"GroupsOkButton"); window->HeaderLabel=yon_gtk_builder_get_widget(builder,"HeaderLabel"); window->StatusCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"StatusCell")); + window->GroupColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"GroupColumn")); window->list = gtk_list_store_new(2,G_TYPE_BOOLEAN,G_TYPE_STRING); yon_window_config_custom_window_setup(GTK_WINDOW(window->GroupsWindow),"GroupWindow"); @@ -1288,7 +1290,7 @@ void yon_system_load(ubl_settings_usergroups_system_window *window){ yon_char_parsed_free(parsed_group,parsed_gr_size); } gtk_list_store_append(window->liststore1,&iter); - gtk_list_store_set(window->liststore1,&iter,1,atol(parsed[2]),2,parsed[0],3,parsed[0],4,main_group_name,5,groups_string,6,parsed[5],-1); + gtk_list_store_set(window->liststore1,&iter,1,atol(parsed[2]),2,parsed[0],3,parsed[4],4,main_group_name,5,groups_string,6,parsed[5],-1); } yon_char_parsed_free(parsed,parsed_size); } @@ -1328,19 +1330,21 @@ void on_system_update(GtkWidget *self, ubl_settings_usergroups_system_window *wi for (int i=0;i7){ + char *divided = yon_char_divide(copy,7); + if (divided){ + if (!strcmp(divided,"UID_MAX")){ + main_config.MAXUID = atol(strstr(login_defs[i],"\t")); + } + else if (!strcmp(divided,"UID_MIN")){ + main_config.MINUID = atol(strstr(login_defs[i],"\t")); + } + else if (!strcmp(divided,"GID_MAX")){ + main_config.MAXGID = atol(strstr(login_defs[i],"\t")); + } + else if (!strcmp(divided,"GID_MIN")){ + main_config.MINGID = atol(strstr(login_defs[i],"\t")); + } } } } @@ -1436,11 +1440,6 @@ void on_user_login_update(GtkWidget *self, ubl_settings_usergroups_user_window * } 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){ @@ -1468,7 +1467,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){ char *do_not_check = NULL; int samba_sync = 0; int samba_password_sync = 0; - char *deactivate = NULL; + int deactivate = 0; char *extra_options = NULL; char *useradd_boot = ""; char *useradd_shutdown = ""; @@ -1512,6 +1511,14 @@ void on_user_save(GtkWidget *self, dictionary *dict){ yon_ubl_status_highlight_incorrect(window->userPasswordEntry); return; } + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userDeactivatedCheck))){ + if (password[0]=='%'&&password[1]=='%'){ + char *temp = yon_char_replace(password,"%%","!!"); + password = yon_char_replace(temp,"!!","%%!*"); + } else { + password = yon_char_append("!*",password); + } + } } else { password=""; } @@ -1553,19 +1560,16 @@ void on_user_save(GtkWidget *self, dictionary *dict){ if (!yon_char_is_empty(password_expiration_date)){ password_expiration_date = window->expiration_unix; } - - warning_days = yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->userWarningSpin))); + + long warning_days_active = gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->userWarningSpin)); + if (warning_days_active>0) + warning_days = yon_char_from_long(warning_days_active); int no_activity_days_active = gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->userActivitySpin)); if (no_activity_days_active>0){ no_activity_days = yon_char_from_long(no_activity_days_active); } - int force_at_next_login_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userForceChangeCheck)); - if (force_at_next_login_active){ - - } - 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); @@ -1577,8 +1581,6 @@ 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); - } 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 = ""; @@ -1613,7 +1615,20 @@ void on_user_save(GtkWidget *self, dictionary *dict){ if (!window->old_password||window->old_password&&strcmp(window->old_password,password)){ time_t t = time(NULL); struct tm tm = *localtime(&t); - password_changed_date = yon_char_unite(yon_char_from_int(1900+tm.tm_year),"-",yon_char_from_int(tm.tm_mon+1),"-",yon_char_from_int(tm.tm_mday),NULL); + char *month = yon_char_from_int(tm.tm_mon+1); + if (strlen(month)==1){ + month=yon_char_append("0",month); + } + char *day = yon_char_from_int(tm.tm_mday); + if (strlen(day)==1){ + day=yon_char_append("0",day); + } + password_changed_date = yon_char_unite(yon_char_from_int(1900+tm.tm_year),"-",month,"-",day,NULL); + } + + int force_at_next_login_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userForceChangeCheck)); + if (force_at_next_login_active){ + password_changed_date = "0"; } int useradd_boot_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UseraddBootCheck)); @@ -1801,8 +1816,6 @@ void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *w 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 = ""; @@ -1823,7 +1836,8 @@ void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *w } else { main_group = ""; } - char *final_string = yon_char_unite(yon_char_return_if_exist(user_home,""), + char *final_string = user_home; + final_string = yon_char_unite(!yon_char_is_empty(final_string)?" ":"", yon_char_return_if_exist(user_shell,""), !yon_char_is_empty(user_shell)?" ":"", yon_char_return_if_exist(create_system_user,""), @@ -2008,12 +2022,14 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ if (parameter_string[0]=='\"') yon_char_divide(parameter_string,0); if (parameter_string[strlen(parameter_string)-1]=='\"') parameter_string[strlen(parameter_string)-1]='\0'; config_str parameters = yon_char_parse(parameter_string,&parsed_size,":"); + if(!strcmp(parameters[0],"x")) + parameters[0]=""; 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]:""); window->old_username=name; if (parsed_size>1){ - if (strcmp(parameters[1],"x")){ + if (parsed_size>1&&!strcmp(parameters[1],"x")||parsed_size<=1||strcmp(parameters[1],"")){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0); gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry), parsed_size>1?parameters[1]:""); } @@ -2065,12 +2081,17 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ } // gtk_entry_set_text(GTK_ENTRY(window->), parsed_size>4?parameters[4]:""); } + if (parsed_size>5){ window->old_password=parameters[5]; if (strcmp(parameters[5],"x")&&strcmp(parameters[5],"")){ + if (strstr(parameters[5],"!*")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userDeactivatedCheck),1); + } + yon_char_divide(strstr(parameters[5],"!*"),1); 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); @@ -2392,6 +2413,8 @@ main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets); g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets); + yon_rmb_menu_setup(widgets->UsersTree,EDIT_LABEL,edit_icon_name,G_CALLBACK(on_main_edit),widgets,REMOVE_LABEL,delete_icon_name,G_CALLBACK(on_main_delete),widgets,NULL); + yon_rmb_menu_setup(widgets->GroupsTree,EDIT_LABEL,edit_icon_name,G_CALLBACK(on_main_edit),widgets,REMOVE_LABEL,delete_icon_name,G_CALLBACK(on_main_delete),widgets,NULL); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->UsersTree)); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->GroupsTree)); diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index c3ef689..f013345 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -51,7 +51,7 @@ #define shadow_path "/etc/shadow" #define uid_path "/etc/login.defs" #define password_limits_path "/etc/security/pwquiality.conf" -#define get_home_command "getent passwd "$USER" | cut -d: -f6" +#define get_home_command(target) yon_char_unite("getent passwd \"",target,"\" | cut -d: -f6",NULL) #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" @@ -65,6 +65,9 @@ #define USERSHADOW_SYNC(user) yon_char_unite("USERSHADOW_SYNC[",user,"]",NULL) #define GROUPADD_SYNC(user) yon_char_unite("GROUPADD_SYNC[",user,"]",NULL) +#define edit_icon_name "com.ublinux.ubl-settings-usergroups.edit-symbolic" +#define delete_icon_name "com.ublinux.ubl-settings-usergroups.trash-symbolic" + #define password_hash_get_command(passwd) yon_char_append("mkpasswd2 ",passwd) typedef char* string; @@ -218,6 +221,7 @@ typedef struct{ GtkWidget *GroupsOkButton; GtkWidget *HeaderLabel; GtkCellRenderer *StatusCell; + GtkTreeViewColumn *GroupColumn; } ubl_settings_usergroups_group_window; typedef struct{ diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 7bcb09d..e48cd47 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -73,6 +73,7 @@ #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.") +#define ENCRYPT_TOOLTIP_LABEL _("Encrypt all unencrypted passwords at global configuration") //ubl-settings-usergroups-group-creation.glade #define CONFIGURE_GROUP_TITLE_LABEL _("Configure group") diff --git a/ubl-settings-usergroups-additional-settings.glade b/ubl-settings-usergroups-additional-settings.glade index 29db0df..85b8682 100644 --- a/ubl-settings-usergroups-additional-settings.glade +++ b/ubl-settings-usergroups-additional-settings.glade @@ -336,6 +336,7 @@ True True True + Encrypt all unencrypted passwords at global configuration end image5 diff --git a/ubl-settings-usergroups-group.glade b/ubl-settings-usergroups-group.glade index bb33aa9..417dfd4 100644 --- a/ubl-settings-usergroups-group.glade +++ b/ubl-settings-usergroups-group.glade @@ -48,6 +48,7 @@ + Chosen @@ -57,7 +58,7 @@ - + Group diff --git a/ubl-settings-usergroups-system.glade b/ubl-settings-usergroups-system.glade index aaeb2e6..f7cf5ac 100644 --- a/ubl-settings-usergroups-system.glade +++ b/ubl-settings-usergroups-system.glade @@ -141,7 +141,7 @@ True fixed 50 - Blocked + Disabled diff --git a/ubl-settings-usergroups.glade b/ubl-settings-usergroups.glade index e1674cf..60b4421 100644 --- a/ubl-settings-usergroups.glade +++ b/ubl-settings-usergroups.glade @@ -330,6 +330,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. fixed 10 Disabled + 0 @@ -388,6 +389,7 @@ name 10 Main group + 4 @@ -403,9 +405,10 @@ group 10 Additional groups + 5 - word + word-char 150 @@ -421,6 +424,7 @@ groups 10 Additional parameters + 6 word @@ -438,6 +442,7 @@ parameters 10 Password status + 7 @@ -529,8 +534,11 @@ name 10 Group users + 2 - + + 150 + 2 @@ -544,6 +552,7 @@ users 10 Additional parameters + 3 @@ -558,6 +567,7 @@ parameters 10 Password status + 4 diff --git a/ubl-settings-usergroups.pot b/ubl-settings-usergroups.pot index adbd9a1..3356d69 100644 --- a/ubl-settings-usergroups.pot +++ b/ubl-settings-usergroups.pot @@ -53,7 +53,7 @@ msgstr "" msgid "UID" msgstr "" -#: source/ubl-strings.h:14 source/ubl-strings.h:84 +#: source/ubl-strings.h:14 source/ubl-strings.h:85 msgid "Login" msgstr "" @@ -211,7 +211,7 @@ msgstr "" msgid "Set a password" msgstr "" -#: source/ubl-strings.h:60 source/ubl-strings.h:87 +#: source/ubl-strings.h:60 source/ubl-strings.h:88 msgid "Encrypted" msgstr "" @@ -229,382 +229,386 @@ msgid "" "This action can't be undone." msgstr "" -#: source/ubl-strings.h:78 -msgid "Configure group" +#: source/ubl-strings.h:76 +msgid "Encrypt all unencrypted passwords at global configuration" msgstr "" #: source/ubl-strings.h:79 -msgid "Add group" +msgid "Configure group" msgstr "" #: source/ubl-strings.h:80 -msgid "Group id:" +msgid "Add group" msgstr "" #: source/ubl-strings.h:81 -msgid "Group name:" +msgid "Group id:" msgstr "" #: source/ubl-strings.h:82 -msgid "Group users:" +msgid "Group name:" msgstr "" #: source/ubl-strings.h:83 +msgid "Group users:" +msgstr "" + +#: source/ubl-strings.h:84 msgid "Automatically" msgstr "" -#: source/ubl-strings.h:85 +#: source/ubl-strings.h:86 msgid "Create group with ununique GID" msgstr "" -#: source/ubl-strings.h:86 +#: source/ubl-strings.h:87 msgid "Create system group" msgstr "" -#: source/ubl-strings.h:88 +#: source/ubl-strings.h:89 msgid "Additional configuration" msgstr "" -#: source/ubl-strings.h:89 +#: source/ubl-strings.h:90 msgid "Group configuration synchronization" msgstr "" -#: source/ubl-strings.h:90 +#: source/ubl-strings.h:91 msgid "When shutting down the system, save the group into the configuration" msgstr "" -#: source/ubl-strings.h:91 +#: source/ubl-strings.h:92 msgid "Group administrators:" msgstr "" -#: source/ubl-strings.h:92 +#: source/ubl-strings.h:93 msgid "Group name must not start with digit" msgstr "" -#: source/ubl-strings.h:95 +#: source/ubl-strings.h:96 msgid "Default groups" msgstr "" -#: source/ubl-strings.h:96 +#: source/ubl-strings.h:97 msgid "Main group" msgstr "" -#: source/ubl-strings.h:97 +#: source/ubl-strings.h:98 msgid "Additional groups" msgstr "" -#: source/ubl-strings.h:98 +#: source/ubl-strings.h:99 msgid "Choose groups" msgstr "" -#: source/ubl-strings.h:99 +#: source/ubl-strings.h:100 msgid "Choose users" msgstr "" -#: source/ubl-strings.h:102 +#: source/ubl-strings.h:103 msgid "System users and groups" msgstr "" -#: source/ubl-strings.h:103 +#: source/ubl-strings.h:104 msgid "Disabled" msgstr "" -#: source/ubl-strings.h:104 +#: source/ubl-strings.h:105 msgid "Username" msgstr "" -#: source/ubl-strings.h:105 +#: source/ubl-strings.h:106 msgid "" "Primary\n" "group" msgstr "" -#: source/ubl-strings.h:106 +#: source/ubl-strings.h:107 msgid "" "Home\n" "directory" msgstr "" -#: source/ubl-strings.h:107 source/ubl-strings.h:113 +#: source/ubl-strings.h:108 source/ubl-strings.h:114 msgid "Group" msgstr "" -#: source/ubl-strings.h:108 +#: source/ubl-strings.h:109 msgid "Update the system users and groups list" msgstr "" -#: source/ubl-strings.h:109 +#: source/ubl-strings.h:110 msgid "Toggle system groups and users" msgstr "" -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:112 msgid "Password mismatch" msgstr "" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:113 msgid "Password must be at least" msgstr "" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:113 msgid "characters" msgstr "" -#: source/ubl-strings.h:114 +#: source/ubl-strings.h:115 msgid "" "Days until\n" "warning" msgstr "" -#: source/ubl-strings.h:115 +#: source/ubl-strings.h:116 msgid "" "Days\n" "without activity" msgstr "" -#: source/ubl-strings.h:116 +#: source/ubl-strings.h:117 msgid "" "Shell\n" "path" msgstr "" -#: source/ubl-strings.h:117 +#: source/ubl-strings.h:118 msgid "" "Password has\n" "been changed" msgstr "" -#: source/ubl-strings.h:118 +#: source/ubl-strings.h:119 msgid "" "Expiration\n" "date" msgstr "" -#: source/ubl-strings.h:119 +#: source/ubl-strings.h:120 msgid "" "Password change\n" "interval (min)" msgstr "" -#: source/ubl-strings.h:120 +#: source/ubl-strings.h:121 msgid "" "Password change\n" "interval (max)" msgstr "" -#: source/ubl-strings.h:123 +#: source/ubl-strings.h:124 msgid "Add user" msgstr "" -#: source/ubl-strings.h:124 +#: source/ubl-strings.h:125 msgid "Configure user" msgstr "" -#: source/ubl-strings.h:125 +#: source/ubl-strings.h:126 msgid "Set" msgstr "" -#: source/ubl-strings.h:126 +#: source/ubl-strings.h:127 msgid "Empty important field" msgstr "" -#: source/ubl-strings.h:127 +#: source/ubl-strings.h:128 msgid "Login must not start with digit" msgstr "" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:129 msgid "Loading has failed" msgstr "" -#: source/ubl-strings.h:129 +#: source/ubl-strings.h:130 msgid "Login name" msgstr "" -#: source/ubl-strings.h:130 +#: source/ubl-strings.h:131 msgid "Additional groups:" msgstr "" -#: source/ubl-strings.h:131 +#: source/ubl-strings.h:132 msgid "Password configuration" msgstr "" -#: source/ubl-strings.h:132 +#: source/ubl-strings.h:133 msgid "Password has been changed:" msgstr "" -#: source/ubl-strings.h:133 +#: source/ubl-strings.h:134 msgid "expiration date:" msgstr "" -#: source/ubl-strings.h:134 +#: source/ubl-strings.h:135 msgid "Password change interval: minimum" msgstr "" -#: source/ubl-strings.h:135 +#: source/ubl-strings.h:136 msgid "days, maximum" msgstr "" -#: source/ubl-strings.h:136 +#: source/ubl-strings.h:137 msgid "days" msgstr "" -#: source/ubl-strings.h:137 +#: source/ubl-strings.h:138 msgid "Days until warning:" msgstr "" -#: source/ubl-strings.h:138 +#: source/ubl-strings.h:139 msgid "Days without activity:" msgstr "" -#: source/ubl-strings.h:139 +#: source/ubl-strings.h:140 msgid "Force change at next login" msgstr "" -#: source/ubl-strings.h:140 +#: source/ubl-strings.h:141 msgid "User shell:" msgstr "" -#: source/ubl-strings.h:141 +#: source/ubl-strings.h:142 msgid "Home directory:" msgstr "" -#: source/ubl-strings.h:142 +#: source/ubl-strings.h:143 msgid "Don't set" msgstr "" -#: source/ubl-strings.h:143 +#: source/ubl-strings.h:144 msgid "Create system user" msgstr "" -#: source/ubl-strings.h:144 +#: source/ubl-strings.h:145 msgid "Create user with ununique (repeating) UID" msgstr "" -#: source/ubl-strings.h:145 +#: source/ubl-strings.h:146 msgid "Do not check login for compliance with character rules" msgstr "" -#: source/ubl-strings.h:146 +#: source/ubl-strings.h:147 msgid "Temporary deactivation" msgstr "" -#: source/ubl-strings.h:147 +#: source/ubl-strings.h:148 msgid "Save" msgstr "" -#: source/ubl-strings.h:148 +#: source/ubl-strings.h:149 msgid "login_name" msgstr "" -#: source/ubl-strings.h:149 +#: source/ubl-strings.h:150 msgid "group_name" msgstr "" -#: source/ubl-strings.h:150 +#: source/ubl-strings.h:151 msgid "User name" msgstr "" -#: source/ubl-strings.h:151 +#: source/ubl-strings.h:152 msgid "Sync user" msgstr "" -#: source/ubl-strings.h:152 +#: source/ubl-strings.h:153 msgid "Sync user with password" msgstr "" -#: source/ubl-strings.h:153 +#: source/ubl-strings.h:154 msgid "Encrypt all passwords" msgstr "" -#: source/ubl-strings.h:155 +#: source/ubl-strings.h:156 msgid "User configuration" msgstr "" -#: source/ubl-strings.h:156 +#: source/ubl-strings.h:157 msgid "User configuration synchronization" msgstr "" -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:158 msgid "During system startup, load the user from the configuration" msgstr "" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:159 msgid "When shutting down the system, save the user into the configuration" msgstr "" -#: source/ubl-strings.h:159 +#: source/ubl-strings.h:160 msgid "User password configuration syncronization" msgstr "" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:161 msgid "" "During system startup, load the user's parameters from the configuration" msgstr "" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:162 msgid "" "When shutting down the system, save the user's parameters into the " "configuration" msgstr "" -#: source/ubl-strings.h:163 +#: source/ubl-strings.h:164 msgid "Main" msgstr "" -#: source/ubl-strings.h:164 +#: source/ubl-strings.h:165 msgid "Additional" msgstr "" -#: source/ubl-strings.h:165 +#: source/ubl-strings.h:166 msgid "Syncronization" msgstr "" -#: source/ubl-strings.h:168 +#: source/ubl-strings.h:169 msgid "Repeat password:" msgstr "" -#: source/ubl-strings.h:169 +#: source/ubl-strings.h:170 msgid "Password hash:" msgstr "" -#: source/ubl-strings.h:170 +#: source/ubl-strings.h:171 msgid "Do not encrypt password" msgstr "" -#: source/ubl-strings.h:173 +#: source/ubl-strings.h:174 msgid "Additional configuration of service parameter saving" msgstr "" -#: source/ubl-strings.h:174 +#: source/ubl-strings.h:175 msgid "" "At every system shutdown save changes of (root)/var/lib/samba\n" "into (hd)/ublinux-data/rootcopy" msgstr "" -#: source/ubl-strings.h:175 +#: source/ubl-strings.h:176 msgid "For system save mode \"Sandbox\"" msgstr "" -#: source/ubl-strings.h:178 +#: source/ubl-strings.h:179 msgid "User deletion" msgstr "" -#: source/ubl-strings.h:179 +#: source/ubl-strings.h:180 msgid "Confirm user(-s) deletion:" msgstr "" -#: source/ubl-strings.h:180 +#: source/ubl-strings.h:181 msgid "Chosen" msgstr "" -#: source/ubl-strings.h:181 +#: source/ubl-strings.h:182 msgid "User" msgstr "" -#: source/ubl-strings.h:182 +#: source/ubl-strings.h:183 msgid "Home directory" msgstr "" -#: source/ubl-strings.h:183 +#: source/ubl-strings.h:184 msgid "Delete home directory" msgstr "" diff --git a/ubl-settings-usergroups_ru.po b/ubl-settings-usergroups_ru.po index f0d537e..7e4f282 100644 --- a/ubl-settings-usergroups_ru.po +++ b/ubl-settings-usergroups_ru.po @@ -53,7 +53,7 @@ msgstr "Алгоритм хэширования пароля:" msgid "UID" msgstr "UID" -#: source/ubl-strings.h:14 source/ubl-strings.h:84 +#: source/ubl-strings.h:14 source/ubl-strings.h:85 msgid "Login" msgstr "Логин" @@ -225,7 +225,7 @@ msgstr "Пароль не требуется" msgid "Set a password" msgstr "Задать пароль" -#: source/ubl-strings.h:60 source/ubl-strings.h:87 +#: source/ubl-strings.h:60 source/ubl-strings.h:88 msgid "Encrypted" msgstr "Зашифрован" @@ -245,92 +245,95 @@ msgstr "" "Вы уверены что хотите зашифровать все пароли?\n" "Это действие нельзя отменить." -#: source/ubl-strings.h:78 +#: source/ubl-strings.h:76 +msgid "Encrypt all unencrypted passwords at global configuration" +msgstr "Зашифровать все незашифрованные пароли в глобальной конфигурации" + +#: source/ubl-strings.h:79 msgid "Configure group" msgstr "Редактировать группу" -#: source/ubl-strings.h:79 +#: source/ubl-strings.h:80 msgid "Add group" msgstr "Добавить группу" -#: source/ubl-strings.h:80 +#: source/ubl-strings.h:81 msgid "Group id:" msgstr "ID Группы:" -#: source/ubl-strings.h:81 +#: source/ubl-strings.h:82 msgid "Group name:" msgstr "Имя группы:" -#: source/ubl-strings.h:82 +#: source/ubl-strings.h:83 msgid "Group users:" msgstr "Пользователи группы:" -#: source/ubl-strings.h:83 +#: source/ubl-strings.h:84 msgid "Automatically" msgstr "Автоматически" -#: source/ubl-strings.h:85 +#: source/ubl-strings.h:86 msgid "Create group with ununique GID" msgstr "Создать группу с повторяющимися (не уникальными) GID" -#: source/ubl-strings.h:86 +#: source/ubl-strings.h:87 msgid "Create system group" msgstr "Создать системную группу" -#: source/ubl-strings.h:88 +#: source/ubl-strings.h:89 msgid "Additional configuration" msgstr "Дополнительные настройки" -#: source/ubl-strings.h:89 +#: source/ubl-strings.h:90 msgid "Group configuration synchronization" msgstr "Синхронизация настроек группы" -#: source/ubl-strings.h:90 +#: source/ubl-strings.h:91 msgid "When shutting down the system, save the group into the configuration" msgstr "При завершении работы системы сохранить группу в конфигурацию" -#: source/ubl-strings.h:91 +#: source/ubl-strings.h:92 msgid "Group administrators:" msgstr "Администраторы группы:" -#: source/ubl-strings.h:92 -#, fuzzy +#: source/ubl-strings.h:93 msgid "Group name must not start with digit" msgstr "Имя группы не должно начинаться с цифры" -#: source/ubl-strings.h:95 +#: source/ubl-strings.h:96 msgid "Default groups" msgstr "Группы пользователей по умолчанию" -#: source/ubl-strings.h:96 +#: source/ubl-strings.h:97 msgid "Main group" msgstr "Основная группа" -#: source/ubl-strings.h:97 +#: source/ubl-strings.h:98 msgid "Additional groups" msgstr "Дополнительные группы" -#: source/ubl-strings.h:98 +#: source/ubl-strings.h:99 msgid "Choose groups" msgstr "Выбрать группы" -#: source/ubl-strings.h:99 +#: source/ubl-strings.h:100 msgid "Choose users" msgstr "Выбрать пользователей" -#: source/ubl-strings.h:102 +#: source/ubl-strings.h:103 msgid "System users and groups" msgstr "Пользователи и группы в системе" -#: source/ubl-strings.h:103 +#: source/ubl-strings.h:104 msgid "Disabled" msgstr "Отключен" -#: source/ubl-strings.h:104 +#: source/ubl-strings.h:105 msgid "Username" msgstr "Имя пользователя" -#: source/ubl-strings.h:105 +#: source/ubl-strings.h:106 msgid "" "Primary\n" "group" @@ -338,7 +341,7 @@ msgstr "" "Основная\n" "группа" -#: source/ubl-strings.h:106 +#: source/ubl-strings.h:107 msgid "" "Home\n" "directory" @@ -346,31 +349,31 @@ msgstr "" "Домашний\n" "каталог" -#: source/ubl-strings.h:107 source/ubl-strings.h:113 +#: source/ubl-strings.h:108 source/ubl-strings.h:114 msgid "Group" msgstr "Группа" -#: source/ubl-strings.h:108 +#: source/ubl-strings.h:109 msgid "Update the system users and groups list" msgstr "Обновить список пользователей и групп системы" -#: source/ubl-strings.h:109 +#: source/ubl-strings.h:110 msgid "Toggle system groups and users" msgstr "Переключить видимость системных пользователей и групп" -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:112 msgid "Password mismatch" msgstr "Несовпадение паролей" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:113 msgid "Password must be at least" msgstr "Пароль должен состоять из как минимум" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:113 msgid "characters" msgstr "символов" -#: source/ubl-strings.h:114 +#: source/ubl-strings.h:115 msgid "" "Days until\n" "warning" @@ -378,7 +381,7 @@ msgstr "" "Дней до\n" "предупреждения" -#: source/ubl-strings.h:115 +#: source/ubl-strings.h:116 msgid "" "Days\n" "without activity" @@ -386,7 +389,7 @@ msgstr "" "Дней без\n" "активности" -#: source/ubl-strings.h:116 +#: source/ubl-strings.h:117 msgid "" "Shell\n" "path" @@ -394,7 +397,7 @@ msgstr "" "Путь до\n" "оболочки" -#: source/ubl-strings.h:117 +#: source/ubl-strings.h:118 msgid "" "Password has\n" "been changed" @@ -402,7 +405,7 @@ msgstr "" "Пароль\n" "изменён" -#: source/ubl-strings.h:118 +#: source/ubl-strings.h:119 msgid "" "Expiration\n" "date" @@ -410,7 +413,7 @@ msgstr "" "Дата\n" "устаревания" -#: source/ubl-strings.h:119 +#: source/ubl-strings.h:120 msgid "" "Password change\n" "interval (min)" @@ -418,7 +421,7 @@ msgstr "" "Интервал смены\n" "пароля (мин.)" -#: source/ubl-strings.h:120 +#: source/ubl-strings.h:121 msgid "" "Password change\n" "interval (max)" @@ -426,191 +429,195 @@ msgstr "" "Интервал смены\n" "пароля (макс.)" -#: source/ubl-strings.h:123 +#: source/ubl-strings.h:124 msgid "Add user" msgstr "Добавить пользователя" -#: source/ubl-strings.h:124 +#: source/ubl-strings.h:125 msgid "Configure user" msgstr "Редактировать пользователя" -#: source/ubl-strings.h:125 +#: source/ubl-strings.h:126 msgid "Set" msgstr "Задать" -#: source/ubl-strings.h:126 +#: source/ubl-strings.h:127 msgid "Empty important field" msgstr "Пустое важное поле" -#: source/ubl-strings.h:127 +#: source/ubl-strings.h:128 msgid "Login must not start with digit" msgstr "Логин не должен начинаться с цифры" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:129 msgid "Loading has failed" msgstr "Ошибка загрузки" -#: source/ubl-strings.h:129 +#: source/ubl-strings.h:130 msgid "Login name" msgstr "Имя логина" -#: source/ubl-strings.h:130 +#: source/ubl-strings.h:131 msgid "Additional groups:" msgstr "Дополнительные группы:" -#: source/ubl-strings.h:131 +#: source/ubl-strings.h:132 msgid "Password configuration" msgstr "Конфигурация пароля" -#: source/ubl-strings.h:132 +#: source/ubl-strings.h:133 msgid "Password has been changed:" msgstr "Пароль изменён:" -#: source/ubl-strings.h:133 +#: source/ubl-strings.h:134 msgid "expiration date:" msgstr "Дата устаревания:" -#: source/ubl-strings.h:134 +#: source/ubl-strings.h:135 msgid "Password change interval: minimum" msgstr "Интервал смены пароля: минимум" -#: source/ubl-strings.h:135 +#: source/ubl-strings.h:136 msgid "days, maximum" msgstr "дней, максимум" -#: source/ubl-strings.h:136 +#: source/ubl-strings.h:137 msgid "days" msgstr "дней" -#: source/ubl-strings.h:137 +#: source/ubl-strings.h:138 msgid "Days until warning:" msgstr "Дней до предупреждения:" -#: source/ubl-strings.h:138 +#: source/ubl-strings.h:139 msgid "Days without activity:" msgstr "Дней без активности:" -#: source/ubl-strings.h:139 +#: source/ubl-strings.h:140 msgid "Force change at next login" msgstr "Принудительно сменить при следующем входе в систему" -#: source/ubl-strings.h:140 +#: source/ubl-strings.h:141 msgid "User shell:" msgstr "Оболочка пользователя:" -#: source/ubl-strings.h:141 +#: source/ubl-strings.h:142 msgid "Home directory:" msgstr "Домашний каталог:" -#: source/ubl-strings.h:142 +#: source/ubl-strings.h:143 msgid "Don't set" msgstr "Не создавать" -#: source/ubl-strings.h:143 +#: source/ubl-strings.h:144 msgid "Create system user" msgstr "Создать системного пользователя" -#: source/ubl-strings.h:144 +#: source/ubl-strings.h:145 msgid "Create user with ununique (repeating) UID" msgstr "Создать пользователя с повторяющимися (не уникальными) UID" -#: source/ubl-strings.h:145 +#: source/ubl-strings.h:146 msgid "Do not check login for compliance with character rules" msgstr "Не проверять логин на несоответствие правилам использования символов" -#: source/ubl-strings.h:146 +#: source/ubl-strings.h:147 msgid "Temporary deactivation" msgstr "Временное отключение учётной записи" -#: source/ubl-strings.h:147 +#: source/ubl-strings.h:148 msgid "Save" msgstr "Сохранить" -#: source/ubl-strings.h:148 +#: source/ubl-strings.h:149 msgid "login_name" msgstr "Имя_логина" -#: source/ubl-strings.h:149 +#: source/ubl-strings.h:150 msgid "group_name" msgstr "Имя_группы" -#: source/ubl-strings.h:150 +#: source/ubl-strings.h:151 msgid "User name" msgstr "Имя пользователя" -#: source/ubl-strings.h:151 +#: source/ubl-strings.h:152 msgid "Sync user" msgstr "Синхронизировать пользователя" -#: source/ubl-strings.h:152 +#: source/ubl-strings.h:153 msgid "Sync user with password" msgstr "Синхронизировать пользователя с паролем" -#: source/ubl-strings.h:153 +#: source/ubl-strings.h:154 msgid "Encrypt all passwords" msgstr "Зашифровать все пароли" -#: source/ubl-strings.h:155 +#: source/ubl-strings.h:156 msgid "User configuration" msgstr "Настройка пользователя" -#: source/ubl-strings.h:156 +#: source/ubl-strings.h:157 msgid "User configuration synchronization" msgstr "Синхронизация настроек пользователя" -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:158 msgid "During system startup, load the user from the configuration" -msgstr "При загрузке системы загрузить пользователя из конфигурации" +msgstr "" +"При запуске операционной системы применять настройки пользователя из " +"конфигурации" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:159 msgid "When shutting down the system, save the user into the configuration" -msgstr "При завершении работы системы сохранить пользователя в конфигурацию" +msgstr "" +"При завершении работы операционной системы сохранить настройки пользователя " +"в конфигурацию" -#: source/ubl-strings.h:159 +#: source/ubl-strings.h:160 msgid "User password configuration syncronization" msgstr "Синхронизация настроек пароля пользователя" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:161 msgid "" "During system startup, load the user's parameters from the configuration" msgstr "При загрузке системы загрузить параметры пользователя из конфигурации" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:162 msgid "" "When shutting down the system, save the user's parameters into the " "configuration" msgstr "" "При завершении работы системы сохранить параметры пользователя в конфигурацию" -#: source/ubl-strings.h:163 +#: source/ubl-strings.h:164 msgid "Main" msgstr "Основные" -#: source/ubl-strings.h:164 +#: source/ubl-strings.h:165 msgid "Additional" msgstr "Дополнительные" -#: source/ubl-strings.h:165 +#: source/ubl-strings.h:166 msgid "Syncronization" msgstr "Синхронизация" -#: source/ubl-strings.h:168 +#: source/ubl-strings.h:169 msgid "Repeat password:" msgstr "Подтверждение пароля:" -#: source/ubl-strings.h:169 +#: source/ubl-strings.h:170 msgid "Password hash:" msgstr "Хэш пароля:" -#: source/ubl-strings.h:170 +#: source/ubl-strings.h:171 msgid "Do not encrypt password" msgstr "Не шифровать пароль" -#: source/ubl-strings.h:173 +#: source/ubl-strings.h:174 msgid "Additional configuration of service parameter saving" msgstr "Дополнительные настройки сохранения параметров сервисов" -#: source/ubl-strings.h:174 +#: source/ubl-strings.h:175 msgid "" "At every system shutdown save changes of (root)/var/lib/samba\n" "into (hd)/ublinux-data/rootcopy" @@ -618,31 +625,31 @@ msgstr "" "При каждом завершении работы ОС сохранять изменения (root)/var/lib/samba\n" "в (hd)/ublinux-data/rootcopy/" -#: source/ubl-strings.h:175 +#: source/ubl-strings.h:176 msgid "For system save mode \"Sandbox\"" msgstr "Для режима сохранения системы \"Песочница\"" -#: source/ubl-strings.h:178 +#: source/ubl-strings.h:179 msgid "User deletion" msgstr "Удаление пользователя(-лей)" -#: source/ubl-strings.h:179 +#: source/ubl-strings.h:180 msgid "Confirm user(-s) deletion:" msgstr "Подтвердите удаление пользователя (-ей):" -#: source/ubl-strings.h:180 +#: source/ubl-strings.h:181 msgid "Chosen" msgstr "Выбран" -#: source/ubl-strings.h:181 +#: source/ubl-strings.h:182 msgid "User" msgstr "Пользователь" -#: source/ubl-strings.h:182 +#: source/ubl-strings.h:183 msgid "Home directory" msgstr "Домашний каталог" -#: source/ubl-strings.h:183 +#: source/ubl-strings.h:184 msgid "Delete home directory" msgstr "Удалить домашний каталог"