# Разрешение пользователю на прерывание отображения исключительно совета дня
trap "trap ' '2" 2
if [ -f /usr/bin/cat ] ; then
cat -s /etc/motd
fi
trap "" 2
if [ -f /usr/bin/mail]; then
if mail -e; then
echo "Hey guess what? you have mail"
fi
fi
#установка значения umask для более безопасного осуществления операций
umask 022
#установка сред
SY$HOME=/appdvb/menus
ASLBIN=/asl_b/bin
UDTKOME=/dbms_b/ud
UDTBIN=/dbms_b/ud/bin
PAGER=pg
NOCHKLPREQ=1
PATH=$PATH:$UDBIN:$ASLBIN
export PATH UDTHOME UDTBIN PAGER NOCHKLPREQ SY$HOME
trap 2 3
# Установка переменной SAVEDSTTY так, чтобы переменную можно было
# использовать для восстановления
# настроек stty при выходе из системы аудита.
SAVEDSTTY=`stty -g`; export SAVEDSTTY
# регистрация всех связей в syslog
logger -p lосаl7.info -t login $LOGNAME 'tty'
trap 'logger -p local7.info -t logout $LOGNAME 'tty'' 0
# отмена создания файлов дампа ядра
ulimit -с D
#
# проверка, зарегистрированы ли пользователи более двух раз, не считая…
case $LOGNAME in
idink | psalon | dave)
;;
*)
PID-$($); export PID
Connected=`who | awk '{print $1}' | fgrep -xc ${LOGNAME}`
if [ "$Connected" -gt 2 ]
then
echo
echo 'You are logged in more than twice.'.
echo `who -u | grep $LOGNAME`
echo
echo 'Enter
read FRED
kill -15 $PID
fi
;;
esac
# установка приглашения, включающего идентификатор пользователя
P$1="$LOGNAME>"
Если вам непонятны некоторые из приведенных выше команд, не стоит огорчаться. Все команды описаны далее в этой книге. А к данному листингу можно вернуться в любой момент.
Рассмотрим последовательно, какие действия выполняются в приведенном листинге.
Первая строка является командой, задающей перехват двух сигналов, которые не дают пользователям возможности прервать выполнение файла с помощью нажатия клавиш [Quit] или [Ctrl+C].
Затем экспортируется значение переменной LOGNAME. В данной системе введены дополнительные справочные страницы (страницы man). Переменная MANPATH вносит их в список поиска по страницам уже имеющегося справочного руководства.
В приведенном листинге проверяется файл часового пояса и соответствующий исходный файл, если таковой существует. Затем устанавливается режим эмуляции терминала, соответствующий значению vt220.
Далее в листинге отменяется режим перехвата символов, чтобы пользователи могли отменить отображение совета дня. Однако в следующих строках листинга этот режим восстанавливается.
Затем определяется почтовое сообщение (это сообщение пользователь получает, если для него имеется новая почта).
В следующем фрагменте листинга устанавливается значение unmask, разрешающее создание файлов, для которых установлены определенные права доступа, заданные по умолчанию.
Далее инициализируются переменные среды. После установки и экспорта они становятся доступными каждому пользователю.
В следующей строке листинга восстанавливается перехват сигналов, соответствующих клавишам [Quit] или [Ctrl+C].
Затем происходит сохранение заданных по умолчанию параметров стандартного терминала stty. В результате этого при выходе пользователей из системы аудита можно повторно инициализировать параметры терминала.
Потом регистрируются все подключения пользователей в файле /var/adm/mes‑sages, который по умолчанию является журнальным файлом системы.
В следующей строке листинга выполняется команда ulimit. Она позволяет ограничить количество дампов ядра либо дампов, выполняемых в шестнадцатеричной форме.
После этого следует небольшой фрагмент кода, который дает пользователям возможность регистрироваться дважды, но только одновременно для двух пользователей. Это правило не распространяется на следующих трех пользователей: idink, psalom, dave. Остальным пользователям будет отказано в доступе, если они попытаются зарегистрироваться более двух раз.