Maneira correta de montar um compartilhamento do Windows

20

Montei um compartilhamento do Windows no meu sistema Ubuntu 11.10 adicionando a seguinte linha ao /etc/fstab:

//serveraddr/sharedfolder /mnt/foldername/ smbfs credentials=/home/myname/.smbpasswd 0 0

usando o tutorial aqui .

Mas há um problema com as permissões. O proprietário da montagem pasta é root. Não consigo criar pastas ou arquivos no ponto montado, pois não me torno a raiz. Mesmo eu não posso alterar a propriedade para meu usuário padrão via

sudo chown -R myname .

Pesquisei no Google e vi que isso pode resultar do fato de que os formatos de arquivo do Windows (fat32 / ntfs) não podem salvar a propriedade. Mas quando eu me conecto ao mesmo local via samba que

smb://serveraddr/sharedfolder

fornecendo minhas credenciais, tenho privilégios para escrever sem ser a raiz.

Como posso permitir que eu escreva na pasta montada?

petrichor
fonte

Respostas:

29

Não use smbfs, o nome do novo protocolo é cifse faz parte do pacote cifs-tools(instale-o se você ainda não o fez.

Em vez disso, use esta linha no seu fstab

//server/share /mnt/mountname cifs username=server_user,password=user_password,iocharset=utf8,file_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>
username = the name of the user on that server that can access the mount
password = the password for that user

Depois disso, você poderá testar sudo mount -a, se não houver falhas, poderá reiniciar com segurança para encontrar seus compartilhamentos montados /mnt/<folder_name>.

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

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 ypara salvar o arquivo.

Prenda com

sudo chmod 600 /etc/cifspwd

Use esta linha em vez da anterior

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

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

Bruno Pereira
fonte
Se isso não funcionar, cole a saída de cat ~/.smbpasswd.
Bruno Pereira
@ bbrunopereira81: Não funciona. cat .smbpasswduser=name.surname pass=******* dom=domainname
petrichor 26/10/11
@ IsmailArı por que você tem domínio? você faz parte de um domínio ??? tente usar tudo na mesma linha em vez de fazer um arquivo separado para as credenciais, tente isso em um terminal: sudo mount -t cifs //ip_from_windows_pc/sharename /mnt/share -o username=windows_username,password=windows_password_for_user,iocharset=utf8,file_‌​mode=0777,dir_mode=0777. se houver falhas, anote-as.
Bruno Pereira
11
Adicionadas informações para o arquivo de credenciais, você também pode usar esse método.
Bruno Pereira
2
Eu acho que vale a pena notar que no Ubuntu 12.10, "mode" não era um parâmetro válido. Em vez disso, tive que usar "file_mode". Além disso, não tenho certeza se concordo inteiramente com as permissões gerais do 0777. Se você estiver montando um compartilhamento privado apenas para você, acho que algo como "file_mode = 0660, dir_mode = 0770" seria mais apropriado.
Avian00