PAM фиксирует все неудачные попытки входа в систему в syslog, но можно заставить его записывать вообще все попытки, добавив такую строку в файл system-auth или common-account: account required pam_warn.so
Модуль pam_warn на аутентификацию не влияет, но записывает попытку в системный журнал. Еще один полезный источник информации - ConsoleKit в /var/log/ConsoleKit/history. Здесь содержатся данные не только о входе и выходе пользователей из системы, но и о переключении сеансов, как, например, переход от X к виртуальной консоли через Ctrl+Alt+F1. Есть там и сведения о входе через SSH, так что понадобится немножко магии grep, чтобы их извлечь.
grep “session-x11 -display=’:0’.*session-unix-user=1001 ” /var/log/ ConsoleKit/history Указав цифровой ID пользователя, вы увидите все его входы и выходы в X, вот в таком виде:
Многие роутеры поддерживают настройку доступа по конкретным сайтам и времени. DD-WRT-хороший и открытый вариант!
1366128164.765 type=SEAT_SESSION_ADDED : seat-id=’Seat1’ session-id=’Session65’ session-type=’’ session-x11-display=’:0’ session-x11-display-device=’/dev/tty7’ session-display-device=’’ session-remote-host-name=’’session-is-local=TRUE session-unix- user=1000 session-creation-time=’2013-04-16T16:02:44.761963Z’ 1366285984.660 type=SEAT_SESSION_REMOVED : seat- id=’Seat1 ’ session-id=’Session65’ session-type=’’ session-x11-display=’:0’ session-x11 -display- device=’/dev/tty7’session-display-device=’’ session-remote- host-name=’’session-is-local=TRUE session-unix-user=1000 session-creation-time=’2013-04-16T16:02:44.761963Z’
Входы обозначаются как type=SEAT_SESSION_ADDED, а выходы - type=SEAT_SESSION_REMOVED. Каждая запись включает время начала сеанса; если же вам необходимо знать время окончания, придется конвертировать значение времени в начале строки из стандарта Unix (в секундах, прошедших с 1 января 1970 года) в привычный формат, при помощи команды: date -date=’@1366285984.660’ которая показывает, что сеанс завершился в четверг, 18 апреля, в 12:53:04. Можете совместить все это, если вас увлекает магия Awk; здесь мы даем вам поупражняться самостоятельно.
Ограничение прав администрирования
Чтобы менять эти настройки, вам нужен доступ в root, через su или sudo. Разумеется, те, кого вы пытаетесь ограничить, не должны обладать такими же правами, иначе они легко отменят ваши нововведения. При использовании su решение простое: не выдавать пароль root. А для большинства дистрибутивов с sudo запускать программы от имени root может первый созданный пользователь. Если это компьютер вашего ребенка и права администрирования принадлежат ему, войдите под его именем, создайте другого пользователя и добавьте ему привилегии. В дистрибутивах это делается по-разному; поищите в /etc/sudoers строку вида
%groupname ALL=(ALL) ALL Группа обычно называется wheel или adm. Добавьте туда своего пользователя, затем выйдите и войдите, чтобы убедиться, что вы можете использовать sudo, а после этого удалите пользователя своего ребенка из этой группы.
Это радикальный метод, из категории «все или ничего». Sudo дает большую гибкость. Отредактируйте файл sudoers при помощи visudo (никогда не делайте этого напрямую, если только вы не сидите с live CD, восстанавливая настройки после того, как сами себя заблокировали) и добавьте нечто вроде username ALL = /usr/bin/apt-get,/usr/bin/apt-cache, /usr/bin/synaptic чтобы разрешить ребенку устанавливать программы, но не более того.