Vous utilisez Samba pour un accès aléatoire sans monter le système de fichiers?

StackOverflow https://stackoverflow.com/questions/264950

  •  06-07-2019
  •  | 
  •  

Question

J'utilise un ordinateur sur lequel je n'ai pas d'accès root et souhaite accéder aux fichiers d'un serveur Samba en mode d'accès aléatoire. Je sais que je peux transférer l'intégralité des fichiers à l'aide de smbclient, mais les fichiers sont très volumineux (> 1 Go) et je préférerais simplement les traiter comme des fichiers distants sur lesquels je peux effectuer un accès aléatoire.

Le problème, comme indiqué, est que je n’ai pas d’accès root à cette machine (une machine Linux), je ne peux donc pas monter le système de fichiers Samba distant.

Existe-t-il une solution au niveau utilisateur qui me permet d’accéder de manière aléatoire au contenu d’un fichier sur un serveur Samba? Il semble qu'il devrait être possible de faire tout ce que le client du système de fichiers du noyau est en train de faire, mais à partir d'une application de niveau utilisateur.

Je n'ai besoin que d'un accès en lecture seule et le fichier distant est garanti pour ne pas changer.

Était-ce utile?

La solution

Pour répondre à ma propre question après avoir fouillé dans la source Samba: il existe une bibliothèque client libsmbclient qui inclut tout le matériel de traitement de fichier habituel: smbc_open, smbc_fstat, smbc_lseek, smbc_read, etc. Par exemple, voici un extrait que je viens d'écrire qui lit un fichier à l’arrière (juste pour vérifier s’il fait une vraie recherche):

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);
}

(vérification d'erreur supprimée pour plus de clarté)

Autres conseils

Essayez d'utiliser smbmount pour monter le système de fichiers sans droits root:

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

Edit: mise à jour pour utiliser smbmount au lieu de mount .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top