
Я не хочу отключать все журналы в Debian, а только те, которые записывают время входа пользователя root и продолжительность входа.
когда я даю last
команду в терминале, я получаю свой IP-адрес и т. д., я хочу отключить это.
когда я иду /var/log
,бтмпфайл пуст, есть только какой-то квадратный знак, как будто нераспознанный символ,wtmpто же самое. Я удалил содержимое auth.log
.
Как отключить этот тип журнала?
решение1
Фильтрация журналов
Я считаю, что вы можете обрабатывать некоторые журналы, используя фильтр в rsyslog
. В частности, вам нужно будет добавить фильтр в файл конфигурации в /etc/rsyslog.d/
.
Для сообщений, подобных этому /var/log/secure
(например, в Fedora 19):
Jun 28 13:28:18 greeneggs login: pam_unix(login:session): session opened for user saml by LOGIN(uid=0)
Jun 28 13:28:19 greeneggs login: LOGIN ON tty2 BY saml
Чтобы исключить их, можно использовать такой фильтр:
если $syslogfacility-text == 'local0' и $msg начинается с 'login' и ($msg содержит 'root'), то /dev/null
ПРИМЕЧАНИЕ:Вышеприведенный пример не проверен, но он лишь показывает, как можно приблизиться к этому.
Фильтрация wtmp и btmp
Эти файлы являются двоичными, поэтому вы не можете просто редактировать их с помощью стандартных инструментов, таких как sed
и awk
. Если вы действительно хотите их редактировать, вам придется cron
периодически редактировать их из. Я не смог найти никакого метода для фильтрации пользователей, которые не будут добавлены в какой-либо файл, когда они вошли в систему.
выдержка изСтраница Utmp в Википедии
utmp, wtmp и btmp
- утмпведет полный учет текущего состояния системы, времени загрузки системы (используется временем безотказной работы), регистрирует входы пользователей на какие терминалы, выходы из системы, системные события и т. д.
- wtmpдействует как исторический utmp
- бтмпзаписи неудачных попыток входа в систему
Файл
utmp
не является текстовым файлом, а скорее двоичным форматом, который необходимо редактировать специально созданными программами. Реализация и поля, присутствующие в файле, различаются в зависимости от системы или версии libc и определяются в заголовочномutmp.h
файле.Формат
wtmp
иbtmp
точно такой же,utmp
за исключением того, что пустое имя пользователя указывает на выход из связанного терминала. Кроме того, имя терминала ~ с именем пользователя shutdown или reboot указывает на выключение или перезагрузку системы, а пара имен терминалов / регистрирует старое/новое системное время, когда date изменяет его.
Для расширения этих файлов вы можете использовать модуль Perl,Пользователь::Utmpдля изменения этих файлов. В Python также есть аналогичный модуль.