Samba-Mount mit Passwortabfrage als Nicht-Root-Benutzer

16

Ich möchte eine kennwortgeschützte SMB-Freigabe bereitstellen (bereitgestellt von einem Windows-Computer). Die Freigabe ist durch einen Benutzernamen und ein Kennwort geschützt. Möglicherweise schreibe ich das Kennwort nicht in eine Datei. Ich möchte zur Bereitstellungszeit zur Eingabe des Kennworts aufgefordert werden.

Ich benötige eine Lösung, die auch dann funktioniert, wenn der Benutzer auf dem Client-Computer keine Administratorrechte besitzt. Daher darf er bei keiner Methode, die zum Mounten der Freigabe verwendet wird, Root-Berechtigungen erhalten. Die Erstinstallation kann als root erfolgen. Benutzer müssen in der Lage sein, beliebige Servernamen anzugeben. Mein unmittelbarer Bedarf liegt bei Ubuntu 12.04, aber je umfassender eine Lösung ist, desto besser.

Der Client ist kopflos, daher suche ich ein Befehlszeilentool.

Was ich versucht habe:

  • mount.cifs: Es kann zwar zu setuid root gemacht werden, die Autoren halten es jedoch nicht für sicher . Das Ausführen unter sudohat das gleiche Problem.
  • smbnetfs, fusesmb: Ich konnte auch nicht von ihnen überzeugen mich nach einem Passwort gefragt.
  • Nautilus und gvfs: gvfs-mount smb://servername/sharenamescheitert mit Error mounting location: volume doesn't implement mount.

Wie kann ich als Nicht-Root-Benutzer eine Samba-Freigabe über die Befehlszeile mit einer Passwortabfrage aktivieren?

Gilles 'SO - hör auf böse zu sein'
quelle
Einer der führenden Entwickler scheint seine Haltung zu den Setuid-Problemen gelockert zu haben. Auszug: "Der Code wurde grundlegend überarbeitet und sollte weitaus sicherer sein als zuvor. Die Privilegientrennung erfolgt nun so, dass der Großteil des Mount-Prozesses als nicht privilegierter Benutzer ausgeführt wird und, wenn er mit den richtigen Bibliotheken verknüpft ist, mit eingeschränkten Funktionen An diesem Punkt würde ich sagen, dass es sicher genug ist, dass wir nicht länger einschränken müssen, dass setuid root installiert wird. " source: lists.samba.org/archive/samba/2010-April/154935.html Ich sollte darauf hinweisen.
Tim

Antworten:

19

"Fehler beim Einhängen des Volumes: Das Einhängen des Volumes wird nicht implementiert" bedeutet anscheinend "Ich benötige D-Bus, aber er ist nicht verfügbar". (Dank an den Guru-Kollegen von venturax für diese Informationen.) Innerhalb einer SSH-Sitzung kann ich verwenden, gvfs-mountsofern diese dbus-daemonzuerst gestartet und die Umgebungsvariable DBUS_SESSION_BUS_ADDRESSfestgelegt wird.

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

gvfs-mountund andere GVFS-Dienstprogramme müssen alle mit derselben D-Bus-Sitzung kommunizieren. Wenn Sie also mehrere SSH-Sitzungen verwenden oder auf andere Weise Bereitstellungen über Anmeldesitzungen hinweg verwenden, müssen Sie:

  • Starten Sie D-Bus spätestens dann, wenn Sie es zum ersten Mal benötigen.
  • Achten Sie darauf, dass D-Bus nicht mit der Sitzung endet, solange es gemountete GVFS-Dateisysteme gibt.
  • Verwenden Sie die vorhandene D-Bus-Sitzung bei der Anmeldung erneut, falls vorhanden.

Siehe dazu Wiederverwenden von D-Bus-Sitzungen über Anmeldesitzungen hinweg .

Gilles 'SO - hör auf böse zu sein'
quelle
1
Dies gilt auch für gio mountneuere Ubuntu-Versionen.
jnas
1

SMBNetFS verwendet standardmäßig den Gnome-Schlüsselbund. Alle im Gnome-Schlüsselbund beim Durchsuchen von Samba-Freigaben in Nautilus eingegebenen und gespeicherten Passwörter sollten automatisch verwendet werden. Wenn das Speichern von Passwörtern im Gnome-Schlüsselbund in Ordnung ist, ist SMBNetFS praktischer. Es wird automatisch die gesamte Netzwerkumgebung gemountet. Diese Informationen stammen aus der SMBNetFS-Beispielkonfigurationsdatei, ich habe sie jedoch nicht getestet, da ich Gnome nicht verwende.

Siehe die Verwendung des Gnome Keyring ohne X11 In Bezug auf die Verwendung von gnome-keyring-daemon ohne X .

Sameer
quelle