Bug 50350 - Некорректная работа usbguard-notifier после переключения локали на английскую
Summary: Некорректная работа usbguard-notifier после переключения локали на английскую
Status: CLOSED NOTABUG
Alias: None
Product: Branch p10
Classification: Unclassified
Component: usbguard-notifier (show other bugs)
Version: не указана
Hardware: x86_64 Linux
: P5 normal
Assignee: sirius@altlinux.org
QA Contact: qa-p10@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-13 13:36 MSK by Tatyana Gagina
Modified: 2024-05-15 16:42 MSK (History)
2 users (show)

See Also:


Attachments
два уведомления (46.38 KB, image/png)
2024-05-13 13:36 MSK, Tatyana Gagina
no flags Details
xfce (63.51 KB, image/png)
2024-05-13 16:33 MSK, Tatyana Gagina
no flags Details
kde (158.06 KB, image/png)
2024-05-13 16:35 MSK, Tatyana Gagina
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tatyana Gagina 2024-05-13 13:36:11 MSK
Created attachment 16099 [details]
два уведомления

Стенд P10:
ALT Workstation x86-64

Версия: usbguard-notifier-2.1-alt1

Шаги:
1) Выполнить:
# apt-get install usbguard usbguard-notifier
Включить usbguard и usbguard-dbus:
# systemctl enable usbguard
# systemctl enable usbguard-dbus
# systemctl start usbguard
# systemctl start usbguard-dbus

Сгенерировать политики для usbguard, чтобы не блокировались встроенные устройства:
# usbguard generate-policy > /etc/usbguard/rules.conf

2) Меню приложений  -> Центр управления -> Запускаемые приложения -> Персональные -> 
Нажать кнопку "Добавить", ввести следующие параметры:
Название: usbguard-notifier
Команда: /usr/bin/usbguard-notifier
Нажать "Добавить"
Перезагрузиться:
# reboot

3) Изменить файл  /etc/sysconfig/i18n исправив русскую локаль на английскую:

LANG=en_US.UTF-8
SUPPORTED=en_US.UTF-8

Сохранить файл и перезагрузиться:
# reboot

4) Настроить правила для сценария reject, добавив в /etc/usbguard/rules.conf правила:

reject with-interface all-of { 08:*:* }
reject with-interface all-of { 03:*:* }
reject with-interface all-of { 06:*:* }
reject with-interface all-of { 0e:*:* }
reject with-interface all-of { ff:*:* }
reject with-interface all-of { e0:*:* }
reject with-interface all-of { 0b:*:* }
reject with-interface all-of { 07:*:* }
Сохранить файл.

Перезагрузить usbguard для применения изменений в правилах:
# systemctl restart usbguard
# systemctl restart usbguard-dbus

5) Подключить по USB любое устройство.

Результат: появляется 2 уведомления на русском и на английском (см. "два уведомления").

Ожидаемый результат: появляется уведомление только на английском.

Проверялось на Sisyphus, ошибка не воспроизводится.
Версия: usbguard-notifier-2.1-alt1
Comment 1 Tatyana Gagina 2024-05-13 16:33:14 MSK
Дополнительное исследование: 
- на KDE не переключается локаль на английскую;
- на MATE и XFCE  - два уведомления на русском и на английском.
См. kde/xfce (воспроизведение на mate - скриншот "два уведомления").

Стенды p10: 
Education KDE/XFCE x86-64
Workstation K x86-64


Шаг №2 для:
KDE:

Меню приложений -> Параметры системы -> Запуск и завершение -> Автозапуск приложений
Нажать кнопку "Добавить", в списке найти или выбрать usbguard-notifier, нажать "ОК"

Перезагрузить систему
____________________

XFCE:

Меню приложений -> Настройки -> Диспетчер настроек -> Сеансы и запуск -> Автозапуск приложений
Нажать кнопку "Добавить", ввести следующие параметры:
Имя: usbguard-notifier
Описание: usbguard-notifier
Команда: /usr/bin/usbguard-notifier
Запуск: при входе в систему
Нажать "Ок"

