Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (38 – сервер с правами суперпользователя, часть 3)

предыдущая часть ««»» следующая часть

Строки 21-24. Блок end {}. Этот блок отвечает за уничтожение файла PID. Однако файл PID был создан во время работы сервера в качестве суперпользователя. Поэтому для уничтоже­ния файла необходимо снова приобрести привилегии суперпользователя, для чего значение действующего UID устанавливается равным значению реального UID.

Если выполнение этого блока происходит в то время, когда сервер не запущен от имени суперпользователя, то все действия, связанные с изменением привилегий, окончатся неудачей. Явная проверка такой ситуации не предусмотрена, поскольку запуск от имени непривилегированного пользователя не удастся выполнить, прежде всего, потому, что будет получен отказ при выполнении других операций, требующих доступа с правами суперпользователя, таких как открытие привилегированного порта. Для применения возможностей нового кода модуля Daemon необходимо изменить основной сценарий сервера. Для этого требуется внести следующие изменения.

1. Новые константы USER и GROUP. В начале файла значение константы PORT из­меняем на 1002, а в качестве значения константы PIDFILE задается имя файла, расположенного в каталоге /var/run. Затем определяются две новые константы, USER и GROUP, содержащие имена пользователя и группы, под которыми будет работать сервер. Эти имена должны соответствовать действи­тельным записям в файлах /etc/passwd и /etc/group, поэтому установим их значения в соответствии со своей системой.

use       constant           PORT     =>       1002;
use       constant           PIDFILE  =>       '/var/run/eliza__root. pid';
use       constant           USER     =>       'nobody';
use       constant           GROUP   =>       'nogroup';

2. Передача значений констант USER и GROUP подпрограмме init_server (). После открытия приемного сокета вызывается подпрограмма init_server () с иcпользованием ее новой формы вызова с тремя параметрами, и ей передаются имя файла PID и значения констант USЕR и GROUР.

my $pid = init_server (PIDFILE,USER, GRQUP) ;



2014-11-01 13:39:13

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония