Шрифт:
Ниже приводится содержимое файла /etc/profile, который рассматривается далее.
$ pg /etc/profile
#!/bin/sh
#
trap "" 2 3
#Установка LOGNAME export LOGNAME
#установка дополнительных путей MAN MANPATH=/usr/opt/sybase/man
export MANPATH
# Установка TZ
if [ -f /etc/TIMEZONE ]
then
. /etc/TIMEZONE
fi
# Установка TERM
if [ -z "$TERM"]
then
TERM=vt220 # для стандартного асинхронного терминала/консоли
export TERM
fi
# Разрешение пользователю на прерывание отображения исключительно совета дня
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 <CR> to exit \c'
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. Она позволяет ограничить количество дампов ядра либо дампов, выполняемых в шестнадцатеричной форме.