Pergunta

Eu estou usando uma máquina na qual eu não tenho acesso root e gostaria de acessar arquivos em um servidor Samba no modo de acesso aleatório. Eu sei que posso transferir os arquivos em sua totalidade utilizando smbclient mas os arquivos são muito grandes (> 1 GB) e eu preferia apenas tratá-los como arquivos remotos em que eu posso fazer de acesso aleatório.

O problema como observado é que eu não tenho acesso root para esta máquina (uma caixa de Linux), então não posso montar o sistema de arquivo remoto Samba.

Existe uma solução em nível de usuário que vai me deixar acessar aleatoriamente o conteúdo de um arquivo em um servidor Samba? Parece que deve ser possível fazer tudo o que o cliente do sistema de arquivos do kernel está fazendo, mas a partir de uma aplicação em nível de usuário.

Eu só preciso de acesso somente leitura btw eo arquivo remoto é a garantia de não mudança.

Foi útil?

Solução

Para responder a minha própria pergunta depois de cavar em torno da fonte de Samba: há um libsmbclient biblioteca cliente que inclui todos os arquivos de costume coisas manipulação: smbc_open, smbc_fstat, smbc_lseek, smbc_read etc. Por exemplo, aqui está um trecho que acabei de escrever que lê um arquivo para trás (apenas para verificar que estava fazendo uma verdadeira busca):

fd = smbc_open(path, O_RDONLY, 0);
smbc_fstat(fd, &st);

for (offset = st.st_size - BUFLEN; offset > 0; offset -= BUFLEN) {
    smbc_lseek(fd, offset, SEEK_SET);
    smbc_read(fd, buffer, BUFLEN);
}

(verificação de erro removido para maior clareza)

Outras dicas

Tente usar smbmount para montar o sistema de arquivos sem permissões de root:

mkdir ~/temp
smbmount //{server}/{share} ~/temp -o username=username={username},password={password}

Editar:. Atualizado para usar smbmount vez de mount

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top