Права доступа к ресурсам

Кроме назначенных прав доступа пользователям или группам пользователей существует возможность регулирования доступа к конкретным ресурсам сервера (слоям, картам и проч.). Для этого права доступа назначаются папкам, находящимся в области данных сервера, где располагаются эти ресурсы, начиная с корневой. Права доступа, назначенные папке, автоматически применяются ко всем ресурсам, находящимся в этой папке, а также ресурсам, находящимся в подпапках, если для них отдельно не указаны иные права доступа.

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

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

Для того, чтобы назначить права доступа папке, необходимо наличие в этой папке файл правил доступа .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 имеют право редактировать данные, остальные не имеют право как бы то ни было изменять данные.