UNIX хранит системные протоколы в следующих файлах:
/var/log/utmp (/etc/utmp) - запись о вашем текущем присутствии в
cистеме. Используется программой who.
/var/log/wtmp (/usr/adm/wtmp) - протокол всех вхождений в систему.
Используется программой last.
/var/log/lastlog (/usr/adm/lastlog) - Дата последнего входа в систему
каждого пользователя. Выдается на экран
программой login.
Это не текстовые файлы и отредактировать их в vi руками не
получится. Для того, чтобы стереть информацию о своём присутствии,
надо использовать специальную программу, написанную для этих целей.
Пример такой программы приведён в приложении 7.
Часто информация о входах пользователей и о некоторых их действиях
(например запуск su) выдается на консоль администратору и в системный
лог, который может называться /var/log/messages. Для модификации этого
файла можно воспользоваться редактором ed или vi.
Программа CRON.
~~~~~~~~~~~~~~~
Cron - программа, которая запускает другие задачи с некоторой
периодичностью. Описание этих задач и времени их запуска хранятся в
файлах в двух директориях: /usr/lib и /usr/spool/cron.
Файл crontab в директории /etc или /usr/lib описывает системные
задачи, которые надо запускать с определённой периодичностью. Формат
этого файла:
минуты часы день_месяца месяц_года день_недели коммандная_строка
[0-59] [0-23] [1-31] [1-12] [1-7] [путь, аргументы]
Пример строки из crontab:
0 1 * * * /bin/sync
Это значит, что надо запускать команду sync, содержащуюся в директории
/bin в час ночи каждый день. Команды выполняемые из /usr/lib/crontab
получают привилегии root (UID = 0).
В каталоге /usr/spool/crontabs, содержатся файлы имеющих имена
системных account'ов. Эти файлы содержат поля, сходные с содержащимися
в файле /usr/lib/crontab, но команды из этих полей выполняются с ID
пользователя с именем, соответствующим имени этого файла. Формат полей
аналогичен.
Обычно с помощью утилиты cron запускаются программы, проверяющие
целостность системы: проверяются длинна и/или контрольные суммы
файлов, наличие в системе пользователей с UID = 0, и т.д. О всех
подозрительных явлениях пишется письмо root'у. При модификации файлов
cron пишется протокол в файл /usr/adm/cronlog.
В некоторых системах, например во FreeBSD существуют командные
файлы /etc/daily, /etc/weekly и /etc/monthly. /etc/daily запускается
cron'ом ежедневно в 2:00am и сравнивает информацию выдаваемую по
команде ls -laT для всех suid'ных файлов с информацией предыдущего
дня. Иными словами /etc/daily сравнивает /var/log/setuid.today и
/var/log/setuid.yesterday. О всех изменениях посылаются письмо
администратору. Так что, если вы изменили или добавили какой-нибудь
SUID'ный файл, не забудьте сделать соответствующие изменения в этих
двух файлах.