
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
, fmask
e dmask
sã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/iomega
um 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/iomega
e sudo mount
cole 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=0777 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=0777 0 0
Depois disso, será seguro reinicializar e sua montagem deverá estar montada e seus detalhes protegidos.