Bug 54267

Summary: integrity-notifier.service failed, если also пользователь не залогинен
Product: Sisyphus Reporter: Владимир Шумилов <vshumilov>
Component: integrity-notifierAssignee: manowar <manowar>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: alimektor, manowar, nbr, vshumilov
Version: unstable   
Hardware: x86   
OS: Linux   

Description Владимир Шумилов 2025-05-14 21:13:56 MSK
При попытке запуска неподписанной программы пользовательем-1 integrity-notifier.service завершается с ошибкой и не рестартует, если указанный в /etc/integrity/also какой-либо пользователь незалогинен.


[vs@host-191 ~]$ systemctl status integrity-notifier.service
× integrity-notifier.service - Integrity notifier service
     Loaded: loaded (/lib/systemd/system/integrity-notifier.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Wed 2025-05-14 21:10:46 MSK; 34s ago
    Process: 2268 ExecStart=/usr/sbin/integrity-notifier (code=exited, status=1/FAILURE)
   Main PID: 2268 (code=exited, status=1/FAILURE)
        CPU: 25ms

мая 14 21:06:22 host-191 systemd[1]: Started Integrity notifier service.
мая 14 21:06:22 host-191 integrity-notifier[2285]: tail: '/var/log/integrityd//current' стал недоступен: Нет такого файла или ката>
мая 14 21:06:22 host-191 integrity-notifier[2285]: tail: '/var/log/integrityd//current' появился; новый файл
мая 14 21:10:46 host-191 integrity-notifier[3121]: write: vvs is not logged in
мая 14 21:10:46 host-191 systemd[1]: integrity-notifier.service: Main process exited, code=exited, status=1/FAILURE
мая 14 21:10:46 host-191 systemd[1]: integrity-notifier.service: Failed with result 'exit-code'.
Comment 1 Владимир Шумилов 2025-05-14 21:18:34 MSK
Всё это происходит из-за того, что в скрипте /usr/sbin/integrity-notifier используется команда write для отправки сообщений. Собственно, это и вызывает ошибку и падение сервиса.

Этого можно избежать, если использовать команду logger -p emerg "message"
В данном случае сообщения будут отправлены широковещательные сообщения и сделана запись в журнал
Comment 2 Владимир Шумилов 2025-05-15 07:25:37 MSK
Либо необходимо проверять список пользователей, кто залогинен, кто нет
Comment 3 Владимир Шумилов 2025-05-15 09:00:11 MSK
Либо необходимо проверять список пользователей, кто залогинен, кто нет
Comment 4 Evgeny Shesteperov 2025-05-19 17:03:37 MSK
Версия

-   integrity-notifier-0.7.1-alt1

Шаги воспроизведения

    # useradd checkuser
    # passwd checkuser
    # apt-get install integrity-notifier ima-evm-integrity-check updater -y
    # echo checkuser >> /etc/integrity/also
    # systemctl enable --now integrity-notifier; systemctl status integrity-notifier --no-pager -l
    # echo "@$(echo -n "40000000" && head -c 8 /dev/urandom | xxd -p | tr -d '\n') $(date +'%d %B %H:%M:%S') $(hostname) audit[3000]: INTEGRITY_DATA pid=3000 uid=$(id -u checkuser) auid=0 ses=1 op=appraise_data cause=invalid-signature comm=\"bash\" name=\"/usr/bin/mc\" dev=\"sda1\" ino=681023 res=0 errno=0" >> /var/log/integrityd/current
    # systemctl status integrity-notifier --no-pager -l

Ожидаемый результат: сервис в статусе running

Фактический результат: сервис в статусе failed
Comment 5 Repository Robot 2025-05-21 23:12:13 MSK
integrity-notifier-0.7.2-alt1 -> sisyphus:

 Wed May 21 2025 Paul Wolneykien <manowar@altlinux> 0.7.2-alt1
 - Restart both services on failure.
 - Fix: Don't exit on write failure (closes: 54267).