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
Дополнительное исследование: - на 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 Запуск: при входе в систему Нажать "Ок" Перезагрузить систему
Created attachment 16101 [details] xfce
Created attachment 16102 [details] kde
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, другой - из автозапуска.
Прикладываю информацию по запущенным процессам и доп.настройкам (на 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 и перезагрузиться, то ошибки не будет, появится уведомление на английском как и положено.
Итог: 1. Добавление в автозапуск не нужно (согласно https://bugzilla.altlinux.org/show_bug.cgi?id=50350#c0 не выполнять только шаг №2); 2. В файле /etc/locale.conf достаточно прописать LANG=en_US.UTF-8 (на шаге №3).