воскресенье, 16 июня 2019 г.


КонсультантПлюс  "Настройка прав доступа в Linux"


Обычно совместная работа с ресурсом, где расположен  комплект Консультанта требует, чтобы у каждого пользователя были права не только на чтение, но и на запись. Такой тип доступа можно организовать стандартными средствами Linux, включив всех пользователей в одну группу и соответствующим образом настроить права. При установке WINE создается группа wine, в простом случае- когда все пользователи равноправны в доступе к данным- можно воспользоваться ею. Администратор в принципе может организовать сколь угодно сложную схему разделения прав с помощью произвольного числа групп.
  
Ниже приводятся рекомендации по настройке прав доступа к каталогу с общими данными для простого случая:

Не выставляйте права на каталог 777, т.к. это не даст результата. В первую очередь важны права на создаваемые файлы, поэтому важно правильно установить группу каталога и SGID-бит на него.

Каталог должен принадлежать той группе, куда внесены все пользователи общего ресурса, например, группе wine.

Права доступа на каталог- 770 ("rwxrwx---"), чтобы все члены группы могли модифицировать содержимое каталога.

На каталог нужно установить атрибут SetGID- режим 2770 ("rwxrws---"), чтобы все создаваемые в нем файлы принадлежали той же группе, что и каталог, а не группе создавшего файл пользователя.

В процессе работы с общим ресурсом umask пользователя должен быть выставлен в 007, т. е. "создавать файлы с правами на чтение, запись и исполнение для владельца и группы". В сочетании с атрибутом SetGID это дает доступ на чтение/запись всем пользователям группы ко всем файлам в общем каталоге. Для программ, запущенных в WINE, значение umask задается переменной UMASK в файле /etc/wine/config (по умолчанию - 002, что необходимо для административного режима).


Пример использования setwineshare: # setwineshare --set --group my1cusers /net/sharebase. В этом примере выполняется установка правильных прав на каталог/net/sharebase и его подкаталоги, присваивается группа my1cusers. Выполнять setwineshare следует с правами root. По умолчанию используется группа wine.

Обратите внимание, что при случайной установке атрибута SGID на файлы базы, расположенной по сети, они могут быть недоступны из WINE. Устанавливать биты SUID и SGID на файлы не следует.

При размещении каталога нужно учитывать, что совместный доступ к большим базам данных в КонсультантПлюс предъявляет высокие требования к жесткому диску по скорости доступа и устойчивости к нагрузке. Желательны регулярные резервные копии.
Прежде чем начинать работать с WINE, каждому пользователю, от имени которого будут запускаться win-приложения, необходимо настроить локальное win-окружение (по умолчанию оно расположено в каталоге ~/.wine/). Настройка окружения выполняется автоматически при первом запуске WINE (достаточно в командной строке ввести команду wine и дождаться завершения ее работы) или запустить любую из программ WINE через системное меню.


При первом запуске WINE создает необходимую инфраструктуру в домашнем каталоге данного пользователя, для чего выполняет следующие действия:
создает каталог который будет служить основным диском (C:) для WIN-приложений, для удобства этот каталог доступен как wine_c в домашнем каталоге пользователя.
создает необходимую иерархию каталогов на диске C: (Program Files, Windows,...), привычную для win-приложений;
создает системный и пользовательский реестры со всеми необходимыми значениями;
устанавливает необходимые системные компоненты и библиотеки DLL;
выстраивает соответствия каталогов host-системы и логических дисков WINE;

Процедуру начальной настройки win-окружения можно запустить в любой момент и впоследствии командой

$ wine --update

Единообразие настроек пользователя


При доступе к общему win-окружению у пользователей остается индивидуальной раскладка дисков (в каталоге dosdevices) и пользовательский реестр (в файле user.reg). Иногда эти настройки также требуется устанавливать централизованно.
Если нужно обеспечить одинаковые диски для всех пользователей, нужно создать скрипт какой-то.sh в /etc/wine/script.d и разместить в нем соответствующие команды map_drive по аналогии со /etc/wine/script.d/map_devices.sh, например

map_drive / z:


Настройка Linux/Samba-сервера для совместной работы по протоколу CIFS
Никаких особенных настроек делать не требуется. Если у вас сервер уже настроен и работает с Windows-клиентами, то он будет работать и с wine.

Настройке Samba посвящено множество статей в Интернете. Вот некоторые из них:
http://www.opennet.ru/docs/RUS/samba_win2000/
http://www.linuxfocus.org/Russian/March2002/article177.shtml
http://www.citforum.ru/operating_systems/linux/samba/

Замечание: При использовании одной и той же машины в качестве файлового и терминального сервера одновременно, следует устроить так, чтобы терминальные клиенты также работали с общим ресурсом посредством протокола CIFS, иначе взаимодействия не получится.


Советы по настройке SAMBA-сервера


Как правило, SAMBA-сервер поставляется с настройками по умолчанию, которые подходят для работы WINE, но следует проверить настройки, запустив на сервере команду:

testparm -v

Будут выведены все текущие значения параметров. Изменить их можно в конфигурационном файле smb.conf, который обычно находится в каталоге /etc/samba.
Рекомендуется, чтобы oplocks были включены (включены по умолчанию)- это улучшит производительность в монопольном режиме. kernel oplocks (включены по умолчанию) можно выключить, это снизит нагрузку на систему (по результатам тестирования в ошибке 3147 на 100Мбитной сети скорость отличается почти на порядок) Включенные логи (log level в значении больше 0) могут в несколько раз замедлить производительность. Проверьте, что указано use sendfile = yes (ускоряет передачу больших блоков файлов).
Какие-либо другие параметры, особенно связанные с доступом к файлам и блокировкам, использовать не рекомендуется.

Таким образом пример оптимальных настроек может быть таким:

Пример глобальных настроек в smb.conf


kernel oplocks = yes
level2 oplocks = no
use sendfile = yes
log level = 0

Остальные параметры по поводу locks/oplocks должны быть установлены по умолчанию.
Параметр strict sync включает выполнение команд по сбросу буфера на диск (flush). По умолчанию он выключен, и это ускоряет работу.


Настройка сетевого ресурса на SAMBA-сервере


В глобальных настройках следует использовать security = user.
Частой проблемой является несоответствие прав, под которым обращается самба-сервер, с правами на файлы, к которым он обращается. Например, при использовании security = share и обращении к серверу без указания пользователя/пароля он может обращаться к файлам от имени пользователя nobody или pcguest, которые вряд ли имеют права на изменение разделяемых файлов.

В примере ниже Самба с ресурсом sharewine всегда будет обращаться от имени wine к файлам в каталоге /var/local/share.

Пример секции для сетевого ресурса в smb.conf

[sharewine]
path = /var/local/share
public = yes
# valid users = user1 user2
force user = wine
writable = yes
guest ok = yes

Обратите внимание, что пользователи должны быть добавлены в систему (командой useradd) и в SAMBA (командой smbpasswd -a USER). В файл /etc/samba/smbusers нужно вписать запись wine = wine (если используется force user = wine) для установки соответствия между SAMBA и Linux-пользователями.
Такая настройка подходит как для Linux, так и для Windows-клиентов.