domingo, 19 de janeiro de 2014

Como utilizar arquivos compartilhados pelo Samba na linha de comando

É muito comum acessar diretórios compartilhados através do Samba pela interface gráfica. Você abre o gerenciador de arquivos Nautilus, digita smb://endereco-ip-do-compartilhamento e acessa os arquivos normalmente. Simples assim.

O problema acontece quando você quer utilizar uma ferramenta de linha de comando em um arquivo ou diretório que está em um compartilhamento Samba. Por exemplo: Como utilizar o grep no arquivo localizado em smb://10.1.1.1/arquivos/lista.txt?

grep -Irin --color "compras" smb://10.1.1.1/arquivos/lista.txt

O comando acima falharia miseravelmente.

Tendo acesso ao usuário root, existem duas soluções:

Utilizar o comando mount ou adicionar uma linha referente ao ponto de montagem no arquivo /etc/fstab.

E como acessar os arquivos/diretórios sem permissão de root?

Você pode utilizar o smbclient, copiar o arquivo e fazer qualquer coisa com ele. Nada prático!

A segunda opção é bem mais prática. Quando você utiliza o protocolo do Samba no Nautilus (smb://10.1.1.1/, por exemplo), o daemon do sistema de arquivos GVFS monta automaticamente o compartilhamento em um diretório do sistema.

O diretório utilizado como ponto de montagem varia de acordo com a distribuição Linux utilizada. Algumas utilizam o diretório ~/.gvfs/, outras utilizam /run/user/id-usuario/gvfs, onde id-usuario pode ser obtido através do comando id -u.

Ao descobrir qual diretório foi utilizado, basta acessa-lo e utilizar a linha de comando nos arquivos que você quiser. Por exemplo:

grep -Irin --color "compras" /run/user/1000/gvfs/arquivos/lista.txt

Bem simples, do jeito que tem que ser!

Até a próxima!

Fonte

Nenhum comentário: