Сценарии preexec и postexec

Сценарии preexec и postexec

Samba поддерживает параметры preexec и postexec, которые позволяют выполнять некоторые команды при регистрации пользователя и завершении его работы с разделяемым объектом. В качестве значения параметра preexec задаются команды, которые должны быть выполнены при регистрации пользователя, соответственно команда, указанная как значение postexec, выполняется при завершении работы пользователя с объектом. Например, если вы хотите, чтобы при обращении к разделяемому объекту сервер Samba передавал почтовое сообщение по адресу billy@harding.threeroomco.com, вы должны включить в определение этого объекта следующее выражение:

preexec = mail -s "Share being used"

 billy@harding.threeroomco.com

Если пользователь зарегистрируется для работы с объектом, Samba пошлет от его имени сообщение по адресу billy@harding.threeroomco.com. В поле Subject сообщения будет включена строка "Share being used", а по адресу отправителя получатель сможет выяснить, кто из пользователей работал с объектом.

Аналогично действует параметр postexec, но команда, заданная в качестве его значения, выполняется после окончания работы с объектом. Зная особенности работы Windows-клиентов с разделяемыми объектами SMB/CIFS, можно сделать вывод, что команда не будет выполнена сразу же после того, как пользователь закроет окно, открытое с помощью Network Neighborhood или My Network Places, но через некоторое время это обязательно произойдет.

Разновидностями параметров preexec и postexec являются параметры root preexec и root postexec. Отличаются они лишь тем, что команды, заданные в качестве значений root preexec и root postexec, выполняются от имени пользователя root. Таким образом, можно задавать команды, для выполнения которых требуются специальные привилегии. Используя эти параметры, следует соблюдать осторожность. Если вы допустите ошибку, у вас могут возникнуть проблемы, связанные с безопасностью системы.

При выполнении сценариев сервер Samba может обрабатывать переменные, перечисленные в табл. 7.1. Эти переменные позволяют настроить сценарии preexec и postexec для работы с конкретными пользователями, клиентами, операционными системами, установленными на клиентских компьютерах, и т.д. (Некоторые из переменных, представленных в табл. 7.1, специально предназначены для использования в разделяемых объектах принтеров.)

Таблица 7.1. Переменные, доступные в системе Samba

Переменная Назначение
%a Операционная система на клиентском компьютере. Возможные значения: OS2 (OS/2), Samba, UNKNOWN, WfWg (DOS или Windows for Workgroups), Win2K, Win95 (Windows 95 или 98) и WinNT
%d Идентификатор процесса сервера
%g Основная группа, к которой относится пользователь, указанный в переменной %u
%G Основная группа, к которой относится пользователь, указанный в переменной %U
%h Доменное имя сервера (в домене TCP/IP)
%H Рабочий каталог пользователя, информация о котором содержится в переменной %u
%I IP-адрес клиента
%j Номер задания на печать
%L NetBIOS-имя сервера
%m NetBIOS-имя клиента
%M Доменное имя клиента (в домене TCP/IP)
%N Сервер NIS
%p Путь к каталогу, связанному с разделяемым объектом, используемый при автомонтировании
%P Путь к каталогу, связанному с разделяемым объектом
%R Уровень протокола SMB/CIFS. Возможные значения: CORE, COREPLUS, LANMAN1, LANMAN2 и NT1
%s Имя файла, переданного разделяемому объекту принтера
%S Имя разделяемого объекта
%T Текущая дата и время
%u Эффективное имя пользователя UNIX
%U Имя пользователя, зарегистрированного в системе UNIX (может не совпадать с именем, хранящимся в переменной %u)
%v Номер версии Samba

Параметры preexec и postexec в основном предназначены для того, чтобы задавать команды, подготавливающие разделяемые объекты к использованию. Так, например, если есть опасность, что пользователь, работающий в системе Windows, по ошибке удалит конфигурационный файл Linux, сценарий preexec можно использовать для создания резервной копии этого файла. Кроме того, параметры preexec и postexec применяются для решения самых разнообразных задач; некоторые из них описаны ниже.

• С помощью сценариев preexec и postexec можно создавать и удалять символьные ссылки между совместно используемыми каталогами и рабочим каталогом пользователя. (По умолчанию Samba следует символьным ссылкам, но поведение системы можно изменить, установив параметр follow symlinks = No.)

• С помощью параметра preexec можно монтировать заменяемые носители в устройствах, соответственно сценарии postexec могут быть использованы для их размонтирования. Такая возможность очень полезна при работе с гибкими дисками, устройствами чтения компакт-дисков и другим оборудованием.

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

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

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

• Чтобы уменьшить риск потери информации, необходимо периодически создавать резервные копии данных. Разделяемый объект можно использовать для создания процедуры копирования, запускаемой по инициативе пользователя. Для этого надо создать Windows-сценарий, который открывал бы разделяемый объект Samba, копировал все файлы с компьютера в этот объект и закрывал его. Для решения данной задачи следует также построить сценарий разделяемого объекта, осуществляющий копирование данных на резервный носитель. При наличии такого объекта и сценариев пользователю остается установить носитель на устройство, запустить сценарий Windows и ожидать завершения копирования данных.

