Сегодня в статье поговорим о том, как можно настроить wine для использования его несколькими пользователями в вашей системе Linux.
Для примера я буду использовать легковесный дистрибутив XUbuntu, для всех производных операционок, таких как Ubuntu, Debian и т.д. инструкция будет идентичной.
Для начала установим wine на Вашу систему. Как это сделать я описывал в данной статье.
Будем считать что wine у вас установлен, для первого запуска достаточно набрать следующую команду:
wineboot
Программе потребуется некоторое время, а также недостающие зависимости, такие как mono
и geckoo
. Соглашаемся со всеми установками. После установки всех недостающих программ в директории пользователя появится директория ~/.wine
. Если вы ее не видите, то нажмите сочетание клавиш ctrl+h
.
Настройка многопользовательского wine
Давайте перенесем нашу только, что созданную директорию в директорию /etc
.
sudo mv ~/.wine /etc/wine
Создадим общую группу для всех наших существующих и будущих пользователей.
sudo groupadd samba
Добавим нашего пользователя в данную группу.
sudo usermod -a -G samba myuser
Назначим группу и пользователя на нашу директорию /etc/wine
sudo chown -R myuser:samba /etc/wine
Теперь создадим символическую ссылку на директорию из /etc/wine
в директорию нашего пользователя.
ln -s /etc/wine /home/myuser/.wine
А также изменим права на директорию и файлы, чтобы только наш пользователь и группа могли читать и изменять файлы :
chmod -R 6770 /etc/wine
Давайте теперь запустим нашу программу с помощью wine например regedit.exe
wine regedit.exe
Да! Все запускается, но что если создать нового пользователя и не проходить заново установку и настройку wine, а использовать уже установленный и настроенный, со всеми программами которые нам нужны.
Если Вы попробуете просто создать символическую ссылку на директорию /etc/wine
, то программы установленные для пользователя myuser не запуститься под новым пользователем . Потому-что wine требует права юзера на некоторые фалы в своей директории.
Например файлы system.reg
и user.reg
должны принадлежать только тому пользователю, от которого вы собираетесь работать с wine. А в нашем случае владельцем является myuser
Для того чтобы обойти данное ограничение не достаточно присвоить SGIT и SUID (6770) – права на запуск файлов и директорий от пользователя владельцем которого он является. Необходимо, как я уже сказал, быть владельцем файла. Сейчас данные файлы должны принадлежать пользователю myuser. Но как же сделать multiuser wine (многопользовательский wine) спросите вы. Да все очень просто. Надо всего лишь переместить файлы
в директорию юзера, того пользователя, которому хотите установить wine и назначить владельцем этих файлов данного пользователя. Давайте проделаем эти шаги.system.reg
и user.reg
Этапы настройки многопользовательского wine
- Создаем пользователя в системе:
adduser myuser2
- Добавим нашего пользователя в группу samba.
sudo usermod -a -G samba myuser2
- Создаем директорию wine в директории нового пользователя.
sudo mkdir /home/myuser2/.wine
- Ограничим права на чтение директории данного юзера:
sudo chmod -R 6770 /home/myuser2
- Ограничим доступ к директории пользователя:
sudo chown -R myuser2:myuser2 /home/myuser2
- Создаем символические ссылки на директории
/etc/wine/drive_c
и/etc/wine/dosdiveces
в директорию wine нового пользователя
ln -s /etc/wine/drive_c /home/myuser2/.wine/
ln -s /etc/wine/dosdiveces /home/myuser2/.wine
- Перемещаем файлы
и назначим права на нихsystem.reg
иuser.reg
cp /etc/wine/{system.reg,user.reg} /home/myuser2/.wine/
chown myuser2:myuser2 /home/myuser2/.wine/{system.reg,user.reg}
После давайте попробуем запустить программу regedit от нашего нового пользователя myuser2. Для этого залогинемся под пользователем и выполним программу:
wine regedit.exe
Как видим теперь программа не выдает ошибку на запуск и прекрасно работает, как от нашего пользователя, так и от нового.
Ошибки wine
Если при попытке запуска программы wine ругается и выдает следующее сообщение:
wine: /home/myuser2/.wine is not owned by you
В этом случае необходимо назначить правильные права на директорию ~/.wine
данного пользователя.
Заключение
Подведем итог: Пользователь myuser2 может запустить все программы установленные нашим myuser пользователем. Также работа wine теперь осуществляется от всех пользователей в системе. Мы не создаем дубликаты директорий wine для каждого пользователя.
[endtxt]