WINE@Etersoft/Организация совместной работы
Содержание
Организация совместной работы
Чтобы сделать возможной одновременную работу нескольких пользователей с одним ресурсом (например, с базой данных 1C), потребуется выполнить два основных этапа:
- настроить права доступа;
- организовать одновременный доступ к общему ресурсу с нескольких рабочих мест.
Настройка прав доступа
Обычно совместная работа с базой данных и подобными ресурсами требует, чтобы у каждого пользователя были права не только на чтение, но и на запись. Такой тип доступа можно организовать стандартными средствами Linux, включив всех пользователей в одну группу и соответствующим образом настроив права. При установке WINE создаётся группа wine
, в простом случае -- когда все пользователи равноправны в доступе к данным -- можно воспользоваться ею. Администратор однако волен организовать сколь угодно сложную схему разделения прав с помощью произвольного количества групп. Ниже приводятся рекомендации по настройке прав доступа к каталогу с общими данными для простого случая:
- Каталог должен принадлежать той группе, куда внесены все пользователи общего ресурса, например, группе
wine
. - Права доступа на каталог --
770
(rwxrwx---
), чтобы все члены группы могли модифицировать содержимое каталога. - На каталог нужно установить атрибут SetGID -- режим
2770
(rwxrws---
), чтобы все создаваемые в нём файлы принадлежали той же группе, что и каталог, а не группе создавшего файл пользователя. - В процессе работы с общим ресурсом
umask
<ref>umask
определяет, какие права доступа по умолчанию будут получать файлы, создаваемые пользователям. Подробности -- в руководстве поumask
.</ref> пользователя должен быть выставлен в007
, т. е. "создавать файлы с правами на чтение, запись и исполнение для владельца и группы". В сочетании с атрибутом SetGID это даёт доступ на чтение/запись всем пользователям группы ко всем файлам в общем каталоге. Для программ, запущенных в WINE, значениеumask
задаётся переменнойUMASK
в файле/etc/wine/config
(по умолчанию -- 002, что необходимо для административного режима).
setwineshare
, который выполняет перечисленные действия для указанного в качестве параметра каталога.
Пример использования setwineshare: # setwineshare --set --group my1cusers /net/sharebase
. В этом примере выполняется установка правильных прав на каталог/net/sharebase и его подкаталоги, присваивается группа my1cusers. Выполнять setwineshare следует с правами root
. По умолчанию используется группа wine.
Настройка доступа через ACL
При использовании ACL для ограничения доступа к файлам базы данных имеются нюансы. Подробнее см. на http://kb.etersoft.ru/Пример_использования_1C_и_ACL
Доступ к общему ресурсу
Каталог с общими данными необходимо сделать доступным для win-приложений каждого пользователя. Делается это стандартным способом: в локальном win-окружении каждого пользователя создаётся символьная ссылка на каталог с общими данными в каталоге dosdevices
. Сам этот общий каталог может располагаться где угодно, единственное требование: он должен быть доступен в файловой системе на каждом рабочем месте. y Есть две принципиальные возможности сделать общий каталог доступным одновременно с нескольких рабочих мест:
Терминальный сервер
Win-приложение установлено и выполняется на сервере, там же размещены общие ресурсы. Все пользователи получают тонкие клиенты: их приложения запускаются на сервере, а рабочие станции служат только для ввода и вывода данных.
Разделяемый сетевой ресурс
Win-приложение установлено и выполняется на рабочих станциях пользователей. Общие данные предоставляются пользователям в виде разделяемого сетевого ресурса (NFS или CIFS).
Терминальный сервер
Случай терминального сервера с точки зрения запуска win-приложений в WINE ничем не отличается от совместной работы нескольких локальных пользователей на одной машине, поэтому задача настройки сводится к правильной организации прав доступа (см. следующий раздел).
Подробнее о существующих программах для организации удалённого доступа к серверу приложений см. в разделе Организация терминального сервера.
Разделяемый сетевой ресурс
Это такая конфигурация, когда win-приложения каждый пользователь запускает локально на своей рабочей станции, а общие данные располагаются на удалённом сетевом ресурсе (сервере), смонтированном в каталог локальной файловой системы на каждой рабочей станции. С точки зрения win-приложения такая ситуация также неотличима от работы с обычным локальным ресурсом.
На настоящий момент для совместной работы по сети поддерживаются сетевые файловые системы NFS и CIFS.
При использовании NFS совместная работа возможна только между Unix-машинами (Windows-клиенты нельзя подключать). При использовании CIFS возможна гетерогенная работа (смешанная работа Linux- и Windows-клиентов).
Подробнее о настройке файловых серверов и клиентов см. в разделах документации Настройка совместной работы по протоколу CIFS и Настройка совместной работы по NFS в Linux.
Настройка win-окружения
Последний -- и самый важный -- необходимый шаг: включить каталог с общими ресурсами в win-окружение каждого пользователя WINE. Делается это стандартным способом: созданием или изменением символьной ссылки в домашнем каталоге пользователя в .wine/dosdevices/
(также можно воспользоваться вкладкой Диски
программы winecfg
). К примеру, если каталог с общими данными у нас находится в /var/1c/
, то можно включить его для конкретного пользователя WINE в качестве диска f:
:
[tester@test tester] cd .wine/dosdevices [tester@test tester] ln -s /var/1c/ f: [tester@test tester] ls -l f: lrwxrwxrwx 1 tester tester 12 Ноя 1 19:21 f: -> /var/1c
Можно внести создание этого диска в сценарий в каталоге /etc/wine/script.d/
, тогда он будет создаваться автоматически в каждом win-окружении пользователя при первом запуске WINE (см. подробнее в разделе Единообразие настроек пользователя).