Выбрать главу

Существуют и другие типы файлов passwd. В одном из вариантов поле passwd фактически находится в другом файле. Однако приведенный выше формат является наиболее распространенным.

После успешной регистрации выполняются два файла среды. Первым является файл /etc/profile, а вторым — файл .profile, расположенный в начальном каталоге $HOME.

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

13.1. Файл /etc/profile

Информация файла профиля, находящегося в каталоге /etc, автоматически считывается при регистрации каждого пользователя. Этот файл обычно содержит: • глобальные или локальные переменные среды;

   • информацию о пути к файлам в переменной path;

   • параметры терминала; а также

   • меры безопасности;

а совет дня или сведения о причинах отказа.

Далее приводится краткое объяснение перечисленных выше пунктов.

Некоторые глобальные переменные среды устанавливаются так, что к ним обеспечивается доступ со стороны пользователей, а также shell–процессов и приложений.

В переменной path хранится местоположение каталогов, включающих исполняемые файлы, библиотеки и простые файлы, благодаря чему их можно быстро найти.

Параметры терминала содержат наиболее общие характеристики используемого терминала.

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

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

Ниже приводится содержимое файла /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 вносит их в список поиска по страницам уже имеющегося справочного руководства.