В борьбе с журнальными бестиями Иван Скляров (www.sklyaroff.ru) Хакер, номер #078, стр. 078-100-5 [специализированные функции для редактирования логов] В нашем самопальном клинере я использую стандартный способ модификации бинарных логов с помощью Си-функций read(), write() и пр. Но для работы с файлом utmp существуют специализированные функции. Например, функция setutent() устанавливает указатель на начало файла utmp; getutent() считывает строку, начиная с текущей позиции файла utmp; getutid() производит прямой поиск, начиная с текущей позиции; pututline() записывает структуру utmp ut в файл utmp и т.д. Подробнее с ними ты сможешь ознакомиться в man, там же присутствует демонстрационный код. С другой стороны ничего неизвестно о специализированных функциях для работы с lastlog, поэтому с этим логом все равно придется работать дедовскими методами. Вот и все. Теперь ты достаточно подготовлен, чтобы побороть таких хитрых бестий, как бинарные логи utmp, wtmp и lastlog. Другие бинарные логи Согласно стандарту POSIX, помимо структуры utmp существует более современная структура utmpx. Она обладает расширенными и дополнительными полями. Хранится в соответствующих файлах /var/*/utmpx и /var/*/wtmpx. В статье мы эту структуру не рассматриваем, так как она пока не получила широкого распространения в *nix-системах. Хотя некоторые клинеры предусматривают очистку этих логов, например клинер ULW (www.packetstormsecurity.nl). Известен еще один бинарный лог-файл /var/log/btmp, в который сохраняется информация о неудачных попытках входа пользователей в систему. С ним работает команда lastb, подобная команде last. Обычно по умолчанию файл btmp в системе отсутствует, поэтому, чтобы осуществлялось журналирование, его нужно сначала создать. Я не встречал ни одного клинера, который бы очищал этот лог-файл. CD На диске ты найдешь исходники лог-клинеров who_dead и who_dead2. |