Wine + Microsoft Access + Compartilhamento do Windows

1

Eu tenho um aplicativo VB6 em execução no Wine. Esse aplicativo usa um banco de dados mdb, mas o arquivo mdb está em um compartilhamento do Windows (Iomega StorCenter). Monto o compartilhamento via fstab e atribuo a letra "d:" via Wine. Quando executo, o aplicativo dispara uma exceção porque não consegue bloquear o arquivo mdb (crie um arquivo de bloqueio).

A linha fstab que eu uso é:

//IomegaStorCenter/public/Server /home/jmm/Iomega cifs,uid=wine,gid=users,fmask=7777,dmask=0777,iocharset=utf8,codepage=unicode, unicode 0 0

Alguém sabe como montar o compartilhamento para evitar a exceção?

    
por Jorge Mota 16.03.2012 / 12:18

2 respostas

1

Assim como umask , fmask e dmask são subtraídos do 777 para obter as permissões efetivas. Então você está realmente montando sua parte como 000, significando "ninguém pode ler, escrever ou executar"

Além disso, você realmente precisa de muitas opções de configuração personalizadas? Se este é o seu computador doméstico, sugiro isto:

//IomegaStorCenter/public/Server /home/jmm/Iomega cifs defaults,uid=jmm,gid=plugdev,umask=022

jmm , presumo, é o seu nome de usuário. Se não, mude de acordo. Além disso, sugiro que você sugira que não monte as unidades em seu diretório pessoal. Como root, crie o diretório /mnt/iomega e monte nele. Se você quiser, crie um link simbólico em sua pasta pessoal apontando para lá. O comando no terminal seria:

sudo mkdir -p /mnt/iomega

E a entrada fstab seria então:

//IomegaStorCenter/public/Server /mnt/iomega cifs defaults,rw

Solução de problemas

Se isso não funcionar, vamos tentar desde o início, apenas para verificar se há alguma ponta solta:

1 - Exclua todas as linhas do fstab referentes ao IomegaStorCenter. Reinicie

2 - Use Nautilus > Rede > Rede do Windows > Grupo de trabalho (ou qualquer que seja o seu grupo de trabalho é chamado), e veja se a unidade mostra. Clique duas vezes.

3 - Solicita nome de usuário / senha? Você conhece eles? Eles funcionam e nautilis mostram as pastas compartilhadas? (nota: isto é não seu nome de usuário / senha do Ubuntu. É o compartilhamento login / senha, que você pode ter previamente configurado no IomegaStorCenter

4 - Ainda usando nautilus, você pode arrastar e soltar e criar arquivos lá? Edite, renomeie, apague, etc?

Se sim, então fstab é o seu único problema. Caso contrário, você deverá configurar o IomegaStorCenter antes de prosseguir, até que possa acessá-lo corretamente por meio do Nautilus.

5 - Desmonte a unidade no Nautilus (use o botão "Ejetar")

Agora no terminal (isso pode ser feito via GUI / Nautilus, mas o comando copiar e colar no terminal é mais rápido e menos propenso a erros):

6 - exclua o ponto de montagem antigo. CERTIFIQUE-SE DE QUE ESTEJA VAZIO ANTES DE FAZER ISSO

rmdir /home/jmm/Iomega 

7 - crie o novo ponto de montagem e um link simbólico do local antigo para o novo

sudo mkdir -p /mnt/iomega
ln -s /mnt/iomega /home/jmm/Iomega

8 - Adicione uma (mas não ambas) dessas linhas ao fstab, dependendo se o seu compartilhamento precisa de senha ou não:

//IomegaStorCenter/public/Server /mnt/iomega cifs defaults,rw,username=YOURSHAREUSER,password=YOURPASSWORD 0 0
//IomegaStorCenter/public/Server /mnt/iomega cifs defaults,rw 0 0

9 - Monte, para testar se está tudo bem:

sudo mount /mnt/iomega

10 - Abra o nautilus, chegue ao / mnt / iomega e tente copiar alguns arquivos. Editar, excluir, etc.

Se funcionar, ótimo. Se não, tente copiar arquivos usando o terminal e cole aqui a mensagem de erro. também digite ls -la /mnt/iomega , sudo mount e cole os resultados.

11 - Agora vá para a configuração Wine e certifique-se de que D: aponta para o novo local correto, / mnt / iomega. Também use nautilus para navegar até /home/jmm/.wine/dosdevices/d: e ver se é o local correto.

12 - Teste você app VB e seja feliz:)

    
por MestreLion 16.03.2012 / 12:46
0

Use esta linha no seu fstab

//server/share /mnt/mountname cifs username=server_user,password=user_password,iocharset=utf8,mode=0777,dir_mode=07‌​77 0 0

Onde

server = your server that you are trying to access
share = mapped share on that server
/mnt/mountname = any folder that you created with sudo /mnt/<folder_name> (or any folder in your home that you can access
username = the name of the user on that server that can access the mount
password = the password for that user

Depois disso, você pode testar com sudo mount -a , se você não obtiver nenhuma falha, poderá reinicializar com segurança para encontrar seus compartilhamentos montados em /mnt/<folder_name> .

Para usar um arquivo de credenciais em vez dos parâmetros de nome de usuário e senha no fstab, você pode criar um arquivo com essas duas linhas para que seu nome de usuário e senha não sejam explicitamente mostrados no fstab

sudo nano /etc/cifspwd

Adicione estas linhas ao arquivo

username=<username on server>
password=<password for that username>

Pressione as teclas ctrl + x e, quando solicitado, pressione y para salvar o arquivo.

Proteja-o com

sudo chmod 600 /etc/cifspwd

Use esta linha em vez da anterior

//server/share /mnt/mountname cifs credentials=/etc/cifspwd,iocharset=utf8,mode=0777,dir_mode=07‌​77 0 0

Depois disso, será seguro reinicializar e você montar deve ser montado e seus detalhes protegidos.

    
por Bruno Pereira 16.03.2012 / 13:04