Rodando Wine em uma conta de usuário separada


Configuração

Criar uma conta de usuário específica para o Wine

O primeiro passo é criar um novo usuário no sistema, que será usado exclusivamente para executar aplicativos no Wine:

sudo useradd -m -s /bin/bash wineuser
  • -m: Cria um diretório home para o usuário.
  • -s /bin/bash: Define o interpretador de comandos como Bash.

Permitir que o novo usuário acesse o Servidor X (Xorg)

Aplicativos gráficos precisam do servidor X para exibir janelas. Para que o novo usuário (wineuser) possa usar o X, é necessário adicioná-lo à lista de permissões:

xhost +SI:localuser:wineuser

Esse comando habilita o acesso ao servidor X apenas para o usuário local wineuser.

Executar aplicativos Wine sob o novo usuário

Agora, você pode executar um programa do Windows no Wine usando o comando:

sudo -u wineuser env HOME=/home/wineuser USER=wineuser USERNAME=wineuser LOGNAME=wineuser wine argumentos

Automatizando com um Script

Para evitar a repetição desses comandos manualmente, você pode criar um script:

#!/bin/sh
xhost +SI:localuser:wineuser
sudo -u wineuser env HOME=/home/wineuser USER=wineuser USERNAME=wineuser LOGNAME=wineuser wine "$@"

Salve esse script como /usr/local/bin/runaswine.

Torne-o executável:

sudo chmod +x /usr/local/bin/runaswine

Agora, você pode executar aplicativos diretamente:

runaswine "C:\path\to\application.exe"

Configurando o Sudo para Não Pedir Senha

Para evitar ser solicitado uma senha toda vez que usar sudo, configure o arquivo sudoers:

Abra o editor com o comando:

sudo nano /etc/sudoers

Adicione a linha:

mainuser ALL=(wineuser) NOPASSWD: ALL

Isso permitirá que o usuário principal execute comandos como wineuser sem fornecer senha.

Recomendações de Segurança Adicionais

  1. Configurar o winecfg

    • Execute o winecfg sob o usuário wineuser:
      sudo -u wineuser winecfg
    • Na seção Desktop Integration, remova os mapeamentos de diretórios externos ao diretório /home/wineuser.
  2. Áudio no Wine com PulseAudio Por padrão, o áudio pode não funcionar. Para resolver isso:

    • Configure o PulseAudio para permitir múltiplos usuários compartilharem o mesmo daemon:
      1. Edite o arquivo de configuração do PulseAudio:
        sudo nano /etc/pulse/default.pa
      2. Adicione a linha:
        load-module module-native-protocol-unix auth-anonymous=1
    • Reinicie o PulseAudio:
      pulseaudio -k && pulseaudio --start

Limitações

  • Falta de sandboxing real: Essa abordagem usa permissões do sistema de arquivos para proteger o diretório pessoal. Ferramentas como firejail ou bubblewrap oferecem isolamento mais robusto.
  • Necessidade de Xorg com root: Algumas configurações podem requerer permissões especiais, como o uso do Xorg com acesso root, o que pode não ser ideal para todas as distribuições.
  • Compatibilidade de áudio limitada: A integração com PulseAudio exige configuração extra, e nem sempre funciona de forma estável.

Referências


https://wiki.archlinux.org/title/Wine#Running_Wine_under_a_separate_user_account