master #189

Merged
asmeron merged 4 commits from YanTheKaller/ubl-settings-usergroups:master into master 11 months ago

@ -141,6 +141,7 @@ install: check uninstall
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.profile-settings-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/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.save-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.save-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.lock-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.lock-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.user-add-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv" "csv/hash_list.csv" @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/${PKGNAME}/csv" "csv/shell_list.csv"
@install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy" @install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy"

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>

After

Width:  |  Height:  |  Size: 680 B

@ -1750,7 +1750,7 @@ ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_ne
return window; return window;
} }
void yon_system_load(ubl_settings_usergroups_system_window *window){ void yon_system_load(main_window *window){
gtk_list_store_clear(window->liststore1); gtk_list_store_clear(window->liststore1);
gtk_list_store_clear(window->liststore2); gtk_list_store_clear(window->liststore2);
GtkTreeIter iter; GtkTreeIter iter;
@ -1758,15 +1758,12 @@ void yon_system_load(ubl_settings_usergroups_system_window *window){
int parsed_size; int parsed_size;
if (main_config.groups[i][strlen(main_config.groups[i])-1]=='\n') main_config.groups[i][strlen(main_config.groups[i])-1]='\0'; if (main_config.groups[i][strlen(main_config.groups[i])-1]=='\n') main_config.groups[i][strlen(main_config.groups[i])-1]='\0';
config_str parsed = yon_char_parse(main_config.groups[i],&parsed_size,":"); config_str parsed = yon_char_parse(main_config.groups[i],&parsed_size,":");
if (atoi(parsed[2])>=main_config.MINGID&&atoi(parsed[2])<=main_config.MAXGID||window->show_all==1){
gtk_list_store_append(window->liststore2,&iter); gtk_list_store_append(window->liststore2,&iter);
gtk_list_store_set(window->liststore2,&iter,0,atol(parsed[2]),1,parsed[0],2,parsed[3],-1); gtk_list_store_set(window->liststore2,&iter,0,atol(parsed[2]),1,parsed[0],2,parsed[3],-1);
}
} }
for (int i=0;i<main_config.users_size;i++){ for (int i=0;i<main_config.users_size;i++){
int parsed_size; int parsed_size;
config_str parsed = yon_char_parse(main_config.users[i],&parsed_size,":"); config_str parsed = yon_char_parse(main_config.users[i],&parsed_size,":");
if ((atoi(parsed[2])>=main_config.MINUID&&atoi(parsed[2])<=main_config.MAXUID)||window->show_all==1){
char *groups_string=""; char *groups_string="";
char *main_group_name=""; char *main_group_name="";
for (int j=0;j<main_config.groups_size;j++){ for (int j=0;j<main_config.groups_size;j++){
@ -1782,7 +1779,6 @@ void yon_system_load(ubl_settings_usergroups_system_window *window){
} }
gtk_list_store_append(window->liststore1,&iter); gtk_list_store_append(window->liststore1,&iter);
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); 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); yon_char_parsed_free(parsed,parsed_size);
} }
int shadow_size; int shadow_size;
@ -1808,18 +1804,18 @@ void yon_system_load(ubl_settings_usergroups_system_window *window){
} }
} }
void on_mode_changed(GtkWidget *self, ubl_settings_usergroups_system_window *window){ // void on_mode_changed(GtkWidget *self, main_window *window){
Review

Закомментированный блок кода. Если не нужен - удалить.

Закомментированный блок кода. Если не нужен - удалить.
if (window->show_all==0){ // if (window->show_all==0){
window->show_all=1; // window->show_all=1;
gtk_style_context_add_class(gtk_widget_get_style_context(window->ToggleAllButton),"chosenOutline"); // gtk_style_context_add_class(gtk_widget_get_style_context(window->ToggleAllButton),"chosenOutline");
} else { // } else {
window->show_all=0; // window->show_all=0;
gtk_style_context_remove_class(gtk_widget_get_style_context(window->ToggleAllButton),"chosenOutline"); // gtk_style_context_remove_class(gtk_widget_get_style_context(window->ToggleAllButton),"chosenOutline");
} // }
yon_system_load(window); // yon_system_load(window);
} // }
void on_system_update(GtkWidget *self, ubl_settings_usergroups_system_window *window){ void on_system_update(GtkWidget *self, main_window *window){
main_config.groups = yon_file_open(groups_path,&main_config.groups_size); main_config.groups = yon_file_open(groups_path,&main_config.groups_size);
main_config.users = yon_file_open(users_path,&main_config.users_size); main_config.users = yon_file_open(users_path,&main_config.users_size);
@ -1870,10 +1866,8 @@ ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new(){
g_list_free(list); g_list_free(list);
gtk_window_set_title(GTK_WINDOW(window->MonitorWindow),INSPECTOR_TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->MonitorWindow),INSPECTOR_TITLE_LABEL);
g_signal_connect(G_OBJECT(window->ToggleAllButton),"clicked",G_CALLBACK(on_mode_changed),window); // g_signal_connect(G_OBJECT(window->ToggleAllButton),"clicked",G_CALLBACK(on_mode_changed),window);
Review

Комментарий.

Комментарий.
g_signal_connect(G_OBJECT(window->UpdateButton),"clicked",G_CALLBACK(on_system_update),window); g_signal_connect(G_OBJECT(window->UpdateButton),"clicked",G_CALLBACK(on_system_update),window);
yon_system_load(window);
on_system_update(NULL,window);
return window; return window;
} }
@ -1992,7 +1986,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){
for (int i=0;i<final_size;i++){ for (int i=0;i<final_size;i++){
int parsed_size; int parsed_size;
config_str parsed = yon_char_parse(final[i],&parsed_size,":"); config_str parsed = yon_char_parse(final[i],&parsed_size,":");
if (parsed_size>1&&!strcmp(parsed[2],uid_string)&&strcmp(parsed[2],window->last_uid)) found = 1; if (parsed_size>1&&!strcmp(parsed[2],uid_string)&&(!yon_char_is_empty(window->last_uid)&&strcmp(parsed[2],window->last_uid))) found = 1;
if (parsed_size) yon_char_parsed_free(parsed,parsed_size); if (parsed_size) yon_char_parsed_free(parsed,parsed_size);
} }
if (found){ if (found){
@ -2809,6 +2803,37 @@ void on_config_update(GtkWidget *self, main_window *widgets){
} else { } else {
on_config_local_load(NULL,widgets); on_config_local_load(NULL,widgets);
} }
on_system_update(NULL,widgets);
}
void on_user_sync_with_config(GtkWidget *,main_window *widgets){
int active = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook));
switch (active){
case 2:
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1);
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
char *target;
gtk_tree_model_get(model,&iter,2,&target,-1);
int size;
config_str passwd_users = yon_config_load(user_shadow_path,&size);
int active_usr = yon_char_parsed_strstr(passwd_users,size,target);
int cur_size;
if (size>-1){
config_str cur_user = yon_char_parse(passwd_users[active_usr],&cur_size,":");
char *final_user = yon_char_unite(cur_user[4],":",cur_user[5],":",cur_size>1?cur_user[1]:"",":",cur_size>2?cur_user[2]:"",":",cur_user[0],":",":",NULL);
char *final_command = yon_config_parameter_prepare_command(dull_parameter_get_command,NULL,"users",USERADD_SYNC(target));
yon_config_register(USERADD(target),final_command,final_user);
int shadow_size;
config_str shadow = yon_config_load(shadow_path,&shadow_size);
}
}
break;
case 3:
break;
}
} }
int *yon_element_chosen(GtkWidget *target){ int *yon_element_chosen(GtkWidget *target){
@ -2917,19 +2942,29 @@ void on_selection_changed(GtkWidget *self, main_window *widgets){
void on_notebook_page_changed(GtkWidget *self, GtkWidget *page, int num, main_window *widgets){ void on_notebook_page_changed(GtkWidget *self, GtkWidget *page, int num, main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
if (num==0){ if (num==0){
gtk_widget_show(widgets->AddButton);
gtk_widget_show(widgets->EditButton);
gtk_widget_show(widgets->DeleteButton);
GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList); GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){
gtk_widget_set_sensitive(widgets->EditButton,1); gtk_widget_set_sensitive(widgets->EditButton,1);
} else { } else {
gtk_widget_set_sensitive(widgets->EditButton,0); gtk_widget_set_sensitive(widgets->EditButton,0);
} }
} else { } else if (num==1){
gtk_widget_show(widgets->AddButton);
gtk_widget_show(widgets->EditButton);
gtk_widget_show(widgets->DeleteButton);
GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList); GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){
gtk_widget_set_sensitive(widgets->EditButton,1); gtk_widget_set_sensitive(widgets->EditButton,1);
} else { } else {
gtk_widget_set_sensitive(widgets->EditButton,0); gtk_widget_set_sensitive(widgets->EditButton,0);
} }
} else if (num==2||num==3){
gtk_widget_hide(widgets->AddButton);
gtk_widget_hide(widgets->EditButton);
gtk_widget_hide(widgets->DeleteButton);
} }
} }
@ -2965,8 +3000,12 @@ main_window *yon_main_window_complete(main_window *widgets){
widgets->CacheAlgList=GTK_LIST_STORE(gtk_builder_get_object(builder,"CacheAlgList")); widgets->CacheAlgList=GTK_LIST_STORE(gtk_builder_get_object(builder,"CacheAlgList"));
widgets->GroupsList=GTK_LIST_STORE(gtk_builder_get_object(builder,"GroupsList")); widgets->GroupsList=GTK_LIST_STORE(gtk_builder_get_object(builder,"GroupsList"));
widgets->UsersList=GTK_LIST_STORE(gtk_builder_get_object(builder,"UsersList")); widgets->UsersList=GTK_LIST_STORE(gtk_builder_get_object(builder,"UsersList"));
widgets->liststore1=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
widgets->liststore2=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore2"));
widgets->PlugBox=yon_gtk_builder_get_widget(builder,"PlugBox"); widgets->PlugBox=yon_gtk_builder_get_widget(builder,"PlugBox");
widgets->button1=yon_gtk_builder_get_widget(builder,"button1"); widgets->UserAddToConfigButton=yon_gtk_builder_get_widget(builder,"UserAddToConfigButton");
widgets->SystemTree=yon_gtk_builder_get_widget(builder,"SystemTree");
widgets->SystemGroupsTree=yon_gtk_builder_get_widget(builder,"SystemGroupsTree");
widgets->button2=yon_gtk_builder_get_widget(builder,"button2"); widgets->button2=yon_gtk_builder_get_widget(builder,"button2");
widgets->button3=yon_gtk_builder_get_widget(builder,"button3"); widgets->button3=yon_gtk_builder_get_widget(builder,"button3");
widgets->AddButton=yon_gtk_builder_get_widget(builder,"AddButton"); widgets->AddButton=yon_gtk_builder_get_widget(builder,"AddButton");
@ -2988,7 +3027,7 @@ main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->DeleteButton),"clicked",G_CALLBACK(on_main_delete),widgets); g_signal_connect(G_OBJECT(widgets->DeleteButton),"clicked",G_CALLBACK(on_main_delete),widgets);
g_signal_connect(G_OBJECT(widgets->button3),"clicked",G_CALLBACK(on_standard_groups_open),widgets); g_signal_connect(G_OBJECT(widgets->button3),"clicked",G_CALLBACK(on_standard_groups_open),widgets);
g_signal_connect(G_OBJECT(widgets->button2),"clicked",G_CALLBACK(on_ubl_settings_usergroups_additional_settings_open),widgets); g_signal_connect(G_OBJECT(widgets->button2),"clicked",G_CALLBACK(on_ubl_settings_usergroups_additional_settings_open),widgets);
g_signal_connect(G_OBJECT(widgets->button1),"clicked",G_CALLBACK(on_settings_usergroups_system_open),widgets); // g_signal_connect(G_OBJECT(widgets->UserAddToConfigButton),"clicked",G_CALLBACK(on_user_sync_with_config),widgets);
Review

