Ubuntu16.04 Нет Аудиовыход [закрыт]

Решение с anachron и notify-send

Ответ на проблему - это anachron, который выполняет команды автоматически как root, где root нуждается в доступе к сеансу dbus основного пользователя.

1. Предоставьте root доступ к сеансу рабочего стола (как пользователь)

Чтобы пользователь root мог получить доступ к рабочему столу по умолчанию, вам сначала нужно установить переменную DBUS_SESSION_BUS_ADDRESS. По умолчанию cron не имеет доступа к переменной, которая меняет каждый запуск системы. Чтобы исправить это, поместите следующий скрипт в свой домашний каталог и назовите его ~/dbus-session-export

#!/bin/sh
touch ~/.dbus/Xdbus
chmod 600 ~/.dbus/Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > ~/.dbus/Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> ~/.dbus/Xdbus
exit 0

. Дайте ему права на выполнение:

chmod +x ~/dbus-session-export

И назовите его в ваших программах запуска. Это создаст / обновит файл ~/.dbus/Xdbus, содержащий требуемую переменную среды Dbus для использования анахроном при каждой загрузке системы.

2. Скрипт Cron (как root)

Поместите скрипт в папку /etc/cron.daily/ и сделайте его исполняемым:

sudo touch /etc/cron.daily/rkhunter-check
sudo chmod +x /etc/cron.daily/rkhunter-check

Отредактируйте файл gksu gedit /etc/cron.daily/rkhunter-check

#!/usr/bin/env bash
sleep 1800 # wait 30 minutes in case the script is called directly at boot
MAINUSER="$(awk -F: '$3==1000{print $1}' /etc/passwd)"
if [ -r "/home/$MAINUSER/.dbus/Xdbus" ]; then
    . "/home/$MAINUSER/.dbus/Xdbus"
fi
su $MAINUSER -c 'notify-send "starting rkhunter scan... "'
rkhunter --checkall --report-warnings-only | while read OUTPUT; do
if [ "$OUTPUT" != "" ]; then
    OUTPUT="${OUTPUT//[\`\"\']/}"
    su $MAINUSER -c $"notify-send \"rkhunter: $OUTPUT\""
fi
done

Это будет запускать скрипт каждый день один раз, и если запуск rkhunter генерирует любой вывод (только предупреждения), этот скрипт будет отображаться как уведомление для каждого предупреждения в правом верхнем углу экрана с правами root [!d3 ]

Источник:

https://unix.stackexchange.com/questions/111188/using-notify-send-with-cron как создать уведомление на экране, инициированное root
2
задан 16 May 2017 в 18:20

0 ответов