Некоторые из описанных примеров реализуются чаще других. Ряд задач (например, задачи администрирования) создают потенциальную угрозу безопасности системы, поэтому соответствующие сценарии находят лишь ограниченное применение. Поэтому приведенные выше примеры — это не описания задач, которые должны быть решены с помощью сценариев preexec и postexec, а лишь демонстрация возможностей этих сценариев.

На заметку

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

В некоторых случаях возникает необходимость ограничить число пользователей, которые могут одновременно обращаться к разделяемому объекту. Это можно сделать с помощью параметра max connections. Чтобы полностью исключить одновременные действия пользователей, надо задать параметр max connections = 1. Однако такая конфигурация иногда создает нежелательные побочные эффекты, так как при обращении к разделяемым объектам с помощью Network Neighborhood и My Network Places соединения с разделяемыми объектами закрываются с некоторым опозданием.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Глава 3 Сценарии WSH как приложения XML

Из книги автора

Глава 3 Сценарии WSH как приложения XML До сих пор мы рассматривали простые одиночные файлы сценариев, в которых мог использоваться язык JScript или VBScript. В версии WSH 1.0 это был единственный поддерживаемый тип сценариев, причем используемый язык определялся по расширению файла:


2.6. Сценарии

Из книги автора

2.6. Сценарии «Мышление... в биологическом плане возникает вслед за развитием процессов формирования образов. Оно возможно только тогда, когда будет найден способ разрушить „массированное“ влияние прежних стимулов и ситуаций, когда будет познан механизм подавления


Сценарии оболочки

Из книги автора

Сценарии оболочки Наш затянувшийся разговор о командах и командном интерфейсе подходит к концу. И в заключение этого раздела — ещё немного терпения. Потому что было бы несправедливо не уделить чуть-чуть места тому, что придает командному интерфейсу POSIX-систем его


Сценарии Samba

Из книги автора

Сценарии Samba Одна из самых привлекательных особенностей Samba — возможность выполнения сценариев. Вы можете задавать команды, которые будут выполнены при наступлении определенных событий. Благодаря поддержке сценариев Samba можно использовать для решения задач,


7.6.2.3. Сценарии

Из книги автора

7.6.2.3. Сценарии Как уже было отмечено выше, в каталоги /etc/cron* помещаются сценарии, которые нужно выполнить в указанное время. Рассмотрим шаблон типичного сценария (листинг 7.4).Листинг 7.4. Шаблон сценария#!/bin/bashкоманды Первая строка обязательна. После нее можно писать любые


Убедительные сценарии

Из книги автора

Убедительные сценарии Движущая сила убеждения основывается на сценариях, при разработке которых мы учитываем потребности каждого из персонажей, созданных еще на этапе раскрытия. Слово сценарий в последнее время можно услышать в самом разном контексте. И разные


Сценарии убеждения в действии

Из книги автора

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


53. Сценарии и документы

Из книги автора

53. Сценарии и документы Двуязычие броузера Internet Explorer делает осмысленным или необходимым применение атрибута LANGUAGE тега <SCRIPT> для указания языка сценария. При этом, поддержка двух языков вызвала введение дополнительного необязательного аргумента в тех функциях, одним


Сценарии

Из книги автора

Сценарии Шаблон проекта базы данных автоматически создает две папки для хранения сценариев SQL. Папка Create Scripts (Сценарии создания данных) содержит сценарии SQL, которые отражают предполагаемые изменения в базе данных. Изменения могут быть отложены, так как разработчик не


Сценарии создания данных

Из книги автора

Сценарии создания данных Как уже упоминалось ранее, папка Create Scripts содержит сценарии создания новых объектов базы данных, включая таблицы, представления, хранимые процедуры и ограничения. Обычно они используются для создания сценариев установки рабочей базы данных или


Сценарии изменения данных

Из книги автора

Сценарии изменения данных Для внесения изменений в существующую схему базы данных используются сценарии изменения данных. Хотя они могут создаваться вручную, все же предпочтительнее для этого использовать специальные инструменты. В главах 1, "Основы построения баз


14.9. Различные сценарии

Из книги автора

14.9. Различные сценарии Приведем еще несколько примеров. Не претендуя на оригинальность, мы отнесли их к категории


33.5. "Цветные" сценарии

Из книги автора

33.5. "Цветные" сценарии Для установки атрибутов отображения информации на экране, таких как: жирный текст, цвет символов, цвет фона и т.п., с давних пор используются ANSI[ 62 ] escape-последовательности. Эти последовательности широко используются в пакетных файлах DOS, эти же


9.2. Сценарии

Из книги автора

9.2. Сценарии Сценарий awk — это набор инструкций, состоящих из шаблонов и связанных с ними процедур. Когда утилита просматривает записи входного файла, она проверяет, установлена ли опция -F или переменная FS (о ней мы поговорим ниже), задающие разделители полей записи. По


29.4. Сценарии cgi и HTM

Из книги автора

29.4. Сценарии cgi и HTM Когда броузер генерирует запрос на загрузку страницы, Web–сервер задается в виде входящего URL. Если в качестве части URL–пути указывается cgi?bin, сервер открывает соединение, которое обычно реализует перенаправление к запрашиваемому cgi–сценарию. Входной и