Операционные системы - статьи

Другие файлы и команды


Файлы протоколов, упоминаемые в /etc/syslog.conf обычно располагаются в каталоге /var/log и его подкаталогах. Но, если заглянуть в этот каталог, то мы обнаружим там несколько файлов, которые в /etc/syslog.conf не упоминались.

Файл dmesg. Необходимо сказать, что в Linux имеется команда с таким же названием и если сравнить вывод этой команды (когда она запущена без параметров) с содержимым файла /var/log/dmesg, то обнаружится, что они очень похожи, хотя и не идентичны (направьте вывод команды в файл dmesg2 и сравните файлы dmesg и dmesg2). Точнее, файл /var/log/dmesg один в один совпадает с началом того вывода, который мы получим по команде dmesg. В ядре имеется кольцевой буфер, в который записываются сообщения демона протоколирования ядра - сообщения, которые записываются в этот буфер в процессе загрузки, и составляют содержание файла /var/log/dmesg. По-видимому, этот файл формируется по окончанию загрузки системы.

Все сообщения категории kern выдаются также и на консоль, где они быстро пробегают и вы вряд ли успеваете их прочитать и осмыслить, но зато они сохранены в файле /var/log/dmesg. После окончания процесса загрузки запись сообщений от ядра в кольцевой буфер продолжается и когда выполняется команда dmesg, то выдается текущее состояние буфера, поэтому вывод этой команды содержит больше сообщений, чем файл /var/log/dmesg.

Все сообщения из /var/log/dmesg можно обнаружити и в файле /var/log/messages, только там они чередуются с сообщениями от других программ. Имеется только одно существенное различие: в файле dmesg время и источник сообщения (имя хоста и категория сообщения) не указываются. Хост тут всегда , а начало отсчета времени определяется последней перезагрузкой компьютера.

Файлы lastlog и wtmp. Файл lastlog хранит информацию о последнем входе пользователя в систему, например:

Last login: Wed Oct 9 19:25:53 on tty1

Эта строка формируется утилитой login, которая после авторизации пользователя обращается к файлу /var/log/lastlog, извлекает оттуда информацию о предыдущем успешном входе, выдает ее на экран, а затем обновляет запись в файле lastlog.
В отличие от файла /var/log/lastlog, который содержит записи о времени последнего входа в систему каждого пользователя, в файле /var/log/wtmp запоминаются все входы и выходы пользователей в систему с момента создания этого файла. Если же вы хотите узнать, кто из пользователей работает в системе в данный момент, надо обратиться к файлу /var/run/utmp. Между прочим, руководство man утверждает, что простые пользователи должны быть лишены права записи в файл utmp, так как многие системные программы (по каким-то необъяснимым причинам) зависят от его целостности. Вы рискуете нарушить работу системы, если предоставите любому пользователю возможность производить записи в файл utmp. Как и в файле lastlog, записи в /var/log/wtmp и /var/run/utmp делаются в двоичном формате, так что просматривать их можно только с помощью специальных команд.

Команда last выводит все записи из файла /var/log/wtmp, т. е. историю работы пользователей в системе. При этом указывается имя пользователя, терминал, время входа и выхода из системы, а также продолжительность сеанса работы. В случае, если работа пользователя прервалась из-за отключения самой системы, вместо времени выхода пользователя стоит слово . Время повторного запуска отображается отдельными строками, начинающимися словом . Команда lastb подобна last, но выводит информацию о неудачных попытках входа в систему (эта команда будет работать только в том случае, если существует файл /var/log/btmp). Впрочем, ни одна из рассматриваемых в этом разделе программ не создает файлов регистрации, поэтому если какой-то из них удален, то ведение записей заканчивается.

Команда lastlog форматирует и выводит содержание файла /var/log/lastlog: имя пользователя, имя терминала, время последнего входа в систему. По умолчанию (когда команда введена без параметров) элементы файла /var/log/lastlog будут выводиться в порядке номеров идентификаторов пользователей. Если указать параметр -u login-name, будет выведена только информация о времени последнего входа указанного пользователя.Указав параметр -t days, вы получите только записи за последние days дней. Если пользователь вообще пока не заходил в систему, то вместо имени терминала и времени последнего входа будет указана строка .

Для вывода информации о том, кто работает в текущий момент в системе, используются команды w, who и users. Наибольшую информацию выводит команда w, которая кроме параметров системы выдает подробную информацию для каждого пользователя.


Содержание раздела