Комментарий.

Комментарий.
g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_config_update),widgets); g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_config_update),widgets);
g_signal_connect(G_OBJECT(widgets->SavingSettingsButton),"clicked",G_CALLBACK(on_saving_settings_open),widgets); g_signal_connect(G_OBJECT(widgets->SavingSettingsButton),"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->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
@ -3010,6 +3049,9 @@ main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->UsersTree),"button-press-event",G_CALLBACK(on_menu_open),widgets->UsersMenu); g_signal_connect(G_OBJECT(widgets->UsersTree),"button-press-event",G_CALLBACK(on_menu_open),widgets->UsersMenu);
g_signal_connect(G_OBJECT(widgets->GroupsTree),"button-press-event",G_CALLBACK(on_menu_open),widgets->GroupsMenu); g_signal_connect(G_OBJECT(widgets->GroupsTree),"button-press-event",G_CALLBACK(on_menu_open),widgets->GroupsMenu);
yon_system_load(widgets);
on_system_update(NULL,widgets);
yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size); yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size);
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->UsersTree));

@ -52,9 +52,11 @@
#define shadow_path "/etc/shadow" #define shadow_path "/etc/shadow"
#define uid_path "/etc/login.defs" #define uid_path "/etc/login.defs"
#define password_limits_path "/etc/security/pwquiality.conf" #define password_limits_path "/etc/security/pwquiality.conf"
#define get_user_info_command(target) yon_char_unite("getent passwd \"",target,"\"",NULL)
#define get_home_command(target) yon_char_unite("getent passwd \"",target,"\" | cut -d: -f6",NULL) #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 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 default_home_initiator_path "/etc/default/useradd"
#define user_shadow_path "/etc/shadow"
#define hash_list_path "/usr/share/ubl-settings-usergroups/csv/hash_list.csv" #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 shell_list_path "/usr/share/ubl-settings-usergroups/csv/shell_list.csv"
@ -168,7 +170,9 @@ typedef struct {
GtkListStore *CacheAlgList; GtkListStore *CacheAlgList;
GtkListStore *GroupsList; GtkListStore *GroupsList;
GtkListStore *UsersList; GtkListStore *UsersList;
GtkWidget *button1; GtkWidget *UserAddToConfigButton;
GtkWidget *SystemTree;
GtkWidget *SystemGroupsTree;
GtkWidget *button2; GtkWidget *button2;
GtkWidget *button3; GtkWidget *button3;
GtkWidget *AddButton; GtkWidget *AddButton;
@ -182,6 +186,8 @@ typedef struct {
rmb_menu_window *UsersMenu; rmb_menu_window *UsersMenu;
rmb_menu_window *GroupsMenu; rmb_menu_window *GroupsMenu;
GtkListStore *liststore1;
GtkListStore *liststore2;
} main_window; } main_window;

@ -207,3 +207,8 @@
#define DELETE_CONFIRMATION_USER_LABEL _("User") #define DELETE_CONFIRMATION_USER_LABEL _("User")
#define DELETE_CONFIRMATION_HOME_LABEL _("Home directory") #define DELETE_CONFIRMATION_HOME_LABEL _("Home directory")
#define DELETE_CONFIRMATION_DELETE_HOME_LABEL _("Delete home directory") #define DELETE_CONFIRMATION_DELETE_HOME_LABEL _("Delete home directory")
#define CONFIG_USERS_TAB_LABEL _("Configuration users")
#define CONFIG_GROUPS_TAB_LABEL _("Configuration groups")
#define SYSTEM_USERS_TAB_LABEL _("System users")
#define SYSTEM_GROUPS_TAB_LABEL _("System groups")

@ -80,11 +80,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.profile-settings-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups.profile-settings-symbolic</property>
</object> </object>
<object class="GtkImage" id="image12">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.settings-symbolic</property>
</object>
<object class="GtkImage" id="image13"> <object class="GtkImage" id="image13">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -105,6 +100,53 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.save-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups.save-symbolic</property>
</object> </object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.user-add-symbolic</property>
</object>
<object class="GtkListStore" id="liststore1">
<columns>
<!-- column-name gboolean1 -->
<column type="gboolean"/>
<!-- column-name gint1 -->
<column type="gint"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
<!-- column-name gchararray4 -->
<column type="gchararray"/>
<!-- column-name gchararray5 -->
<column type="gchararray"/>
<!-- column-name gchararray6 -->
<column type="gchararray"/>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray7 -->
<column type="gchararray"/>
<!-- column-name gchararray8 -->
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
<!-- column-name gchararray11 -->
<column type="gchararray"/>
<!-- column-name gchararray12 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="liststore2">
<columns>
<!-- column-name gint1 -->
<column type="gint"/>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkBox" id="PlugBox"> <object class="GtkBox" id="PlugBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -118,34 +160,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="margin-top">2</property> <property name="margin-top">2</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child>
<object class="GtkButton" id="button1">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Inspect users and groups in system</property>
<property name="image">image12</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="button2"> <object class="GtkButton" id="button2">
<property name="visible">True</property> <property name="visible">True</property>
@ -191,6 +205,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="position">4</property> <property name="position">4</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="UserAddToConfigButton">
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Additional saving configuration</property>
<property name="image">image5</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="AddButton"> <object class="GtkButton" id="AddButton">
<property name="visible">True</property> <property name="visible">True</property>
@ -205,7 +235,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">5</property> <property name="position">6</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -223,7 +253,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">6</property> <property name="position">7</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -240,7 +270,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">7</property> <property name="position">8</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -257,7 +287,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">8</property> <property name="position">9</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -268,7 +298,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">9</property> <property name="position">10</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -285,7 +315,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">10</property> <property name="position">11</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -477,7 +507,7 @@ status</property>
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Users</property> <property name="label" translatable="yes">Configuration users</property>
</object> </object>
<packing> <packing>
<property name="tab-fill">False</property> <property name="tab-fill">False</property>
@ -605,13 +635,337 @@ status</property>
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Groups</property> <property name="label" translatable="yes">Configuration groups</property>
</object> </object>
<packing> <packing>
<property name="position">1</property> <property name="position">1</property>
<property name="tab-fill">False</property> <property name="tab-fill">False</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkTreeView" id="SystemTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<property name="search-column">0</property>
<property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Locked</property>
<child>
<object class="GtkCellRendererToggle"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">UID</property>
<property name="clickable">True</property>
<property name="sort-column-id">1</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Login</property>
<property name="clickable">True</property>
<property name="sort-column-id">2</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Username</property>
<property name="clickable">True</property>
<property name="sort-column-id">3</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Primary
group</property>
<property name="clickable">True</property>
<property name="sort-column-id">4</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Additional
groups</property>
<property name="clickable">True</property>
<property name="sort-column-id">5</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">5</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="min-width">50</property>
<property name="title" translatable="yes">Home
directory</property>
<property name="clickable">True</property>
<property name="sort-column-id">6</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">6</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Shell
path</property>
<property name="clickable">True</property>
<property name="sort-column-id">7</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">7</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Password has
been changed</property>
<property name="clickable">True</property>
<property name="sort-column-id">8</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">8</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Expiration
date</property>
<property name="clickable">True</property>
<property name="sort-column-id">9</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">9</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Password change
interval (min)</property>
<property name="clickable">True</property>
<property name="sort-column-id">10</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">10</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Password change
interval (max)</property>
<property name="clickable">True</property>
<property name="sort-column-id">11</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">11</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Days until
warning</property>
<property name="clickable">True</property>
<property name="sort-column-id">12</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">12</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Days
without activity</property>
<property name="clickable">True</property>
<property name="sort-column-id">13</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">13</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System users</property>
</object>
<packing>
<property name="position">2</property>
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkTreeView" id="SystemGroupsTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore2</property>
<property name="search-column">0</property>
<property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">GID</property>
<property name="clickable">True</property>
<property name="sort-column-id">0</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Group</property>
<property name="clickable">True</property>
<property name="sort-column-id">1</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="min-width">50</property>
<property name="title" translatable="yes">Group
users</property>
<property name="clickable">True</property>
<property name="sort-column-id">2</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="position">3</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System groups</property>
</object>
<packing>
<property name="position">3</property>
<property name="tab-fill">False</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>