Перезагрузить систему
Comment 2 Tatyana Gagina 2024-05-13 16:33:34 MSK
Created attachment 16101 [details]
xfce
Comment 3 Tatyana Gagina 2024-05-13 16:35:55 MSK
Created attachment 16102 [details]
kde
Comment 4 Dmitrii 2024-05-14 20:17:18 MSK
Sisyphus:
Workstation K x86-64

Не уверен, что проблема в модуле, т.к. если установить вручную переменные LANG*=en_US.UTF-8 (например, в .bashrc) перевод текста уведомлений работает корректно. Из-за того, что не меняется локаль системы при изменении файла "/etc/sysconfig/i18n" (а также "/etc/locale.conf"), сложно сделать вывод, что проблему нужно искать в модуле.

P10:
Education KDE/XFCE x86-64

Не удалось воспроизвести проблему с двумя уведомлениями. А проблема с только русским переводом решается путём изменения файла "/etc/locale.conf" (достаточно только его).
Не искал причину, почему не работает вариант изменения локали путём изменения "/etc/sysconfig/i18n". Снова же не уверен, что проблема в usbguard-notifier.

Могу предположить, что проблема с двумя уведомлениями возникает, если проделать шаги описанные здесь: https://bugzilla.altlinux.org/show_bug.cgi?id=50350#c1. Предполагаю, что в системе два процесса usbguard-notifier. Один запускается systemd, другой - из автозапуска.
Comment 5 Tatyana Gagina 2024-05-15 14:10:10 MSK
Прикладываю информацию по запущенным процессам и доп.настройкам (на P10):

На Education KDE/XFCE - одно уведомление на русском.
Если перейти снова в файл /etc/sysconfig/i18n, то можно убедиться, что файл изменился, локаль стоит только для русского языка. Поэтому и одно уведомление только на русском (возможно, автоматически сбросились настройки).

Если снова прописать для английского, то ошибка снова воспроизводится, 1 уведомление на русском.
Решается проблема, если в файле /etc/locale.conf прописать LANG=en_US.UTF-8 и перезагрузиться.

Запущено процессов на момент воспроизведения:
# ps -ef | grep usbguard-notifier
test        3062    3049  0 13:37 ?        00:00:00 /usr/bin/usbguard-notifier
test        3414    3049  0 13:37 ?        00:00:00 /usr/bin/usbguard-notifier
root        3539    3525  0 13:39 ?        00:00:00 /usr/bin/usbguard-notifier
root        3731    3541  0 13:42 pts/0    00:00:00 grep --color=auto usbguard-notifier
_____
На Workstation x86-64 - 2 уведомления на русском и на английском.

Запущено процессов на момент воспроизведения:
#  ps -ef | grep usbguard-notifier
test        2790    2780  1 13:56 ?        00:00:00 /usr/bin/usbguard-notifier
root        3185    3176  0 13:56 ?        00:00:00 /usr/bin/usbguard-notifier
root        3231    3187  0 13:56 pts/0    00:00:00 grep --color=auto usbguard-notifier

Аналогично, если в файле /etc/locale.conf прописать LANG=en_US.UTF-8 и перезагрузиться, то ошибки не будет, появится уведомление на английском как и положено.
_____
На Workstation K x86-64


Запущено процессов на момент воспроизведения:
#  ps -ef | grep usbguard-notifier
root        3349    3331  0 14:03 ?        00:00:00 /usr/bin/usbguard-notifier
test        3485    3476  0 14:03 ?        00:00:00 /usr/bin/usbguard-notifier
test        3817    3476  0 14:03 ?        00:00:00 /usr/bin/usbguard-notifier
root        3941    3356  0 14:04 pts/0    00:00:00 grep --color=auto usbguard-notifier

Аналогично, если в файле /etc/locale.conf прописать LANG=en_US.UTF-8 и перезагрузиться, то ошибки не будет, появится уведомление на английском как и положено.
Comment 6 Tatyana Gagina 2024-05-15 16:42:28 MSK
Итог:
1. Добавление в автозапуск не нужно (согласно https://bugzilla.altlinux.org/show_bug.cgi?id=50350#c0 не выполнять только шаг №2);
2. В файле /etc/locale.conf достаточно прописать LANG=en_US.UTF-8 (на шаге №3).