Приемы профессиональной работы в UNIX


ОСВЕДОМЛЕННОСТЬ ПОЛЬЗОВАТЕЛЯ - часть 7


ИМЯ: watch

watch Наблюдение за регистрацией указанных пользователей

НАЗНАЧЕНИЕ

Следит за тем, кто работает в системе, и сообщает о регистрации указанных пользователей.

ФОРМАТ ВЫЗОВА

watch [-k] [login_name ...]

ПРИМЕР ВЫЗОВА

watch Наблюдение за регистрацией всех пользователей, указанных во внутренней переменной LIST

ТЕКСТ ПРОГРАММЫ

1 : 2 # @(#) watch v1.0 Watch for specific logins Author: Russ Sage 2а Наблюдение за регистрацией пользователей   4 if [ "`echo $1 | cut -c1`" = "=" -a "$1" != "-k" ] 5 then echo "watch: invalid argument $1" >&2 6 echo "usage: watch [-k] [login_name ...]" >&2 7 echo " -k kill background process" 8 exit 1 9 fi   11 if [ "$1" = "-k" ] 12 then if [ -s $HOME/.watch ] 13 then echo "killed `cat $HOME/.watch`" 14 kill `cat $HOME/.watch` 15 rm $HOME/.watch 16 exit 0 17 fi 18 fi   20 echo $$ > $HOME/.watch   22 LIST="root sys bin administrator1 administrator2 $*"   24 while : 25 do 26 for NAME in `who | cut -d" " -f1` 27 do 28 for PERSON in $LIST 29 do 30 if [ "$NAME" = $PERSON" ] 31 then echo ONLINE: $NAME 32 fi 33 done 34 done 35 sleep 10 36 done &

ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ

HOME Полный маршрут к вашему регистрационному каталогу
LIST Список имен пользователей системы, разделенных пробелами
NAME Содержит имена зарегистрированных в настоящий момент пользователей
PERSON Отдельное имя из списка имен в переменной LIST

ОПИСАНИЕ

Зачем нам нужен командный файл watch?

В течение рабочего дня множество людей входят в систему и выходят из нее. Иногда единственный способ связаться с человеком - через машину. Нам нужно средство, которое автоматически сообщит нам, что нужное лицо на связи.

Что делает watch?

Подразумевается, что watch является фоновой задачей, которая постоянно следит за тем, кто зарегистрировался. Когда лицо или лица, предварительно вами отмеченные, регистрируются в системе, на ваш экран выводится сообщение о том, что они на связи.

Количество имен, за которыми вы можете следить, не ограничено. Общий перечень имен - это объединение имен, указанных в командной строке, и списка системных пользователей, т.е. пользователя root и всех сопровождающих его администраторов. В командном файле watch список системных имен ВСЕГДА включен. Это вызвано тем, что это важные пользователи и вы хотите всегда знать об их входе в систему и выходе из нее. Это отличает watch от uchk, поскольку последний требует указания опции -a для включения списка с системными именами.

Хотя мы устанавливаем watch с точки зрения пользователя, который желает следить за администраторами и другими пользователями, администраторы тоже могут иметь список "критических пользователей" или предполагаемых нарушителей защиты информации и использовать watch для получения сигнала о регистрации таких пользователей.

За кем бы мы ни следили, мы сталкиваемся с одной проблемой. После регистрации в системе указанного лица сообщение об этом поступает на ваш экран, не обращая внимания на то, чем вы в данное время занимались, что не очень приятно. Единственный способ остановить вывод сообщения - аварийно завершить watch командой kill. Это легко сделать путем помещения идентификатора этого процесса в файл $HOME/.watch. Затем этот номер может быть использован в операторе kill для остановки выполнения командного файла. Для того чтобы попроще избавиться от watch, возможность аварийного завершения оформлена в виде опции -k данного командного файла.

ПРИМЕРЫ




Начало  Назад  Вперед