Регулярно запускайте rkhunter на настольной системе

Если вы следуете ссылке, предоставленной OP, кажется, что Amazon теперь официально сообщила об отсутствии поддержки Linux для MP3 Downloader. У их нового Cloud Player есть опция «Загрузить», хотя это не так полно, как хотелось бы. Вы можете загружать только одну песню за раз, даже если вы покупаете весь альбом, и это не дает вам приятную структуру каталогов [artist]/[album]/..., которую сделал Downloader. Тем не менее, это вариант.

1
задан 29 August 2016 в 05:10

2 ответа

Решение с 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
1
ответ дан 24 May 2018 в 02:54
  • 1
    Вы также можете объединить это решение с решением zenity, потому что в случае отсутствия предупреждений диалог zenity не идеален. в этом случае достаточно уведомления – rubo77 22 August 2016 в 10:11

Вы можете использовать cron. Изменить с помощью

crontab -e

для получения дополнительной информации о том, как использовать cron, следуйте по этой ссылке:

crotab-tutorial

0
ответ дан 24 May 2018 в 02:54
  • 1
    конечно, потому что я думал, что это слишком очевидно и поэтому явственно потому, что у меня там был тег с самого начала. Я несколько дней ждал, если вы повысите свой вопрос до того, как я остановлюсь. В вашем ответе отсутствует описание, как добавить это. Если вы включили бы самую важную часть из учебника для этого случая, это усилит ваш ответ, хотя это не решит проблему – rubo77 15 October 2014 в 00:34
  • 2
    Если бы я подумал об этом, я мог бы использовать cron: мне нужно было бы добавлять rkhunter каждый час и проверять раньше, если в прошлом время загрузки было достаточно долгое, используя uptime -s – rubo77 15 October 2014 в 00:38

Другие вопросы по тегам:

Похожие вопросы: