3

Есть ли способ ограничить Wine в его wineprefix, чтобы он не мог читать файлы за его пределами?

Какой хороший способ полностью защитить мою систему от потенциально вредоносного программного обеспечения, которое может быть запущено через Wine, если это вообще возможно?

Я просто хочу, чтобы мой домашний каталог не стирался случайными окнами .exe.

1 ответ1

3

Читая ваш вопрос, я согласился с вашей озабоченностью и считаю, что он более безопасен и является стандартным поведением при запуске приложений Windows на виртуальной машине (например, virtualbox [ 0 ]), которая может быть полностью изолирована от вашей системы (и из сети) или с ограниченным набором общих папок.

С другой стороны, всегда можно запустить wine от имени другого пользователя, скажем, MrWine в группе, отличной от вашей, а затем предоставить этому пользователю доступ к вашему локальному винному пути, закрыть ваши каталоги и файлы для группы пользователей. MrWine (просто для остальных из мира Unix [ 1 ], как это по умолчанию). Вы можете закрыть себя, но у вас останется какая-то часть системы, доступная для вина. Редко когда вредоносное ПО может быть спроектировано или эффективно для этого, но если вы хотите быть более уверенным, вам нужно снова запускаться в отдельной закрытой среде, такой как виртуальная машина.

Выполняя поиск в Интернете, я обнаружил интересную ссылку [ 2 ], которая согласуется с этой строкой и дает пошаговую процедуру, с той разницей, что она будет использовать каталог вина пользователя MrWine. Ниже приведены шаги с некоторыми непроверенными изменениями, так что вы также можете обратиться непосредственно к старому оригинальному сообщению.


  1. Установить вино
  2. Создайте и настройте учетную запись для MrWine (команда должна отличаться)

    sudo adduser --disabled-login --shell /sbin/nologin MrWine 
    sudo usermod --append --groups audio wine
    
  3. Разрешить вашей собственной учетной записи пользователя запускать команды под учетной записью Mrwine с помощью sudo

    sudo env VISUAL=/usr/bin/gedit visudo   # maybe sudo visudo is enough
    FedComp ALL=(MrWine) NOPASSWD: ALL      # Use your linux names here
    
  4. Прекратите использование 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*
    
  5. Вы можете изменить форму umask с 022 на 027

    umask 027 
    
  6. Создайте свой модуль запуска для 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 "$@"
    
  7. Установите и запустите программу как 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 ].

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .