Пример использования 1C и ACL
Введение
Кроме стандартного механизма прав доступа UNIX, существует еще специальное расширение оных, называемое POSIX ACL (Access Control List). Он позволяет более гибко настраивать права доступа, добавлять для файлов дополнительные группы и пользователей.
Пример использования
Допустим, мы имеем каталог, в котором находятся все базы 1C, /srv/bases. В нем имеется три подкаталога, в каждом из которых находится по одной базе от каждого подразделения фирмы. Главный бухгалтер должен иметь доступ ко всем базам. Бухгалтера из подразделений - только к базам своих подразделений.
Для каждого бухгалтера есть свой аккаунт в системе, на которую они заходят удаленно по NX. Для того, чтобы каталоги с базами были видны в окружении wine, настраиваем общую папку согласно инструкции.
Итак, нам необходимо распределить права доступа к семи каталогам таким образом:
- Главному бухгалтеру рекурсивно выдаем полный доступ ко всем семи каталогам. Для корректной работы lock-файлов баз, задаем так же права по умолчанию:
# setfacl -m u:glavbuh:rwx -R /srv/bases
# setfacl -m d:u:glavbuh:rwx -R /srv/bases
- Для того, чтобы в 1C можно было выбрать каталог с конкретной базой, сначала выставляем всем пользователям права на чтение каталога, где расположены наши семь папочек с базами:
# for i in user1 user2 user3; do setfacl -m u:$i:rx /srv/bases; done
- Каждому конкретному бухгалтеру рекурсивно выставляем полные права на нужный каталог:
# for i in user1 user2 user3; do setfacl -m d:u:$i:rwx -R /srv/bases/base_for_$i; done
- Логинимся на сервер под любым из пользователей. Запускаем 1C. Жмем "Добавить базу". Заходим в каталог с базами. Видим, что выбрать можно только разрешенные базы.