Кроме назначенных прав доступа пользователям или группам пользователей, существует возможность регулирования доступа к конкретным ресурсам сервера (слоям, картам и т.д.). Для этого права доступа назначаются папкам, находящимся в области данных сервера, где располагаются эти ресурсы, начиная с корневой. Права доступа, назначенные папке, автоматически применяются ко всем ресурсам, находящимся в этой папке, а также ресурсам, находящимся в подпапках, если для них отдельно не указаны иные права доступа.
Для каждой папки можно определить, кто имеет право работать с данными этой папки, а также задать правила, по которым пользователям, имеющим доступ к этим данным, назначались бы определенные права доступа к ним.
Например, часть данных можно определить для публичного просмотра, часть – только для некоторых служб или подразделений, при этом редактирование этих данных разрешить только определенным лицам.
Для того чтобы назначить права доступа папке, необходимо наличие в этой папке файл правил доступа .zsaccess. Имя файла правил доступа можно задать иным в файле конфигурации ZuluServ.cfg:
#Фрагмент файла ZuluServ.cfg RuleFile .zsaccess
Файл .zsaccess имеет текстовый формат файла конфигурации, который содержит данные о том, кто имеет доступ к этой папке, и набор правил доступа, сообщающих, кто какие права имеет при доступе к данным в этой папке.
#Фрагмент файла .zsaccess require valid-user <permit> deny write </permit> <permit> group: Geo-Editors allow: write </permit>
Оператор require определяет, кто имеет доступ к данным. Он может принимать следующие значения:
Таблица 4. Значения require
Значение |
Описание |
---|---|
valid-user |
Доступ имеют зарегистрированные пользователи |
user user1 user2 userN |
Доступ имеют указанные пользователи |
group group1 group2 groupN |
Доступ имеют указанные пользователи |
Файл может содержать несколько строк с операторами require user и require group, чтобы указать все группы и отдельных пользователей, кому разрешается доступ к данным. Если оператор require отсутствует в файле правил, это означает, что к данным в этой папке имеют доступ все пользователи, включая анонимных.
Для задания правил доступа файл .zsaccess может содержать одну или несколько секций permit. В секции permit с помощью параметров user и group указывается, на кого распространяется данное правило, а далее параметрами allow и deny задаются операции, которые разрешаются или запрещаются. Если секция permit не содержит параметров user или group, указанное правило распространяется на любого пользователя, обратившегося к данным.
При определении, какие права доступа к ресурсу имеет пользователь, сначала выясняется, имеет ли пользователь в принципе доступ к этой папке (оператор require), а дальше применяются правила доступа в том порядке, в каком они описаны в файле .zsaccess. В результате выясняется, какие операции доступны пользователю для данного ресурса, а какие нет. Если запрашиваемая операция не разрешена, то пользователь получит отказ с сообщением «Не хватает прав доступа».
В примере, приведенном выше, доступ к папке имеют только зарегистрированные пользователи. Далее, только пользователи из группы Geo-Editors имеют право редактировать данные, остальные не имеют право как бы то ни было изменять данные.