web-dev-qa-db-fra.com

Comment monter une racine UNC? (SMB / CIFS)

Je suis dans une situation où je dois monter la racine UNC, c'est-à-dire "\" ou "smb: //". Je peux ouvrir Nautilus et aller à "smb: //" mais je dois en faire des choses, telles que: readdir, mkdir, unlink, rmdir, open, read, write, etc. à partir des API de système de fichiers POSIX standard. Existe-t-il un logiciel qui me permet de le faire?

J'ai essayé mount -t cifs "//" mais ça me donne

erreur de montage: nom UNC trop court

J'ai aussi essayé mount -t cifs "smb://" mais ça me donne un

Le montage de l'URL cifs n'est pas encore implémenté. Tentative de monter smb: //

J'ai essayé toutes les commandes smb de l'ancien, mais elles ne sont plus présentes - je pense, qui sont passées à la place. J'ai également essayé ces nouvelles choses fantastiques gvfs/gio, qui, je suppose, est un système de montage basé sur un gobject, mais gio mount smb:// me donne ...

gio: smb: ///: l'emplacement est déjà monté

... monté où? Je peux y aller en nautile, mais encore une fois, je ne peux rien faire avec ça. Je pensais qu'il pourrait être monté sur/run/user/1000/gvfs mais ce programme-Fuse-folder-thing ne semble pas faire grand chose par lui-même, sauf si je monte spécifiquement des choses à l'aide de la commande.

Je n'ai même pas vraiment besoin de pouvoir lister smb: // ou même smb: // serveur /, mais j'ai besoin que TOUS smb: // serveur/partages/soit disponible, avec les mêmes fonctionnalités que si j'avais monté en utilisant smb ou gvfs (par exemple, lister, créer des dossiers, supprimer des choses, ouvrir des fichiers, mais aussi authentifier).

Pour clarifier davantage, toutes les applications doivent pouvoir exécuter les fonctions de base des API de système de fichiers sur tous les chemins non-UN, au moins dans la mesure fournie par gvfs ou cifs. Par exemple, je devrais être capable de:

cd /some/path/server1/share1/folder1
cat file1
mkdir newfolder2
cd ../existingfolder3
touch file2
cd /some/path/server2/share2
rmdir existingfolder4

... etc. Des points bonus si je pouvais ls /some/path/server1

Il y a beaucoup de bibliothèques Fuse, donc je pensais écrire un petit script qui montait automatiquement les partages à la demande, puis transmettait simplement les commandes aux points de montage, mais je ne veux certainement pas réinventer la roue, et J'aimerais aussi quelque chose de beaucoup plus portable que tout ce que j'aurais le temps de développer. Mais si c'est le moyen le plus simple, je peux commencer à écrire du code et le poster ici ou poser une nouvelle question lorsque j'ai besoin d'aide.

Je vous remercie!

2
user165680

Je l'ai trouvé...

Cela s'appelle smbnetfs .

Il fait tout ce que j'ai demandé dans la question, bien que pour la liste et d'autres opérations, il soit vraiment lent.

0
user165680

Juste comme note de côté: chaque fois que quelqu'un sur terre crée une part smb/samba du répertoire racine d'une machine, un administrateur réseau au paradis perd ses ailes.

J'ai essayé mount -t cifs "//"

Votre syntaxe est incorrecte, incomplète et vous ne pouvez pas désigner un partage sur le serveur sous la forme "/".

[1] Allez sur le serveur et créez un partage de "/" si c'est ce que vous voulez vraiment faire mais nommez le partage ... Je ne sais pas ... que diriez-vous de "root"

[2] Créez un point de montage sur le client pour monter le partage, par exemple/home/agnes/nom_serveur

[3] Puis montez avec une commande qui ressemble à ceci:

Sudo mount -t cifs //servername/root /home/agnes/servername -o some-list-of-options

Fera-t-il tout ce que vous voulez qu'il fasse dans votre message d'origine? Je n'ai aucune idée.

Vous pouvez aussi aller à l'ancienne, je suppose, et utiliser smbclient:

smbclient //servername/root

Vous allez vous retrouver avec l'invite:

smb:>

Si vous entrez aide, vous verrez la liste des commandes à votre disposition:

? sauvegarde de l'archive allinfo altname
Blockize annuler case_sensitive cd chmod
chown close del deltree dir
du echo sortie get getfacl
geteas hardlink aide historique iosize
lcd link lock minuscule ls
l masque md mget mkdir
plus mput newer notifier ouvert
posix posix_encrypt posix_open posix_mkdir
posix_rmdir posix_unlink posix_whoami print invite
mettre pwd q file quit
readlink rd recurse reget renommer
reput rm rmdir showacls setea
setmode scopy stat symlink tar
tarmode timeout traduit le volume déverrouillé
vuid wdel logon listconnect
showconnect tcon tdis tid logoff
..

2
Morbius1

Autant que je puisse comprendre - la commande smbtree fera ce que vous voulez.

De sa man smbtree- page :

NOM
smbtree - Navigateur de réseau smb basé sur du texte

DESCRIPTION

Cet outil fait partie de la suite samba (7).

smbtree est un programme de navigation smb en mode texte. Il est similaire au "Voisinage réseau" présent sur les ordinateurs Windows. Il imprime une arborescence avec tous les domaines connus, les serveurs dans ces domaines et les partages sur les serveurs.

0
N0rbert