Читаем Linux и UNIX: программирование в shell. Руководство разработчика. полностью

#peter находится в долговременном отпуске и вернется в следующем месяце

peter

#lulu отсутствует две недели, вернется в конце месяца

lulu

dave

pauline

Рассмотрим, как функционирует сценарий. Сначала выполняется команда trap для игнорирования сигналов. Вследствие этого пользователь не может прервать выполнение сценария. Если имеется файл lock.users, сценарий продолжает выполняться. Первым делом проверяется наличие слова "alf" Если это слово присутствует, тогда не принимаются во внимание имена всех пользователей из данного файла. Не следует применять строку комментария для устранения влияния слова "all"; этот путь не приведет к успеху. Однако можно устранить из комментария имена пользователей.

Если обнаружена запись "all", блокируются имена всех пользователей, кроме пользователя root. Чтобы удостовериться в том, что найдено точное соответствие шаблону, применяют шаблон all\> команды grep. На экран для пользователей системы выводится сообщение о том, что система в данный момент недоступна.

Основной функцией является функция get_users. Она реализует просмотр файла lockout.users, причем игнорируются все строки, начинающиеся с символа хэша. Выполняется сравнение имен и проверяется, что имя пользователя root не содержится в файле. В результате этого имя пользователя root блокируется.

Регистрационное имя пользователя, находящегося в текущий момент в системе, извлекается из переменной LOGNAME и сравнивается со значением переменной names. Переменная names сохраняет имя текущего пользователя из просматриваемого файла lockout.users. Если совпадение найдено, значение переменной LOGNAME отображается вместе с сообщением. Затем пользователь завершает работу сценария.

Этот сценарий выполнялся на нескольких машинах, которые охватывали до 40 пользователей. Во время процесса регистрации скорость выполнения сценария была довольно высока. Сценарий использовался с целью временной блокировки доступа для тех пользователей, которые отсутствовали более недели. Кроме того, доступ для отдельных пользователей блокировался ежедневно на определенное время, в течение которого обновлялись жизненно важные системы.

В файл /etc/profile следует поместить следующую строку. Эта строка может быть размешена в конце файла, тогда пользователи получат возможность просматривать это сообщение первым среди дополнительных сведений.

. /apps/bin/deny.access

Каталог /apps/bin является областью, где можно хранить все глобальные сценарии. Возможно применение другой области, однако при этом следует убедиться в том, что каждый пользователь может выполнить этот сценарий и воспользоваться каталогом, в котором он находится.

Если получено сообщение об ошибке "permission denied" ("разрешения нет"), значит, сценарий или каталог не имеют достаточного уровня разрешения.

В данном случае файл lockout.users находится в каталоге /apps/etc. Этот каталог можно изменить, поскольку ваша структура наверняка отличается от рассматриваемой. Поскольку файл является исходным, с помощью команды set можно просматривать код функции (но не фактический файл lockout.users). Если это затруднительно, примените команду unset для удаления функции после ее выполнения. Поместите команду unset непосредственно после обращения к сценарию в файл /etc/profile. Например:

unset get_users

Сценарий имеет следующий вид:

$ pg deny.access

#!/bin/sh

#deny.access

trap "" 2 3

#откорректируйте следующую строку,

#если местоположение файла LOCKOUT.USERS изменено.

LOCKOUT=/apps/etc/lockout.users

MSG="Sorry $LOGNAME, your account has been disabled, ring the administrator"

MSG2="Sorry $LOGNAME, the system ls unavailable at the moment"

check_lockout ()

#check_lockout

#проверка наличия файла, содержащего имена для блокировки

{

if [ -r $LOCKOUT ] ; then

return 0

else

return 1 fi

}

get_users ()

#get_users

#чтение файла, если содержимое LOGNAME совпадавет с именем в lockout.users

#отбросьте его!

{

while read NAMES

do

case $NAMES in

\#*);; #игнорируйте комментарии

*)

#если кто‑либо попытается блокировать root,

#в этом сценарии ему это сделать не удастся

if [ "$NAMES"="root" ]; then

break

fi

if [ "$NAMES"="$LOGNAME" ]; then

Перейти на страницу:

Похожие книги

112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)
112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)

  По Парижу приятно гулять, бесцельно бродить, кружить по узким улочкам, отдыхать в маленьких кафе и в парках у фонтанов. Здесь есть все для любителей архитектуры, ценителей живописи, театралов, меломанов, гурманов, поклонников всевозможных развлечений. Париж притягивает, удивляет, очаровывает, постепенно приоткрывая тайны любознательному гостю, который теряется от сложности выбора: что же увидеть прямо сейчас, а что отложить на потом. Мои 112 страниц про Париж, надеюсь, помогут сделать этот выбор. Предложенные 7 прогулок по городу включают в себя не только известные всему миру достопримечательности, но и множество других, которые часто остаются за пределами стандартных туристических маршрутов.  

Елена Р Стамбулян , Елена Р. Стамбулян

Руководства / Путеводители / Словари и Энциклопедии
40+. Уход за телом
40+. Уход за телом

Женщина после 40 лет – настоящая богиня, умудренная опытом и оттого еще более прекрасная. Но чтобы надолго сохранить красоту и молодость, нужно постоянно собой заниматься: ухаживать за своим телом, руками и ногами, выполнять физические упражнения и соблюдать диету. Благодаря этой книге вы научитесь самостоятельно готовить омолаживающие, питательные, увлажняющие кремы и маски, а также скрабы и пилинги из натуральных продуктов; выполнять легкие и эффективные упражнения для стройной фигуры и профилактики варикозного расширения вен, делать массаж рук и ног, навсегда избавитесь от целлюлита и сможете легко ориентироваться в выборе омолаживающих процедур в СПА-салонах и хирургических операций в клиниках красоты. Правила здорового питания, популярные диеты и рецепты полезных блюд – в этой книге есть все, что поможет 40-летним женщинам всегда быть в форме.

Анастасия Витальевна Колпакова

Здоровье / Руководства / Здоровье и красота / Дом и досуг / Словари и Энциклопедии