Ограничить доступ вин к пути wineprefix
Есть ли способ ограничить Wine в его wineprefix, чтобы он не мог читать файлы за его пределами?
Какой хороший способ полностью защитить мою систему от потенциально вредоносного программного обеспечения, которое может быть запущено через Wine, если это вообще возможно?
Я просто хочу, чтобы мой домашний каталог не стирался случайными окнами.exe.
1 ответ
Читая ваш вопрос, я согласился с вашей озабоченностью и считаю, что он более безопасен и является стандартным поведением при запуске приложений Windows на виртуальной машине (например, virtualbox [ 0]), которая может быть полностью изолирована от вашей системы (и из сети) или с ограниченным набором общих папок.
С другой стороны, всегда можно запустить wine от имени другого пользователя, скажем, MrWine в группе, отличной от вашей, а затем предоставить этому пользователю доступ к вашему локальному винному пути, закрыть ваши каталоги и файлы для группы MrWine (просто для остальных из мира Unix [ 1], как это по умолчанию). Вы можете закрыть себя, но у вас все еще будет какая-то часть системы, доступная для вина. Редко когда вредоносное ПО может быть спроектировано или эффективно для этого, но если вы хотите быть более уверенным, вам нужно снова запускаться в отдельной закрытой среде, такой как виртуальная машина.
Выполняя поиск в Интернете, я нашел интересную ссылку [ 2], которая согласуется с этой строкой и дает пошаговую процедуру, с той разницей, что она будет использовать каталог вина пользователя MrWine. Ниже приведены шаги с некоторыми непроверенными изменениями, так что вы также можете обратиться непосредственно к старому оригинальному сообщению.
- Установить вино
Создайте и настройте учетную запись для MrWine (команда должна отличаться)
sudo adduser --disabled-login --shell /sbin/nologin MrWine sudo usermod --append --groups audio wine
Разрешите вашей собственной учетной записи пользователя запускать команды под учетной записью Mrwine с
sudo
sudo env VISUAL=/usr/bin/gedit visudo # maybe sudo visudo is enough FedComp ALL=(MrWine) NOPASSWD: ALL # Use your linux names here
Прекратите использование Wine любыми другими учетными записями пользователей, поэтому вы не можете запускать wine из-за ошибки без sudo и с вашим собственным пользователем
sudo chown -R MrWine:MrWine ~/.wine sudo chmod -R o-rwx ~/.wine # The following lines can be dangerous if there are files # called wine* in /usr/bin directory that are not of the wine program sudo chown root:wine /usr/bin/wine* sudo chmod o-x /usr/bin/wine*
Вы можете изменить форму umask с 022 на 027
umask 027
Создайте свой модуль запуска для Wine, в котором вы предоставляете графический доступ для MrWine к X-серверу (с помощью
xhost +SI:FedComp:MrWine
). Лучше в сценарии, похожем на следующий (назовем егоRunWine.sh
,chmod u+x RunWine.sh
)#!/bin/bash xhost +SI:FedCom:MrWine # use the couple of your username # and the one you chose for wine EnvOptions="HOME=/home/MrWine USER=MrWine USERNAME=MrWine LOGNAME=MrWine " sudo -u MrWine env "$EnvOptions" wine "$@"
Установите и запустите программу как MrWine
sudo chown MrWine:MrWine /home/MrWine/.wine/drive_c/My\ Installer.exe ~/RunWine.sh "C:\My Installer.exe" ~/RunWine.sh "C:\Program Files\ProgDir\ProgName.exe"
Пожалуйста, обратитесь к оригинальному блогу для дальнейших объяснений [ 2].