Montage Samba avec invite de mot de passe en tant qu'utilisateur non root

17

Je souhaite monter un partage SMB protégé par mot de passe (servi par une machine Windows). Le partage est protégé par un nom d'utilisateur et un mot de passe, et je ne peux pas écrire le mot de passe dans un fichier, je veux être invité à entrer le mot de passe au moment du montage.

J'ai besoin d'une solution qui fonctionne même lorsque l'utilisateur sur la machine cliente ne dispose d'aucun privilège administratif, donc la méthode utilisée pour monter le partage ne doit pas lui permettre d'obtenir les autorisations root. L'installation initiale peut être effectuée en tant que root. Les utilisateurs doivent pouvoir spécifier des noms de serveur arbitraires. Mon besoin immédiat est avec Ubuntu 12.04, mais plus une solution applicable est large, mieux c'est.

Le client est sans tête, donc je recherche un outil en ligne de commande.

Ce que j'ai essayé:

  • mount.cifs: bien qu'il puisse être rendu racine setuid, ses auteurs ne le considèrent pas comme sécurisé . L'exécuter sous sudoa le même problème.
  • smbnetfs, fusesmb: Je n'ai pu convaincre aucun d'eux de me demander un mot de passe.
  • Nautilus et gvfs: gvfs-mount smb://servername/sharenameéchoue avec Error mounting location: volume doesn't implement mount.

Comment puis-je monter un partage Samba à partir de la ligne de commande, en tant qu'utilisateur non root, avec une invite de mot de passe?

Gilles 'SO- arrête d'être méchant'
la source
1
L'un des principaux développeurs semble avoir assoupli sa position sur les problèmes de setuid. Extrait: "Le code a été substantiellement retravaillé et devrait être beaucoup plus sûr qu'il ne l'était auparavant. Il fait maintenant la séparation des privilèges de telle sorte que la majeure partie du processus de montage est effectuée en tant qu'utilisateur non privilégié, et s'il est lié aux bonnes bibliothèques, avec des capacités élaguées au minimum. À ce stade, je dirais qu'il est suffisamment sûr pour que nous n'ayons plus besoin de l'empêcher d'être installé setuid root. " source: lists.samba.org/archive/samba/2010-April/154935.html J'ai compris que je devrais le signaler.
Tim

Réponses:

20

«Emplacement de montage d'erreur: le volume n'implémente pas le montage» se traduit apparemment par «J'ai besoin de D-Bus mais il n'est pas disponible». (Merci au collègue gourou de venturax pour ces informations.) Dans une session SSH, je peux utiliser à gvfs-mountcondition qu'il dbus-daemonsoit lancé en premier et que la variable d'environnement DBUS_SESSION_BUS_ADDRESSsoit définie.

export $(dbus-launch)
gvfs-mount smb://workgroupname\;username@hostname/sharename
# Type password
ls ~/.gvfs/'sharename on hostname'

gvfs-mountet les autres utilitaires GVFS doivent tous communiquer avec la même session D-Bus. Par conséquent, si vous utilisez plusieurs sessions SSH ou utilisez des montages entre les sessions de connexion, vous devez:

  • démarrer D-Bus la première fois que cela est nécessaire, au plus tard;
  • veillez à ne pas laisser D-Bus se terminer avec la session, tant qu'il y a des systèmes de fichiers GVFS montés;
  • réutilisez la session D-Bus existante au moment de la connexion, le cas échéant.

Voir Réutiliser les sessions D-Bus sur les sessions de connexion pour cela.

Gilles 'SO- arrête d'être méchant'
la source
1
Cela s'applique également aux gio mountdernières versions d'ubuntu.
jnas
1

SMBNetFS utilise le porte-clés Gnome par défaut. Tous les mots de passe entrés et enregistrés dans Gnome-keyring lors de la navigation sur les partages Samba dans Nautilus doivent être utilisés automatiquement. Donc, si le stockage des mots de passe dans Gnome-keyring est OK, SMBNetFS est plus pratique. Il monte automatiquement tout le voisinage du réseau. Ces informations proviennent de l'exemple de fichier de configuration SMBNetFS, mais je ne les ai pas testées car je n'utilise pas Gnome.

En ce qui concerne l'utilisation du Gnome sans X11 porte - clé, voir l' utilisation de gnome-keyring-daemon sans X .

Sameer
la source