Vinho + Microsoft Access + Compartilhamento do Windows

Vinho + Microsoft Access + Compartilhamento do Windows

Eu tenho um aplicativo VB6 rodando 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 (criar um arquivo de bloqueio).

A linha fstab que 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 posso montar o compartilhamento para evitar a exceção?

Responder1

Tal como acontece com umask, fmaske dmasksãosubtraídode 777 para obter as permissões efetivas. Então você está montando seu compartilhamento como 000, o que significa "ninguém pode ler, escrever ou executar"

Além disso, você realmente precisa de tantas opções de configuração personalizada? Se este for o seu computador doméstico, sugiro o seguinte:

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

jmm, presumo, é o seu nome de usuário. Caso contrário, altere de acordo. Eu tambémfortementesugiro que vocênãopara montar unidades em seu diretório inicial. Como root, crie /mnt/iomegaum diretório e monte lá. Se desejar, crie um link simbólico na sua pasta pessoal apontando para lá. O comando no terminal seria:

sudo mkdir -p /mnt/iomega

E a entrada do fstab seria então:

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

Solucionar problemas

Se não funcionou, vamos tentar desde o início, só para verificar se há alguma ponta solta:

1 - Exclua todas as linhas do fstab referentes ao IomegaStorCenter. Reinício

2 - Use Nautilus > Rede > Rede Windows > Grupo de Trabalho (ou o nome do seu grupo de trabalho) e veja se a unidade aparece. Clique duas vezes nele.

3 - Solicita nome de usuário/senha? Você conhece eles? Eles funcionam e o nautilis mostra as pastas compartilhadas? (nota: isso énãoseu nome de usuário/senha do Ubuntu. É ocompartilharlogin/senha, que você pode ter configurado anteriormente no IomegaStorCenter

4 - Ainda usando o nautilus, você consegue arrastar e soltar e criar arquivos lá? Editá-los, renomeá-los, excluí-los, etc?

Se sim, então fstab é seu único problema. Caso contrário, você deverá configurar o IomegaStorCenter antes de continuar, até que possa acessá-lo adequadamente via Nautilus.

5 - Desmonte o drive 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 sujeito a erros):

6 - exclua o ponto de montagem antigo.CERTIFIQUE-SE DE QUE ESTÁ 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) destas 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-o, para testar se o enty está ok:

sudo mount /mnt/iomega

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

Se funcionar, ótimo. Caso contrário, tente copiar os arquivos usando o terminal e cole aqui a mensagem de erro. digite também ls -la /mnt/iomegae sudo mountcole os resultados.

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

12 - Teste seu aplicativo VB e seja feliz :)

Responder2

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 não houver nenhuma falha, você pode reiniciar com segurança para encontrar seus compartilhamentos montados em /mnt/<folder_name>.


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

sudo nano /etc/cifspwd

Adicione essas 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 sua montagem deverá estar montada e seus detalhes protegidos.

informação relacionada