Я знаю что date -s <STRING>
команда устанавливает время, описываемое строкой STRING
.
Я хочу регистрировать указанную выше команду всякий раз, когда она используется для установки времени в файл /tmp/log/user.log
.
В моем дистрибутиве Linux ведение журнала выполняется syslog-ng
. У меня уже есть журналы, в которые /tmp/log/user.log
.
Это содержимое /etc/syslog-ng/syslog-ng.conf в моей системе для входа в /tmp/log/user.log
destination d_notice { file("/tmp/log/user.log");};
filter f_filter10 { level(notice) and not facility(mail,authpriv,cron); };
log { source(s_sys); filter(f_filter10); destination(d_notice); };
Что мне делать, чтобы date -s
команда также входит в /tmp/log/user.log
По умолчанию изменения даты не регистрируются, по крайней мере, в Debian.
Самым простым вариантом было бы заменить / bin / date оболочкой, которая печатает сообщение журнала, используя logger
затем вызывает исполняемый файл real / bin / date, например
mv /bin/date /bin/date.real
cat << 'EOF' >/bin/date
#!/bin/bash
logger -p user.notice "date run by $UID: $*"
/bin/date.real
EOF
chmod +x /bin/date
Кроме этого, я знаю, что grsecurity позволяет регистрировать любые изменения системного времени. Это потребует компиляции собственного ядра.