При создании файла сокета функцией bind() права доступа к полученному файлу зависят от текущего значения маски пользователя umask данного процесса. Если маска пользователя umas имеет значение 0000, то файл сокета создается с восьмеричным обозначением режима 0777 (все биты включены). В листинге каталога появляется символическое обозначение прав доступа srwxrwxrwx, которое соответствует предоставлению права на запись всем пользователям. Это значит, что к сокету может подключиться любой процесс, который затем может отправлять и получать с его помощью сообщения.
Чтобы ограничить доступ к сокету, можно до его создания изменить значение umas к с помощью встроенной функции urmask () языка Perl. Например, при использовании в качестве umask восьмеричного значения 0117 файлы сокетов создаются с правами доступа srw-rw—-—, что позволяет получить доступ к сокету только процессам, работающим с тем же идентификатором пользователя или группы, что и сервер. Значение 0177 запрещает доступ всем процессам, не работающим с тем же идентификатором пользователя, что и сервер. Например, в сервере, работающем с правами пользователя root, может быть предусмотрено создание его сокетов с использованием такого значения umask для предотвращения возможности подключения для любого клиента, который не работает с правами суперпользователя.
Если вы при использовании сокетов домена UNIX встретитесь с трудностями, проверьте права доступа к файлам сокетов и измените значение umask, если оно по соответствует вашим требованиям. В приведенных ниже примерах предусмотрена явная установка значения umask, равного 0111, перед созданием сокета. В результате создается сокет, доступный для записи всем пользователям, что позволяет подключаться любому процессу. Однако права на выполнение не устанавливаются, поскольку они не нужны для файлов сокетов. Иной способ может состоять в применении функции chmod () языка Perl.
2016-02-25 12:15:09
это интересно С появлением компьютерных игр их популярность с каждым годом набирает обороты в геометрической прогрессии. И при этом внутренний мир игры для участников зачастую становиться новым реалом, где можно проявить свои качества лидера и победителя. В помощь игрокам предоставляются мастерские, где можно без особых трудностей нарисовать макеты своего оружия и разместить их на витрине за оплату, к примеру, это могут быть csgo рулетки .