@ -53,7 +53,7 @@ msgstr ""
msgid "UID" msgid "UID"
msgstr "" msgstr ""
#: source/ubl-strings.h:14 source/ubl-strings.h:103 #: source/ubl-strings.h:14 source/ubl-strings.h:102
msgid "Login" msgid "Login"
msgstr "" msgstr ""
@ -175,7 +175,7 @@ msgstr ""
msgid "Inspect users and groups in system" msgid "Inspect users and groups in system"
msgstr "" msgstr ""
#: source/ubl-strings.h:46 source/ubl-strings.h:57 #: source/ubl-strings.h:46 source/ubl-strings.h:56
msgid "Additional settings" msgid "Additional settings"
msgstr "" msgstr ""
@ -203,509 +203,521 @@ msgstr ""
msgid "Additional saving configuration" msgid "Additional saving configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:58 #: source/ubl-strings.h:57
msgid "No password required" msgid "No password required"
msgstr "" msgstr ""
#: source/ubl-strings.h:59 #: source/ubl-strings.h:58
msgid "Set a password" msgid "Set a password"
msgstr "" msgstr ""
#: source/ubl-strings.h:60 source/ubl-strings.h:106 #: source/ubl-strings.h:59 source/ubl-strings.h:105
msgid "Encrypted" msgid "Encrypted"
msgstr "" msgstr ""
#: source/ubl-strings.h:61 #: source/ubl-strings.h:60
msgid "Unencrypted" msgid "Unencrypted"
msgstr "" msgstr ""
#: source/ubl-strings.h:74 #: source/ubl-strings.h:73
msgid "Accept" msgid "Accept"
msgstr "" msgstr ""
#: source/ubl-strings.h:75 #: source/ubl-strings.h:74
msgid "" msgid ""
"Are you sure want to encrypt all passwords?\n" "Are you sure want to encrypt all passwords?\n"
"This action can't be undone." "This action can't be undone."
msgstr "" msgstr ""
#: source/ubl-strings.h:76 #: source/ubl-strings.h:75
msgid "Encrypt all unencrypted passwords at global configuration" msgid "Encrypt all unencrypted passwords at global configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:77 #: source/ubl-strings.h:76
msgid "DES (Algorithm for Symmetric Encryption)" msgid "DES (Algorithm for Symmetric Encryption)"
msgstr "" msgstr ""
#: source/ubl-strings.h:78 #: source/ubl-strings.h:77
msgid "MD5 (128-bit hashing algorithm)" msgid "MD5 (128-bit hashing algorithm)"
msgstr "" msgstr ""
#: source/ubl-strings.h:79 #: source/ubl-strings.h:78
msgid "yescrypt (Cryptographic hash function)" msgid "yescrypt (Cryptographic hash function)"
msgstr "" msgstr ""
#: source/ubl-strings.h:80 #: source/ubl-strings.h:79
msgid "GOST-YESCRYPT (Design according to GOST R 34.11─2012)" msgid "GOST-YESCRYPT (Design according to GOST R 34.11─2012)"
msgstr "" msgstr ""
#: source/ubl-strings.h:81 #: source/ubl-strings.h:80
msgid "scrypt (Adaptive cryptographic key generation function)" msgid "scrypt (Adaptive cryptographic key generation function)"
msgstr "" msgstr ""
#: source/ubl-strings.h:82 #: source/ubl-strings.h:81
msgid "Blowfish (Symmetric Block Cipher Algorithm)" msgid "Blowfish (Symmetric Block Cipher Algorithm)"
msgstr "" msgstr ""
#: source/ubl-strings.h:83 #: source/ubl-strings.h:82
msgid "bcrypt (Adaptive hash function from the Blowfish family of algorithms)" msgid "bcrypt (Adaptive hash function from the Blowfish family of algorithms)"
msgstr "" msgstr ""
#: source/ubl-strings.h:84 #: source/ubl-strings.h:83
msgid "" msgid ""
"bcrypt-a (Adaptive hash function from the Blowfish family of algorithms)" "bcrypt-a (Adaptive hash function from the Blowfish family of algorithms)"
msgstr "" msgstr ""
#: source/ubl-strings.h:85 #: source/ubl-strings.h:84
msgid "SHA512 (Hash function from the SHA-2 family of algorithms)" msgid "SHA512 (Hash function from the SHA-2 family of algorithms)"
msgstr "" msgstr ""
#: source/ubl-strings.h:86 #: source/ubl-strings.h:85
msgid "SHA256 (Hash function from the SHA-2 family of algorithms)" msgid "SHA256 (Hash function from the SHA-2 family of algorithms)"
msgstr "" msgstr ""
#: source/ubl-strings.h:87 #: source/ubl-strings.h:86
msgid "Sun MD5 (Hash algorithm from Sun Microsystems)" msgid "Sun MD5 (Hash algorithm from Sun Microsystems)"
msgstr "" msgstr ""
#: source/ubl-strings.h:88 #: source/ubl-strings.h:87
msgid "MD5 Unix (Hash algorithm calls standard MD5 thousand times)" msgid "MD5 Unix (Hash algorithm calls standard MD5 thousand times)"
msgstr "" msgstr ""
#: source/ubl-strings.h:89 #: source/ubl-strings.h:88
msgid "" msgid ""
"Extended DES Crypt (Hash function from the BSDi family of DES algorithms)" "Extended DES Crypt (Hash function from the BSDi family of DES algorithms)"
msgstr "" msgstr ""
#: source/ubl-strings.h:90 #: source/ubl-strings.h:89
msgid "descrypt (Hash function from the DES family of algorithms)" msgid "descrypt (Hash function from the DES family of algorithms)"
msgstr "" msgstr ""
#: source/ubl-strings.h:91 #: source/ubl-strings.h:90
msgid "NTHash (Hash function from the NT Windows family of algorithms)" msgid "NTHash (Hash function from the NT Windows family of algorithms)"
msgstr "" msgstr ""
#: source/ubl-strings.h:93 #: source/ubl-strings.h:92
msgid "" msgid ""
"While booting the operating system, apply the settings of all users from the " "While booting the operating system, apply the settings of all users from the "
"configuration" "configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:94 #: source/ubl-strings.h:93
msgid "" msgid ""
"While shutdown, save the settings of all users with UID>=1000 to the " "While shutdown, save the settings of all users with UID>=1000 to the "
"configuration" "configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:97 #: source/ubl-strings.h:96
msgid "Configure group" msgid "Configure group"
msgstr "" msgstr ""
#: source/ubl-strings.h:98 #: source/ubl-strings.h:97
msgid "Add group" msgid "Add group"
msgstr "" msgstr ""
#: source/ubl-strings.h:99 #: source/ubl-strings.h:98
msgid "Group id:" msgid "Group id:"
msgstr "" msgstr ""
#: source/ubl-strings.h:100 #: source/ubl-strings.h:99
msgid "Group name:" msgid "Group name:"
msgstr "" msgstr ""
#: source/ubl-strings.h:101 #: source/ubl-strings.h:100
msgid "Group users:" msgid "Group users:"
msgstr "" msgstr ""
#: source/ubl-strings.h:102 #: source/ubl-strings.h:101
msgid "Automatically" msgid "Automatically"
msgstr "" msgstr ""
#: source/ubl-strings.h:104 #: source/ubl-strings.h:103
msgid "Create group with ununique GID" msgid "Create group with ununique GID"
msgstr "" msgstr ""
#: source/ubl-strings.h:105 #: source/ubl-strings.h:104
msgid "Create system group" msgid "Create system group"
msgstr "" msgstr ""
#: source/ubl-strings.h:107 #: source/ubl-strings.h:106
msgid "Additional configuration" msgid "Additional configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:108 #: source/ubl-strings.h:107
msgid "Group configuration synchronization" msgid "Group configuration synchronization"
msgstr "" msgstr ""
#: source/ubl-strings.h:109 #: source/ubl-strings.h:108
msgid "When shutting down the system, save the group into the configuration" msgid "When shutting down the system, save the group into the configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:110 #: source/ubl-strings.h:109
msgid "Group administrators:" msgid "Group administrators:"
msgstr "" msgstr ""
#: source/ubl-strings.h:111 #: source/ubl-strings.h:110
msgid "Group name must not start with digit" msgid "Group name must not start with digit"
msgstr "" msgstr ""
#: source/ubl-strings.h:114 #: source/ubl-strings.h:113
msgid "Default groups" msgid "Default groups"
msgstr "" msgstr ""
#: source/ubl-strings.h:115 #: source/ubl-strings.h:114
msgid "Main group" msgid "Main group"
msgstr "" msgstr ""
#: source/ubl-strings.h:116 #: source/ubl-strings.h:115
msgid "Additional groups" msgid "Additional groups"
msgstr "" msgstr ""
#: source/ubl-strings.h:117 #: source/ubl-strings.h:116
msgid "Choose groups" msgid "Choose groups"
msgstr "" msgstr ""
#: source/ubl-strings.h:118 #: source/ubl-strings.h:117
msgid "Choose users" msgid "Choose users"
msgstr "" msgstr ""
#: source/ubl-strings.h:121 #: source/ubl-strings.h:120
msgid "System users and groups" msgid "System users and groups"
msgstr "" msgstr ""
#: source/ubl-strings.h:122 #: source/ubl-strings.h:121
msgid "Locked" msgid "Locked"
msgstr "" msgstr ""
#: source/ubl-strings.h:123 #: source/ubl-strings.h:122
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: source/ubl-strings.h:124 #: source/ubl-strings.h:123
msgid "" msgid ""
"Primary\n" "Primary\n"
"group" "group"
msgstr "" msgstr ""
#: source/ubl-strings.h:125 #: source/ubl-strings.h:124
msgid "" msgid ""
"Home\n" "Home\n"
"directory" "directory"
msgstr "" msgstr ""
#: source/ubl-strings.h:126 source/ubl-strings.h:132 #: source/ubl-strings.h:125 source/ubl-strings.h:131
msgid "Group" msgid "Group"
msgstr "" msgstr ""
#: source/ubl-strings.h:127 #: source/ubl-strings.h:126
msgid "Update the system users and groups list" msgid "Update the system users and groups list"
msgstr "" msgstr ""
#: source/ubl-strings.h:128 #: source/ubl-strings.h:127
msgid "Toggle system groups and users" msgid "Toggle system groups and users"
msgstr "" msgstr ""
#: source/ubl-strings.h:130 #: source/ubl-strings.h:129
msgid "Password mismatch" msgid "Password mismatch"
msgstr "" msgstr ""
#: source/ubl-strings.h:131 #: source/ubl-strings.h:130
msgid "Password must be at least" msgid "Password must be at least"
msgstr "" msgstr ""
#: source/ubl-strings.h:131 #: source/ubl-strings.h:130
msgid "characters" msgid "characters"
msgstr "" msgstr ""
#: source/ubl-strings.h:133 #: source/ubl-strings.h:132
msgid "" msgid ""
"Days until\n" "Days until\n"
"warning" "warning"
msgstr "" msgstr ""
#: source/ubl-strings.h:134 #: source/ubl-strings.h:133
msgid "" msgid ""
"Days\n" "Days\n"
"without activity" "without activity"
msgstr "" msgstr ""
#: source/ubl-strings.h:135 #: source/ubl-strings.h:134
msgid "" msgid ""
"Shell\n" "Shell\n"
"path" "path"
msgstr "" msgstr ""
#: source/ubl-strings.h:136 #: source/ubl-strings.h:135
msgid "" msgid ""
"Password has\n" "Password has\n"
"been changed" "been changed"
msgstr "" msgstr ""
#: source/ubl-strings.h:137 #: source/ubl-strings.h:136
msgid "" msgid ""
"Expiration\n" "Expiration\n"
"date" "date"
msgstr "" msgstr ""
#: source/ubl-strings.h:138 #: source/ubl-strings.h:137
msgid "" msgid ""
"Password change\n" "Password change\n"
"interval (min)" "interval (min)"
msgstr "" msgstr ""
#: source/ubl-strings.h:139 #: source/ubl-strings.h:138
msgid "" msgid ""
"Password change\n" "Password change\n"
"interval (max)" "interval (max)"
msgstr "" msgstr ""
#: source/ubl-strings.h:142 #: source/ubl-strings.h:141
msgid "Add user" msgid "Add user"
msgstr "" msgstr ""
#: source/ubl-strings.h:143 #: source/ubl-strings.h:142
msgid "Configure user" msgid "Configure user"
msgstr "" msgstr ""
#: source/ubl-strings.h:144 #: source/ubl-strings.h:143
msgid "Set" msgid "Set"
msgstr "" msgstr ""
#: source/ubl-strings.h:145 #: source/ubl-strings.h:144
msgid "Empty important field" msgid "Empty important field"
msgstr "" msgstr ""
#: source/ubl-strings.h:146 #: source/ubl-strings.h:145
msgid "Login must not start with digit" msgid "Login must not start with digit"
msgstr "" msgstr ""
#: source/ubl-strings.h:147 #: source/ubl-strings.h:146
msgid "Loading has failed" msgid "Loading has failed"
msgstr "" msgstr ""
#: source/ubl-strings.h:148 #: source/ubl-strings.h:147
msgid "Login name" msgid "Login name"
msgstr "" msgstr ""
#: source/ubl-strings.h:149 #: source/ubl-strings.h:148
msgid "Additional groups:" msgid "Additional groups:"
msgstr "" msgstr ""
#: source/ubl-strings.h:150 #: source/ubl-strings.h:149
msgid "Password configuration" msgid "Password configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:151 #: source/ubl-strings.h:150
msgid "Password has been changed:" msgid "Password has been changed:"
msgstr "" msgstr ""
#: source/ubl-strings.h:152 #: source/ubl-strings.h:151
msgid "expiration date:" msgid "expiration date:"
msgstr "" msgstr ""
#: source/ubl-strings.h:153 #: source/ubl-strings.h:152
msgid "Password change interval: minimum" msgid "Password change interval: minimum"
msgstr "" msgstr ""
#: source/ubl-strings.h:154 #: source/ubl-strings.h:153
msgid "days, maximum" msgid "days, maximum"
msgstr "" msgstr ""
#: source/ubl-strings.h:155 #: source/ubl-strings.h:154
msgid "days" msgid "days"
msgstr "" msgstr ""
#: source/ubl-strings.h:156 #: source/ubl-strings.h:155
msgid "Days until warning:" msgid "Days until warning:"
msgstr "" msgstr ""
#: source/ubl-strings.h:157 #: source/ubl-strings.h:156
msgid "Days without activity:" msgid "Days without activity:"
msgstr "" msgstr ""
#: source/ubl-strings.h:158 #: source/ubl-strings.h:157
msgid "Force change at next login" msgid "Force change at next login"
msgstr "" msgstr ""
#: source/ubl-strings.h:159 #: source/ubl-strings.h:158
msgid "User shell:" msgid "User shell:"
msgstr "" msgstr ""
#: source/ubl-strings.h:160 #: source/ubl-strings.h:159
msgid "Home directory:" msgid "Home directory:"
msgstr "" msgstr ""
#: source/ubl-strings.h:161 #: source/ubl-strings.h:160
msgid "Don't set" msgid "Don't set"
msgstr "" msgstr ""
#: source/ubl-strings.h:162 #: source/ubl-strings.h:161
msgid "Create system user" msgid "Create system user"
msgstr "" msgstr ""
#: source/ubl-strings.h:163 #: source/ubl-strings.h:162
msgid "Create user with ununique (repeating) UID" msgid "Create user with ununique (repeating) UID"
msgstr "" msgstr ""
#: source/ubl-strings.h:164 #: source/ubl-strings.h:163
msgid "Do not check login for compliance with character rules" msgid "Do not check login for compliance with character rules"
msgstr "" msgstr ""
#: source/ubl-strings.h:165 #: source/ubl-strings.h:164
msgid "Temporary deactivation" msgid "Temporary deactivation"
msgstr "" msgstr ""
#: source/ubl-strings.h:166 #: source/ubl-strings.h:165
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: source/ubl-strings.h:167 #: source/ubl-strings.h:166
msgid "login_name" msgid "login_name"
msgstr "" msgstr ""
#: source/ubl-strings.h:168 #: source/ubl-strings.h:167
msgid "group_name" msgid "group_name"
msgstr "" msgstr ""
#: source/ubl-strings.h:169 #: source/ubl-strings.h:168
msgid "User name" msgid "User name"
msgstr "" msgstr ""
#: source/ubl-strings.h:170 #: source/ubl-strings.h:169
msgid "Sync user" msgid "Sync user"
msgstr "" msgstr ""
#: source/ubl-strings.h:171 #: source/ubl-strings.h:170
msgid "Sync user with password" msgid "Sync user with password"
msgstr "" msgstr ""
#: source/ubl-strings.h:172 #: source/ubl-strings.h:171
msgid "Encrypt all passwords" msgid "Encrypt all passwords"
msgstr "" msgstr ""
#: source/ubl-strings.h:174 #: source/ubl-strings.h:173
msgid "User configuration" msgid "User configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:175 #: source/ubl-strings.h:174
msgid "User configuration synchronization" msgid "User configuration synchronization"
msgstr "" msgstr ""
#: source/ubl-strings.h:176 #: source/ubl-strings.h:175
msgid "During system startup, load the user from the configuration" msgid "During system startup, load the user from the configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:177 #: source/ubl-strings.h:176
msgid "When shutting down the system, save the user into the configuration" msgid "When shutting down the system, save the user into the configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:178 #: source/ubl-strings.h:177
msgid "User password configuration syncronization" msgid "User password configuration syncronization"
msgstr "" msgstr ""
#: source/ubl-strings.h:179 #: source/ubl-strings.h:178
msgid "" msgid ""
"During system startup, load the user's parameters from the configuration" "During system startup, load the user's parameters from the configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:180 #: source/ubl-strings.h:179
msgid "" msgid ""
"When shutting down the system, save the user's parameters into the " "When shutting down the system, save the user's parameters into the "
"configuration" "configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:182 #: source/ubl-strings.h:181
msgid "Basic" msgid "Basic"
msgstr "" msgstr ""
#: source/ubl-strings.h:183 #: source/ubl-strings.h:182
msgid "Additional" msgid "Additional"
msgstr "" msgstr ""
#: source/ubl-strings.h:184 #: source/ubl-strings.h:183
msgid "Syncronization" msgid "Syncronization"
msgstr "" msgstr ""
#: source/ubl-strings.h:186 #: source/ubl-strings.h:185
msgid "Not specified" msgid "Not specified"
msgstr "" msgstr ""
#: source/ubl-strings.h:189 #: source/ubl-strings.h:187
msgid "UID already busy"
msgstr ""
#: source/ubl-strings.h:188
msgid "GID already busy"
msgstr ""
#: source/ubl-strings.h:191
msgid "Repeat password:" msgid "Repeat password:"
msgstr "" msgstr ""
#: source/ubl-strings.h:190 #: source/ubl-strings.h:192
msgid "Password hash:" msgid "Password hash:"
msgstr "" msgstr ""
#: source/ubl-strings.h:191 #: source/ubl-strings.h:193
msgid "Do not encrypt password" msgid "Do not encrypt password"
msgstr "" msgstr ""
#: source/ubl-strings.h:194 #: source/ubl-strings.h:196
msgid "Additional configuration of service parameter saving" msgid "Additional configuration of service parameter saving"
msgstr "" msgstr ""
#: source/ubl-strings.h:195 #: source/ubl-strings.h:197
msgid "" msgid ""
"At every system shutdown save changes of (root)/var/lib/samba\n" "At every system shutdown save changes of (root)/var/lib/samba\n"
"into (hd)/ublinux-data/rootcopy" "into (hd)/ublinux-data/rootcopy"
msgstr "" msgstr ""
#: source/ubl-strings.h:196 #: source/ubl-strings.h:198
msgid "For system save mode \"Sandbox\"" msgid "For system save mode \"Sandbox\""
msgstr "" msgstr ""
#: source/ubl-strings.h:199 #: source/ubl-strings.h:201
msgid "Group deletion" msgid "Group deletion"
msgstr "" msgstr ""
#: source/ubl-strings.h:200 #: source/ubl-strings.h:202
msgid "Confirm group(-s) deletion:" msgid "Confirm group(-s) deletion:"
msgstr "" msgstr ""
#: source/ubl-strings.h:202 #: source/ubl-strings.h:204
msgid "User deletion" msgid "User deletion"
msgstr "" msgstr ""
#: source/ubl-strings.h:203 #: source/ubl-strings.h:205
msgid "Confirm user(-s) deletion:" msgid "Confirm user(-s) deletion:"
msgstr "" msgstr ""
#: source/ubl-strings.h:204 #: source/ubl-strings.h:206
msgid "Chosen" msgid "Chosen"
msgstr "" msgstr ""
#: source/ubl-strings.h:205 #: source/ubl-strings.h:207
msgid "User" msgid "User"
msgstr "" msgstr ""
#: source/ubl-strings.h:206 #: source/ubl-strings.h:208
msgid "Home directory" msgid "Home directory"
msgstr "" msgstr ""
#: source/ubl-strings.h:207 #: source/ubl-strings.h:209
msgid "Delete home directory" msgid "Delete home directory"
msgstr "" msgstr ""
msgid "Are you sure want to delete group" #: source/ubl-strings.h:211
msgid "Configuration users"
msgstr "" msgstr ""
msgid "Are you sure want to delete user" #: source/ubl-strings.h:212
msgid "Configuration groups"
msgstr "" msgstr ""
msgid "UID already busy" #: source/ubl-strings.h:213
msgid "System users"
msgstr "" msgstr ""
msgid "GID already busy" #: source/ubl-strings.h:214
msgid "System groups"
msgstr "" msgstr ""

@ -53,7 +53,7 @@ msgstr "Алгоритм хэширования пароля:"
msgid "UID" msgid "UID"
msgstr "UID" msgstr "UID"
#: source/ubl-strings.h:14 source/ubl-strings.h:103 #: source/ubl-strings.h:14 source/ubl-strings.h:102
msgid "Login" msgid "Login"
msgstr "Логин" msgstr "Логин"
@ -189,7 +189,7 @@ msgstr "Обзор файлов"
msgid "Inspect users and groups in system" msgid "Inspect users and groups in system"
msgstr "Просмотр пользователей и групп в системе" msgstr "Просмотр пользователей и групп в системе"
#: source/ubl-strings.h:46 source/ubl-strings.h:57 #: source/ubl-strings.h:46 source/ubl-strings.h:56
msgid "Additional settings" msgid "Additional settings"
msgstr "Дополнительные настройки" msgstr "Дополнительные настройки"
@ -217,27 +217,27 @@ msgstr "Обновить список пользователей и групп"
msgid "Additional saving configuration" msgid "Additional saving configuration"
msgstr "Дополнительные настройки сохранения" msgstr "Дополнительные настройки сохранения"
#: source/ubl-strings.h:58 #: source/ubl-strings.h:57
msgid "No password required" msgid "No password required"
msgstr "Пароль не требуется" msgstr "Пароль не требуется"
#: source/ubl-strings.h:59 #: source/ubl-strings.h:58
msgid "Set a password" msgid "Set a password"
msgstr "Задать пароль" msgstr "Задать пароль"
#: source/ubl-strings.h:60 source/ubl-strings.h:106 #: source/ubl-strings.h:59 source/ubl-strings.h:105
msgid "Encrypted" msgid "Encrypted"
msgstr "Зашифрован" msgstr "Зашифрован"
#: source/ubl-strings.h:61 #: source/ubl-strings.h:60
msgid "Unencrypted" msgid "Unencrypted"
msgstr "Незашифрован" msgstr "Незашифрован"
#: source/ubl-strings.h:74 #: source/ubl-strings.h:73
msgid "Accept" msgid "Accept"
msgstr "Принять" msgstr "Принять"
#: source/ubl-strings.h:75 #: source/ubl-strings.h:74
msgid "" msgid ""
"Are you sure want to encrypt all passwords?\n" "Are you sure want to encrypt all passwords?\n"
"This action can't be undone." "This action can't be undone."
@ -245,173 +245,173 @@ msgstr ""
"Вы уверены что хотите зашифровать все пароли?\n" "Вы уверены что хотите зашифровать все пароли?\n"
"Это действие нельзя отменить." "Это действие нельзя отменить."
#: source/ubl-strings.h:76 #: source/ubl-strings.h:75
msgid "Encrypt all unencrypted passwords at global configuration" msgid "Encrypt all unencrypted passwords at global configuration"
msgstr "Зашифровать все незашифрованные пароли в глобальной конфигурации" msgstr "Зашифровать все незашифрованные пароли в глобальной конфигурации"
#: source/ubl-strings.h:77 #: source/ubl-strings.h:76
msgid "DES (Algorithm for Symmetric Encryption)" msgid "DES (Algorithm for Symmetric Encryption)"
msgstr "DES (Алгоритм для симметричного шифрования)" msgstr "DES (Алгоритм для симметричного шифрования)"
#: source/ubl-strings.h:78 #: source/ubl-strings.h:77
msgid "MD5 (128-bit hashing algorithm)" msgid "MD5 (128-bit hashing algorithm)"
msgstr "MD5 (128-битный алгоритм хеширования)" msgstr "MD5 (128-битный алгоритм хеширования)"
#: source/ubl-strings.h:79 #: source/ubl-strings.h:78
msgid "yescrypt (Cryptographic hash function)" msgid "yescrypt (Cryptographic hash function)"
msgstr "yescrypt (Криптографическая хэш-функция)" msgstr "yescrypt (Криптографическая хэш-функция)"
#: source/ubl-strings.h:80 #: source/ubl-strings.h:79
msgid "GOST-YESCRYPT (Design according to GOST R 34.11─2012)" msgid "GOST-YESCRYPT (Design according to GOST R 34.11─2012)"
msgstr "GOST-YESCRYPT (Конструкция согласно ГОСТ Р 34.11─2012)" msgstr "GOST-YESCRYPT (Конструкция согласно ГОСТ Р 34.11─2012)"
#: source/ubl-strings.h:81 #: source/ubl-strings.h:80
msgid "scrypt (Adaptive cryptographic key generation function)" msgid "scrypt (Adaptive cryptographic key generation function)"
msgstr "scrypt (Адаптивная криптографическая функция формирования ключа)" msgstr "scrypt (Адаптивная криптографическая функция формирования ключа)"
#: source/ubl-strings.h:82 #: source/ubl-strings.h:81
msgid "Blowfish (Symmetric Block Cipher Algorithm)" msgid "Blowfish (Symmetric Block Cipher Algorithm)"
msgstr "Blowfish (Алгоритм блочного симметричного шифрования)" msgstr "Blowfish (Алгоритм блочного симметричного шифрования)"
#: source/ubl-strings.h:83 #: source/ubl-strings.h:82
msgid "bcrypt (Adaptive hash function from the Blowfish family of algorithms)" msgid "bcrypt (Adaptive hash function from the Blowfish family of algorithms)"
msgstr "bcrypt (Адаптивная хеш-функция из семейства алгоритмов Blowfish)" msgstr "bcrypt (Адаптивная хеш-функция из семейства алгоритмов Blowfish)"
#: source/ubl-strings.h:84 #: source/ubl-strings.h:83
msgid "" msgid ""
"bcrypt-a (Adaptive hash function from the Blowfish family of algorithms)" "bcrypt-a (Adaptive hash function from the Blowfish family of algorithms)"
msgstr "bcrypt-a (Адаптивная хеш-функция из семейства алгоритмов Blowfish)" msgstr "bcrypt-a (Адаптивная хеш-функция из семейства алгоритмов Blowfish)"
#: source/ubl-strings.h:85 #: source/ubl-strings.h:84
msgid "SHA512 (Hash function from the SHA-2 family of algorithms)" msgid "SHA512 (Hash function from the SHA-2 family of algorithms)"
msgstr "SHA512 (Хеш-функция из семейства алгоритмов SHA-2)" msgstr "SHA512 (Хеш-функция из семейства алгоритмов SHA-2)"
#: source/ubl-strings.h:86 #: source/ubl-strings.h:85
msgid "SHA256 (Hash function from the SHA-2 family of algorithms)" msgid "SHA256 (Hash function from the SHA-2 family of algorithms)"
msgstr "SHA256 (Хеш-функция из семейства алгоритмов SHA-2)" msgstr "SHA256 (Хеш-функция из семейства алгоритмов SHA-2)"
#: source/ubl-strings.h:87 #: source/ubl-strings.h:86
msgid "Sun MD5 (Hash algorithm from Sun Microsystems)" msgid "Sun MD5 (Hash algorithm from Sun Microsystems)"
msgstr "Sun MD5 (Хеш-алгоритм от Sun Microsystems)" msgstr "Sun MD5 (Хеш-алгоритм от Sun Microsystems)"
#: source/ubl-strings.h:88 #: source/ubl-strings.h:87
msgid "MD5 Unix (Hash algorithm calls standard MD5 thousand times)" msgid "MD5 Unix (Hash algorithm calls standard MD5 thousand times)"
msgstr "MD5 Unix (Хэш-алгоритм вызывает тысячу раз стандартный MD5)" msgstr "MD5 Unix (Хэш-алгоритм вызывает тысячу раз стандартный MD5)"
#: source/ubl-strings.h:89 #: source/ubl-strings.h:88
msgid "" msgid ""
"Extended DES Crypt (Hash function from the BSDi family of DES algorithms)" "Extended DES Crypt (Hash function from the BSDi family of DES algorithms)"
msgstr "Extended DES Crypt (Хеш-функция из семейства алгоритмов DES от BSDi)" msgstr "Extended DES Crypt (Хеш-функция из семейства алгоритмов DES от BSDi)"
#: source/ubl-strings.h:90 #: source/ubl-strings.h:89
msgid "descrypt (Hash function from the DES family of algorithms)" msgid "descrypt (Hash function from the DES family of algorithms)"
msgstr "descrypt (Хеш-функция из семейства алгоритмов DES)" msgstr "descrypt (Хеш-функция из семейства алгоритмов DES)"
#: source/ubl-strings.h:91 #: source/ubl-strings.h:90
msgid "NTHash (Hash function from the NT Windows family of algorithms)" msgid "NTHash (Hash function from the NT Windows family of algorithms)"
msgstr "NTHash (Хеш-функция из семейства алгоритмов NT Windows)" msgstr "NTHash (Хеш-функция из семейства алгоритмов NT Windows)"
#: source/ubl-strings.h:93 #: source/ubl-strings.h:92
msgid "" msgid ""
"While booting the operating system, apply the settings of all users from the " "While booting the operating system, apply the settings of all users from the "
"configuration" "configuration"
msgstr "" msgstr ""
"При запуске операционной системы применять настройки всех пользователей " "При запуске операционной системы применять настройки всех пользователей из "
"из конфигурации" "конфигурации"
#: source/ubl-strings.h:94 #: source/ubl-strings.h:93
msgid "" msgid ""
"While shutdown, save the settings of all users with UID>=1000 to the " "While shutdown, save the settings of all users with UID>=1000 to the "
"configuration" "configuration"
msgstr "" msgstr ""
"При завершении работы сохранить настройки пользователей " "При завершении работы сохранить настройки пользователей с UID>=1000 в "
"с UID>=1000 в конфигурацию" "конфигурацию"
#: source/ubl-strings.h:97 #: source/ubl-strings.h:96
msgid "Configure group" msgid "Configure group"
msgstr "Редактировать группу" msgstr "Редактировать группу"
#: source/ubl-strings.h:98 #: source/ubl-strings.h:97
msgid "Add group" msgid "Add group"
msgstr "Добавить группу" msgstr "Добавить группу"
#: source/ubl-strings.h:99 #: source/ubl-strings.h:98
msgid "Group id:" msgid "Group id:"
msgstr "Идентификатор группы (GID):" msgstr "Идентификатор группы (GID):"
#: source/ubl-strings.h:100 #: source/ubl-strings.h:99
msgid "Group name:" msgid "Group name:"
msgstr "Имя группы:" msgstr "Имя группы:"
#: source/ubl-strings.h:101 #: source/ubl-strings.h:100
msgid "Group users:" msgid "Group users:"
msgstr "Пользователи группы:" msgstr "Пользователи группы:"
#: source/ubl-strings.h:102 #: source/ubl-strings.h:101
msgid "Automatically" msgid "Automatically"
msgstr "Автоматически" msgstr "Автоматически"
#: source/ubl-strings.h:104 #: source/ubl-strings.h:103
msgid "Create group with ununique GID" msgid "Create group with ununique GID"
msgstr "Создать группу с повторяющимися (не уникальными) GID" msgstr "Создать группу с повторяющимися (не уникальными) GID"
#: source/ubl-strings.h:105 #: source/ubl-strings.h:104
msgid "Create system group" msgid "Create system group"
msgstr "Создать системную группу" msgstr "Создать системную группу"
#: source/ubl-strings.h:107 #: source/ubl-strings.h:106
msgid "Additional configuration" msgid "Additional configuration"
msgstr "Дополнительные настройки" msgstr "Дополнительные настройки"
#: source/ubl-strings.h:108 #: source/ubl-strings.h:107
msgid "Group configuration synchronization" msgid "Group configuration synchronization"
msgstr "Синхронизация настроек группы" msgstr "Синхронизация настроек группы"
#: source/ubl-strings.h:109 #: source/ubl-strings.h:108
msgid "When shutting down the system, save the group into the configuration" msgid "When shutting down the system, save the group into the configuration"
msgstr "При завершении работы системы сохранить группу в конфигурацию" msgstr "При завершении работы системы сохранить группу в конфигурацию"
#: source/ubl-strings.h:110 #: source/ubl-strings.h:109
msgid "Group administrators:" msgid "Group administrators:"
msgstr "Администраторы группы:" msgstr "Администраторы группы:"
#: source/ubl-strings.h:111 #: source/ubl-strings.h:110
msgid "Group name must not start with digit" msgid "Group name must not start with digit"
msgstr "Имя группы не должно начинаться с цифры" msgstr "Имя группы не должно начинаться с цифры"
#: source/ubl-strings.h:114 #: source/ubl-strings.h:113
msgid "Default groups" msgid "Default groups"
msgstr "Группы пользователей по умолчанию" msgstr "Группы пользователей по умолчанию"
#: source/ubl-strings.h:115 #: source/ubl-strings.h:114
msgid "Main group" msgid "Main group"
msgstr "Основная группа" msgstr "Основная группа"
#: source/ubl-strings.h:116 #: source/ubl-strings.h:115
msgid "Additional groups" msgid "Additional groups"
msgstr "Дополнительные группы" msgstr "Дополнительные группы"
#: source/ubl-strings.h:117 #: source/ubl-strings.h:116
msgid "Choose groups" msgid "Choose groups"
msgstr "Выбрать группы" msgstr "Выбрать группы"
#: source/ubl-strings.h:118 #: source/ubl-strings.h:117
msgid "Choose users" msgid "Choose users"
msgstr "Выбрать пользователей" msgstr "Выбрать пользователей"
#: source/ubl-strings.h:121 #: source/ubl-strings.h:120
msgid "System users and groups" msgid "System users and groups"
msgstr "Пользователи и группы в системе" msgstr "Пользователи и группы в системе"
#: source/ubl-strings.h:122 #: source/ubl-strings.h:121
msgid "Locked" msgid "Locked"
msgstr "Отключен" msgstr "Отключен"
#: source/ubl-strings.h:123 #: source/ubl-strings.h:122
msgid "Username" msgid "Username"
msgstr "Имя пользователя" msgstr "Имя пользователя"
#: source/ubl-strings.h:124 #: source/ubl-strings.h:123
msgid "" msgid ""
"Primary\n" "Primary\n"
"group" "group"
@ -419,7 +419,7 @@ msgstr ""
"Основная\n" "Основная\n"
"группа" "группа"
#: source/ubl-strings.h:125 #: source/ubl-strings.h:124
msgid "" msgid ""
"Home\n" "Home\n"
"directory" "directory"
@ -427,31 +427,31 @@ msgstr ""
"Домашний\n" "Домашний\n"
"каталог" "каталог"
#: source/ubl-strings.h:126 source/ubl-strings.h:132 #: source/ubl-strings.h:125 source/ubl-strings.h:131
msgid "Group" msgid "Group"
msgstr "Группа" msgstr "Группа"
#: source/ubl-strings.h:127 #: source/ubl-strings.h:126
msgid "Update the system users and groups list" msgid "Update the system users and groups list"
msgstr "Обновить список пользователей и групп системы" msgstr "Обновить список пользователей и групп системы"
#: source/ubl-strings.h:128 #: source/ubl-strings.h:127
msgid "Toggle system groups and users" msgid "Toggle system groups and users"
msgstr "Переключить видимость системных пользователей и групп" msgstr "Переключить видимость системных пользователей и групп"
#: source/ubl-strings.h:130 #: source/ubl-strings.h:129
msgid "Password mismatch" msgid "Password mismatch"
msgstr "Несовпадение паролей" msgstr "Несовпадение паролей"
#: source/ubl-strings.h:131 #: source/ubl-strings.h:130
msgid "Password must be at least" msgid "Password must be at least"
msgstr "Пароль должен состоять из как минимум" msgstr "Пароль должен состоять из как минимум"
#: source/ubl-strings.h:131 #: source/ubl-strings.h:130
msgid "characters" msgid "characters"
msgstr "символов" msgstr "символов"
#: source/ubl-strings.h:133 #: source/ubl-strings.h:132
msgid "" msgid ""
"Days until\n" "Days until\n"
"warning" "warning"
@ -459,7 +459,7 @@ msgstr ""
"Дней до\n" "Дней до\n"
"предупреждения" "предупреждения"
#: source/ubl-strings.h:134 #: source/ubl-strings.h:133
msgid "" msgid ""
"Days\n" "Days\n"
"without activity" "without activity"
@ -467,7 +467,7 @@ msgstr ""
"Дней без\n" "Дней без\n"
"активности" "активности"
#: source/ubl-strings.h:135 #: source/ubl-strings.h:134
msgid "" msgid ""
"Shell\n" "Shell\n"
"path" "path"
@ -475,7 +475,7 @@ msgstr ""
"Путь до\n" "Путь до\n"
"оболочки" "оболочки"
#: source/ubl-strings.h:136 #: source/ubl-strings.h:135
msgid "" msgid ""
"Password has\n" "Password has\n"
"been changed" "been changed"
@ -483,7 +483,7 @@ msgstr ""
"Пароль\n" "Пароль\n"
"изменён" "изменён"
#: source/ubl-strings.h:137 #: source/ubl-strings.h:136
msgid "" msgid ""
"Expiration\n" "Expiration\n"
"date" "date"
@ -491,7 +491,7 @@ msgstr ""
"Дата\n" "Дата\n"
"устаревания" "устаревания"
#: source/ubl-strings.h:138 #: source/ubl-strings.h:137
msgid "" msgid ""
"Password change\n" "Password change\n"
"interval (min)" "interval (min)"
@ -499,7 +499,7 @@ msgstr ""
"Интервал смены\n" "Интервал смены\n"
"пароля (мин.)" "пароля (мин.)"
#: source/ubl-strings.h:139 #: source/ubl-strings.h:138
msgid "" msgid ""
"Password change\n" "Password change\n"
"interval (max)" "interval (max)"
@ -507,199 +507,207 @@ msgstr ""
"Интервал смены\n" "Интервал смены\n"
"пароля (макс.)" "пароля (макс.)"
#: source/ubl-strings.h:142 #: source/ubl-strings.h:141
msgid "Add user" msgid "Add user"
msgstr "Добавить пользователя" msgstr "Добавить пользователя"
#: source/ubl-strings.h:143 #: source/ubl-strings.h:142
msgid "Configure user" msgid "Configure user"
msgstr "Редактировать пользователя" msgstr "Редактировать пользователя"
#: source/ubl-strings.h:144 #: source/ubl-strings.h:143
msgid "Set" msgid "Set"
msgstr "Задать" msgstr "Задать"
#: source/ubl-strings.h:145 #: source/ubl-strings.h:144
msgid "Empty important field" msgid "Empty important field"
msgstr "Пустое важное поле" msgstr "Пустое важное поле"
#: source/ubl-strings.h:146 #: source/ubl-strings.h:145
msgid "Login must not start with digit" msgid "Login must not start with digit"
msgstr "Логин не должен начинаться с цифры" msgstr "Логин не должен начинаться с цифры"
#: source/ubl-strings.h:147 #: source/ubl-strings.h:146
msgid "Loading has failed" msgid "Loading has failed"
msgstr "Ошибка загрузки" msgstr "Ошибка загрузки"
#: source/ubl-strings.h:148 #: source/ubl-strings.h:147
msgid "Login name" msgid "Login name"
msgstr "Имя логина" msgstr "Имя логина"
#: source/ubl-strings.h:149 #: source/ubl-strings.h:148
msgid "Additional groups:" msgid "Additional groups:"
msgstr "Дополнительные группы:" msgstr "Дополнительные группы:"
#: source/ubl-strings.h:150 #: source/ubl-strings.h:149
msgid "Password configuration" msgid "Password configuration"
msgstr "Конфигурация пароля" msgstr "Конфигурация пароля"
#: source/ubl-strings.h:151 #: source/ubl-strings.h:150
msgid "Password has been changed:" msgid "Password has been changed:"
msgstr "Пароль изменён:" msgstr "Пароль изменён:"
#: source/ubl-strings.h:152 #: source/ubl-strings.h:151
msgid "expiration date:" msgid "expiration date:"
msgstr "Дата устаревания:" msgstr "Дата устаревания:"
#: source/ubl-strings.h:153 #: source/ubl-strings.h:152
msgid "Password change interval: minimum" msgid "Password change interval: minimum"
msgstr "Интервал смены пароля: минимум" msgstr "Интервал смены пароля: минимум"
#: source/ubl-strings.h:154 #: source/ubl-strings.h:153
msgid "days, maximum" msgid "days, maximum"
msgstr "дней, максимум" msgstr "дней, максимум"
#: source/ubl-strings.h:155 #: source/ubl-strings.h:154
msgid "days" msgid "days"
msgstr "дней" msgstr "дней"
#: source/ubl-strings.h:156 #: source/ubl-strings.h:155
msgid "Days until warning:" msgid "Days until warning:"
msgstr "Дней до предупреждения:" msgstr "Дней до предупреждения:"
#: source/ubl-strings.h:157 #: source/ubl-strings.h:156
msgid "Days without activity:" msgid "Days without activity:"
msgstr "Дней без активности:" msgstr "Дней без активности:"
#: source/ubl-strings.h:158 #: source/ubl-strings.h:157
msgid "Force change at next login" msgid "Force change at next login"
msgstr "Принудительно сменить при следующем входе в систему" msgstr "Принудительно сменить при следующем входе в систему"
#: source/ubl-strings.h:159 #: source/ubl-strings.h:158
msgid "User shell:" msgid "User shell:"
msgstr "Оболочка пользователя:" msgstr "Оболочка пользователя:"
#: source/ubl-strings.h:160 #: source/ubl-strings.h:159
msgid "Home directory:" msgid "Home directory:"
msgstr "Домашний каталог:" msgstr "Домашний каталог:"
#: source/ubl-strings.h:161 #: source/ubl-strings.h:160
msgid "Don't set" msgid "Don't set"
msgstr "Не создавать" msgstr "Не создавать"
#: source/ubl-strings.h:162 #: source/ubl-strings.h:161
msgid "Create system user" msgid "Create system user"
msgstr "Создать системного пользователя" msgstr "Создать системного пользователя"
#: source/ubl-strings.h:163 #: source/ubl-strings.h:162
msgid "Create user with ununique (repeating) UID" msgid "Create user with ununique (repeating) UID"
msgstr "Создать пользователя с повторяющимися (не уникальными) UID" msgstr "Создать пользователя с повторяющимися (не уникальными) UID"
#: source/ubl-strings.h:164 #: source/ubl-strings.h:163
msgid "Do not check login for compliance with character rules" msgid "Do not check login for compliance with character rules"
msgstr "Не проверять логин на несоответствие правилам использования символов" msgstr "Не проверять логин на несоответствие правилам использования символов"
#: source/ubl-strings.h:165 #: source/ubl-strings.h:164
msgid "Temporary deactivation" msgid "Temporary deactivation"
msgstr "Временное отключение учётной записи" msgstr "Временное отключение учётной записи"
#: source/ubl-strings.h:166 #: source/ubl-strings.h:165
msgid "Save" msgid "Save"
msgstr "Сохранить" msgstr "Сохранить"
#: source/ubl-strings.h:167 #: source/ubl-strings.h:166
msgid "login_name" msgid "login_name"
msgstr "Имя_логина" msgstr "Имя_логина"
#: source/ubl-strings.h:168 #: source/ubl-strings.h:167
msgid "group_name" msgid "group_name"
msgstr "Имя_группы" msgstr "Имя_группы"
#: source/ubl-strings.h:169 #: source/ubl-strings.h:168
msgid "User name" msgid "User name"
msgstr "Имя пользователя" msgstr "Имя пользователя"
#: source/ubl-strings.h:170 #: source/ubl-strings.h:169
msgid "Sync user" msgid "Sync user"
msgstr "Синхронизировать пользователя" msgstr "Синхронизировать пользователя"
#: source/ubl-strings.h:171 #: source/ubl-strings.h:170
msgid "Sync user with password" msgid "Sync user with password"
msgstr "Синхронизировать пользователя с паролем" msgstr "Синхронизировать пользователя с паролем"
#: source/ubl-strings.h:172 #: source/ubl-strings.h:171
msgid "Encrypt all passwords" msgid "Encrypt all passwords"
msgstr "Зашифровать все пароли" msgstr "Зашифровать все пароли"
#: source/ubl-strings.h:174 #: source/ubl-strings.h:173
msgid "User configuration" msgid "User configuration"
msgstr "Настройка пользователя" msgstr "Настройка пользователя"
#: source/ubl-strings.h:175 #: source/ubl-strings.h:174
msgid "User configuration synchronization" msgid "User configuration synchronization"
msgstr "Синхронизация настроек пользователя" msgstr "Синхронизация настроек пользователя"
#: source/ubl-strings.h:176 #: source/ubl-strings.h:175
msgid "During system startup, load the user from the configuration" msgid "During system startup, load the user from the configuration"
msgstr "" msgstr ""
"При запуске операционной системы применять настройки пользователя из " "При запуске операционной системы применять настройки пользователя из "
"конфигурации" "конфигурации"
#: source/ubl-strings.h:177 #: source/ubl-strings.h:176
msgid "When shutting down the system, save the user into the configuration" msgid "When shutting down the system, save the user into the configuration"
msgstr "" msgstr ""
"При завершении работы операционной системы сохранить настройки пользователя " "При завершении работы операционной системы сохранить настройки пользователя "
"в конфигурацию" "в конфигурацию"
#: source/ubl-strings.h:178 #: source/ubl-strings.h:177
msgid "User password configuration syncronization" msgid "User password configuration syncronization"
msgstr "Синхронизация настроек пароля пользователя" msgstr "Синхронизация настроек пароля пользователя"
#: source/ubl-strings.h:179 #: source/ubl-strings.h:178
msgid "" msgid ""
"During system startup, load the user's parameters from the configuration" "During system startup, load the user's parameters from the configuration"
msgstr "При загрузке системы загрузить параметры пользователя из конфигурации" msgstr "При загрузке системы загрузить параметры пользователя из конфигурации"
#: source/ubl-strings.h:180 #: source/ubl-strings.h:179
msgid "" msgid ""
"When shutting down the system, save the user's parameters into the " "When shutting down the system, save the user's parameters into the "
"configuration" "configuration"
msgstr "" msgstr ""
"При завершении работы системы сохранить параметры пользователя в конфигурацию" "При завершении работы системы сохранить параметры пользователя в конфигурацию"
#: source/ubl-strings.h:182 #: source/ubl-strings.h:181
msgid "Basic" msgid "Basic"
msgstr "Основные" msgstr "Основные"
#: source/ubl-strings.h:183 #: source/ubl-strings.h:182
msgid "Additional" msgid "Additional"
msgstr "Дополнительные" msgstr "Дополнительные"
#: source/ubl-strings.h:184 #: source/ubl-strings.h:183
msgid "Syncronization" msgid "Syncronization"
msgstr "Синхронизация" msgstr "Синхронизация"
#: source/ubl-strings.h:186 #: source/ubl-strings.h:185
msgid "Not specified" msgid "Not specified"
msgstr "Не задан" msgstr "Не задан"
#: source/ubl-strings.h:189 #: source/ubl-strings.h:187
msgid "UID already busy"
msgstr "UID уже существует"
#: source/ubl-strings.h:188
msgid "GID already busy"
msgstr "GID уже существует"
#: source/ubl-strings.h:191
msgid "Repeat password:" msgid "Repeat password:"
msgstr "Подтверждение пароля:" msgstr "Подтверждение пароля:"
#: source/ubl-strings.h:190 #: source/ubl-strings.h:192
msgid "Password hash:" msgid "Password hash:"
msgstr "Хэш пароля:" msgstr "Хэш пароля:"
#: source/ubl-strings.h:191 #: source/ubl-strings.h:193
msgid "Do not encrypt password" msgid "Do not encrypt password"
msgstr "Не шифровать пароль" msgstr "Не шифровать пароль"
#: source/ubl-strings.h:194 #: source/ubl-strings.h:196
msgid "Additional configuration of service parameter saving" msgid "Additional configuration of service parameter saving"
msgstr "Дополнительные настройки сохранения параметров сервисов" msgstr "Дополнительные настройки сохранения параметров сервисов"
#: source/ubl-strings.h:195 #: source/ubl-strings.h:197
msgid "" msgid ""
"At every system shutdown save changes of (root)/var/lib/samba\n" "At every system shutdown save changes of (root)/var/lib/samba\n"
"into (hd)/ublinux-data/rootcopy" "into (hd)/ublinux-data/rootcopy"
@ -707,45 +715,54 @@ msgstr ""
"При каждом завершении работы ОС сохранять изменения (root)/var/lib/samba\n" "При каждом завершении работы ОС сохранять изменения (root)/var/lib/samba\n"
"в (hd)/ublinux-data/rootcopy/" "в (hd)/ublinux-data/rootcopy/"
#: source/ubl-strings.h:196 #: source/ubl-strings.h:198
msgid "For system save mode \"Sandbox\"" msgid "For system save mode \"Sandbox\""
msgstr "Для режима сохранения системы \"Песочница\"" msgstr "Для режима сохранения системы \"Песочница\""
#: source/ubl-strings.h:199 #: source/ubl-strings.h:201
msgid "Group deletion" msgid "Group deletion"
msgstr "Удаление групп(-ы)" msgstr "Удаление групп(-ы)"
#: source/ubl-strings.h:200 #: source/ubl-strings.h:202
msgid "Confirm group(-s) deletion:" msgid "Confirm group(-s) deletion:"
msgstr "Подтвердите удаление групп(-ы):" msgstr "Подтвердите удаление групп(-ы):"
#: source/ubl-strings.h:202 #: source/ubl-strings.h:204
msgid "User deletion" msgid "User deletion"
msgstr "Удаление пользователя(-ей)" msgstr "Удаление пользователя(-ей)"
#: source/ubl-strings.h:203 #: source/ubl-strings.h:205
msgid "Confirm user(-s) deletion:" msgid "Confirm user(-s) deletion:"
msgstr "Подтвердите удаление пользователя (-ей):" msgstr "Подтвердите удаление пользователя (-ей):"
#: source/ubl-strings.h:204 #: source/ubl-strings.h:206
msgid "Chosen" msgid "Chosen"
msgstr "Выбран" msgstr "Выбран"
#: source/ubl-strings.h:205 #: source/ubl-strings.h:207
msgid "User" msgid "User"
msgstr "Пользователь" msgstr "Пользователь"
#: source/ubl-strings.h:206 #: source/ubl-strings.h:208
msgid "Home directory" msgid "Home directory"
msgstr "Домашний каталог" msgstr "Домашний каталог"
#: source/ubl-strings.h:207 #: source/ubl-strings.h:209
msgid "Delete home directory" msgid "Delete home directory"
msgstr "Удалить домашний каталог" msgstr "Удалить домашний каталог"
#: source/ubl-strings.h:211
msgid "Configuration users"
msgstr "Пользователи конфигурации"
msgid "UID already busy" #: source/ubl-strings.h:212
msgstr "UID уже существует" msgid "Configuration groups"
msgstr "Группы конфигурации"
msgid "GID already busy" #: source/ubl-strings.h:213
msgstr "GID уже существует" msgid "System users"
msgstr "Пользователи системы"
#: source/ubl-strings.h:214
msgid "System groups"
msgstr "Группы системы"

Loading…
Cancel
Save