Чтение онлайн

на главную - закладки

Жанры

Сетевые средства Linux

Смит Родерик В.

Шрифт:

3. Создание образа диска с помощью

mkisofs
или другой подобной утилиты.

4. Запись образа на компакт-диск с помощью

cdrecord
или другой утилиты.

5. Удаление образа диска и файлов, из которых он был создан.

Описание разделяемого объекта, предназначенного для решения данных задач, выглядит следующим образом:

[cd-create]

path = /home/samba/cd-create

create mask = 0666

directory mask = 0777

read only = No

max connections = 1

preexec = /bin/rm -r %P/*

postexec = /usr/local/bin/create-cd %H %P %U

Параметр preexec решает первую задачу. Вторая задача решается с помощью обычных операций Samba. Для решения задач 3-5 предназначен сценарий

/usr/local/bin/create-cd
, указанный в качестве значения второго параметра. Код этого сценария приведен в листинге 7.1.

Листинг 7.1. Сценарий, предназначенный для записи компакт-диска

#/bin/sh

# $1 - Рабочий каталог пользователя, выполняющего запись на диск

# $2 - Каталог с исходными файлами

# $3 - Имя пользователя, выполняющего запись на диск

mkisofs -J -r -о $1/image.iso $2

cdrecord speed=2 dev=4,0 $1/image.iso

mail -s "CD-R creation finished" $3

rm $1/image.iso

rm -r $2/*

Для создания описанного выше разделяемого объекта выполните следующие действия.

• Создайте сценарий

create-cd
и сохраните его в каталоге
/usr/local/bin
. Для файла, содержащего сценарий, надо установить права, позволяющие запускать его на выполнение (это можно сделать с помощью команды
chmod а+x /usr/local/bin/create-cd
). Опции утилит
mkisofs
и
cdrecord
необходимо выбрать в соответствии с характеристиками вашего устройства записи.

• Создайте разделяемый объект Samba с именем

[cd-create]
. При желании вы можете задать каталог, отличный от того, который был указан выше, но следите за тем, чтобы права доступа, установленные для него, позволяли всем пользователям читать и записывать данные.

• Установите признак SUID для исполняемой программы

cdrecord
. Для этого можно использовать команду
chmod a+s /usr/bin/cdrecord
. В некоторых дистрибутивных пакетах для организации доступа к данной утилите создана специальная группа. Вы можете включить в эту группу пользователей, которым необходимо записывать компакт-диски, либо использовать параметр
forсе group
. Можно поступить и по-другому: заменить в определении объекта
[cd-create]
параметр
postexec
на
root postexec
. Необходимо лишь обеспечить, чтобы сценарий
create-cd
выполнялся с привилегиями, достаточными для успешного запуска утилиты
cdrecord
.

После выполнения описанных выше действий вы можете использовать созданный разделяемый объект. Работая в системе Windows, можно смонтировать этот объект с помощью Network Neighborhood или My Network Places. Для этого надо щелкнуть правой кнопкой мыши на имени объекта и выбрать в контекстном меню пункт Map Network Drive. Затем следует связать разделяемый объект с именем устройства. Монтирования каталога пользователь должен скопировать файлы, предназначенные для записи на компакт-диск, на сервер Samba. Он может перемещать файлы в пределах каталога, копировать, удалять их и выполнять другие подобные действия. Когда пользователь будет готов начать запись, ему следует вставить чистый диск в устройство и размонтировать разделяемый объект, щелкнув правой кнопкой мыши на соответствующем ему пункте в окне My Computer и выбрав в контекстном меню пункт Disconnect.

К сожалению, при активизации этого пункта меню Windows может не разорвать соединение с объектом. В этом случае придется завершить сеанс работы или (при использовании Windows 9x/Me) перезагрузить компьютер. Через некоторое время (от нескольких секунд до нескольких минут) начнется запись на компакт-диск, по завершении которой пользователю, инициировавшему данную задачу, будет передано почтовое сообщение. Получив сообщение, пользователь может извлечь диск из устройства и проверить качество записи на своей машине.

Определение разделяемого объекта и код сценария, приведенные в данном примере, далеки от совершенства. В сценарии не приняты меры, запрещающие одновременное обращение к разделяемому объекту двух пользователей. Поэтому, если пользователь предпримет попытку начать запись до того, как другой пользователь извлечет свой диск из устройства, неминуемо возникнет проблема. Кроме того, сценарий не оповещает пользователя об ошибках. Например, если образ диска слишком велик и не может быть записан на имеющийся носитель, пользователь узнает об этом лишь тогда, когда попытается прочесть записанные данные. Более совершенный сценарий должен сообщать о возникающих проблемах или устранять их самостоятельно. Наконец, следует заметить, что различные версии Samba по-разному интерпретируют переменную

%P
, поэтому описание разделяемого объекта необходимо изменять в зависимости от конкретных условий работы.

Использование псевдопринтера для записи компакт-дисков

Механизм псевдопринтеров позволяет записывать компакт-диски способом, более удобным для пользователей Windows 9x/Me, однако применение данного средства не так очевидно, как действия, основанные на использовании разделяемого объекта файлов. Данный подход заключается в следующем. Windows-клиент передает серверу Samba zip-архив, который содержит файлы, предназначенные для записи на компакт-диск. Разделяемый объект вызывает сценарий, который распаковывает архив, и записывает извлеченные из архива файлы на компакт-диск. Данный сценарий представляет собой разновидность сценария

create-cd
. Описание разделяемого объекта выглядит следующим образом:

[cd-print]

path = /var/spool/samba

printable = Yes

print command = /usr/local/bin/print-cd %H %s %U %P; rm %s

Как и в предыдущем примере, вам необходимо уточнить особенности обработки переменной

%P
в вашей версии Samba. Возможно, удобнее будет заменить эту переменную значением
/var/spool/samba
. Основную часть работы по записи компакт-диска выполняет сценарий, код которого представлен в листинге 7.2.

Поделиться:
Популярные книги

Вернадский

Гумилевский Лев Иванович
325. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Вернадский

“Цесаревич” Часть I. Эскадренный броненосец. 1899-1906 гг.

Мельников Рафаил Михайлович
Боевые корабли мира
Научно-образовательная:
история
технические науки
военная техника и вооружение
военная история
4.00
рейтинг книги
“Цесаревич” Часть I. Эскадренный броненосец. 1899-1906 гг.

Мятежник

Прокофьев Роман Юрьевич
4. Стеллар
Фантастика:
боевая фантастика
7.42
рейтинг книги
Мятежник

Газлайтер. Том 16

Володин Григорий Григорьевич
16. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
6.40
рейтинг книги
Газлайтер. Том 16

Старый, но крепкий 5

Крынов Макс
5. Культивация без насилия
Фантастика:
рпг
аниме
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 5

Наномашины, сынок! Том 1

Новиков Николай Васильевич
1. Чего смотришь? Иди книгу читай
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наномашины, сынок! Том 1

Изгой Проклятого Клана. Том 5

Пламенев Владимир
5. Изгой
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Изгой Проклятого Клана. Том 5

Геррон

Левински Шарль
Проза:
современная проза
7.71
рейтинг книги
Геррон

Месть Паладина

Юллем Евгений
5. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Месть Паладина

Кодекс Охотника XXVIII

Винокуров Юрий
28. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника XXVIII

Вечный. Книга III

Рокотов Алексей
3. Вечный
Фантастика:
фэнтези
попаданцы
рпг
5.25
рейтинг книги
Вечный. Книга III

Поворот Колеса

Уильямс Тэд
4. Орден Манускрипта
Фантастика:
фэнтези
7.33
рейтинг книги
Поворот Колеса

Сборник "Приграничье" (1-5 части)

Корнев Павел Николаевич
Приграничье
Фантастика:
боевая фантастика
9.02
рейтинг книги
Сборник Приграничье (1-5 части)

Одержимый

Джеймс Питер
Top Thriller
Детективы:
триллеры
маньяки
8.67
рейтинг книги
Одержимый