Wie mounte ich eine Samba-Freigabe als Nicht-Root-Benutzer?

14

Gibt es eine Schritt-für-Schritt-Anleitung, die ausführlich erklärt, wie eine Samba-Freigabe gemountet wird, die von einem Nicht-Root- Benutzer auf einem Ubuntu 10.04-Desktop verwendet werden soll?

Hinweis: In der Google-Suche gibt es zahlreiche Threads, die sich mit diesem anscheinend neuen Problem befassen. Anweisungen, die unter Ubuntu 8.04 (oder einer älteren Version von smbfs) funktionierten, funktionieren nicht mehr.

Ich muss etwas finden, das aktuell und reproduzierbar ist.

Android Eve
quelle

Antworten:

13

SMBNetFS ist ein sehr schönes Tool, um Ihre Samba-Freigaben einfach in Ihrem Home-Ordner zu mounten . Mit diesem Tool können Sie von nahezu allen Anwendungen einfach über einen Mount-Punkt in Ihrem Zuhause auf Ihre Samba-Freigaben zugreifen.

So verwenden Sie SMBnetFS:

  • Installieren Sie das Paket über Ihren Paketmanager
  • cp /etc/smbnetfs.conf ~/.smb/smbnetfs.conf Standardkonfiguration kopieren
  • cp /etc/samba/smb.conf ~/.smb/smb.conf Kopieren Sie die Samba-Konfiguration
  • mkdir ~/sambashare oder einen anderen Namen für den Einhängepunkt
  • smbnetfs ~/sambashare Laden Sie die Freigaben auf den Mountpoint

Leider ist nur wenig Dokumentation verfügbar. Siehe man smbnetfsfür mehr Optionen und gehen Sie durch die Hilfe - Datei in /usr/share/doc/smbnetfs.

Takkat
quelle
+1 für die detaillierten Schritte. Ich hoffe, dass dies mit Eclipse funktioniert, denn mit gvfs funktioniert Eclipse definitiv nicht. Wissen Sie zufällig, wie sich SMBnetFS von smbfs unterscheidet?
Android Eve
2
SMBNetFS verwendet eine Sicherung. Stellen Sie sicher, dass sich Benutzer in der fuseGruppe befinden.
Takkat
Wieder +1! Verwendet gfvs nicht auch FUSE? Wie unterscheidet es sich von dem, was ich bereits mit meinem GNOME-Desktop gepackt habe (gvfs)?
Android Eve
7

Wenn Sie Gnome verwenden, können Sie einfach die smb: // url in Nautilus eingeben. Normalerweise sollten gvfs-fuse und andere gvfs-Pakete installiert sein, damit Sie Samba direkt mit dem Dateibrowser einbinden können. Außerdem solltest du alle gemounteten Sachen in deinem ~ / .gvfs Ordner finden. Dies funktioniert sogar mit anderen Protokollen und komprimierten Dateien usw.

gvfs-mount smb://user@server/storage

Ich habe es mit Eclipse und anderen Tools getestet und es funktioniert. gvfs-fuse muss installiert sein.

matthias.lukaszek
quelle
Vielen Dank, aber Eclipse wird damit nicht funktionieren. Ich habe das schon ausprobiert, deshalb habe ich speziell nach smbmount gefragt (ein symbolischer Link zu mount.cifs, der Teil des smbfs-Pakets ist).
Android Eve
2
Also kann Eclipse nicht auf .gvfs in Ihrem Home-Verzeichnis zugreifen? Soweit ich weiß, sollte jedes Programm dazu in der Lage sein. Korrigiere mich, wenn ich falsch liege.
matthias.lukaszek
2

man mounthilft Ihnen bei der Bestimmung der gewünschten Optionen. Wenn das Windows-System immer verfügbar sein wird. Sie können die Halterung einfach zur hinzufügen /etc/fstabund sie wird montiert. Über die Optionen können Sie dem Benutzer erlauben, die Partition nach Bedarf bereitzustellen und die Bereitstellung aufzuheben user,noauto. Damit andere Benutzer die Bereitstellung aufheben können, wechseln Sie userzu users.

Autofs unterstützt auch On-Demand-Mounts mit Samba. Die Beschwörung hängt davon ab, welche Verzeichnisse wann gemountet werden sollen. Ich habe es erfolgreich in einer Entwicklungsumgebung ausgeführt.

EDIT: Wenn Sie dies für viele Benutzer tun müssen, empfehle ich die Verwendung von autofs, um die Montage zu tun. Dies erfordert keine Änderungen an fstab. Das Abrufen von Anmeldeinformationen für die verschiedenen Benutzer kann ein Problem darstellen. Ich verwende eine Verzeichnisstruktur im Formular /net/$HOST/$USERfür meine Reittiere. Autofs ist für den /net/$HOSTTeil des Mounts konfiguriert und stellt die darunter befindlichen Verzeichnisse nach Bedarf automatisch bereit .

Bestimmte Montageansätze hängen von Ihren Anforderungen ab. Ich hatte Fälle, in denen Benutzer ihr Desktop-Verzeichnis auf dem Server bereitstellen mussten, obwohl typische Bereitstellungen serverbasiert sind.

Für große Organisationen mit vielen Benutzern kann es sinnvoll sein, die Verzeichnisse auf einen Linux-Server zu verschieben und die Dateien mit Samba für Windows-Benutzer freizugeben. Ich habe es nicht umgekehrt versucht, aber es könnte möglich sein.

BillThor
quelle
Dies funktioniert, aber Sie benötigen root-Zugriff, um fstab zu ändern. Auch wenn Sie als Root angemeldet sind, ist dies für viele Benutzer mit jeweils einer bestimmten Freigabe (wie in einer großen Organisation, in der jeder Benutzer eine persönliche Freigabe auf einem zentralisierten Dateiserver hat) recht unpraktisch.
0

Ich habe diese Frage gefunden, als ich die Magie untersucht habe, die ich kürzlich ausgeführt habe, um genau dies für einen meiner Benutzer zu tun. Mein Arbeitsablauf unterscheidet sich erheblich von den anderen Antworten. Beachten Sie jedoch, dass es sich um den einfachsten möglichen Fall handelt.

Angenommen, Ihr Benutzername ist aeund Ihr Zuhause ist/home/ae

1) Richten Sie smbfs ein:
mkdir /home/ae/.smb

1a) Wenn Windows-Anmeldeinformationen erforderlich sind, erstellen und bearbeiten Sie die Datei /home/ae/.smb/smbnetfs.conf:

auth winuser "winpassword"

winuserist der Benutzer, der auf dem Windows-Computer erstellt wurde, auf den Sie zugreifen möchten. winpasswordist das Kennwort dieses Benutzers für die Anmeldung bei Windows auf diesem Computer.

2) Erstellen Sie Ihren Einhängepunkt:
mkdir /home/ae/nethood

3) Führen Sie den Befehl smbnetfs aus:
smbnetfs /home/ae/nethood


Beachten Sie, dass die gesamte "Netzwerkumgebung" darunter /home/ae/nethoodangezeigt wird, wobei die Arbeitsgruppen die erste Schicht von Unterverzeichnissen sind.

Alle unten aufgeführten Einträge wurden aus dem Durchsuchen von Ordnern als nicht privilegierter Benutzer auf einem Ubuntu-Host kopiert. Benutzername und Gruppe geändert in ae. sudowurde nie benutzt. Die Windows-Computer befinden sich in einem informellen Windows-Netzwerk, und freigegebene Ordner sind durch Benutzer / Kennwort geschützt (auf dem Windows-Computer wird der Windows-Benutzername und das Windows-Kennwort verwendet).

$ cd nethood
$ ls -alh
total 12K
drwxrwxrwx 9 ae   ae     0 Dec 31  1969 .
drwxr-xr-x 9 ae   ae    21 Jul 28 11:49 ..
drwxrwxrwx 2 root root   0 Dec 31  1969 WORKGROUP

Durchsuchen Sie die Arbeitsgruppe WORKGROUP:

$ cd WORKGROUP
$ ls -alh
total 0
drwxrwxrwx 2 root root  0 Dec 31  1969 .
drwxrwxrwx 9 root root  0 Dec 31  1969 ..
lrwxrwxrwx 1 root root 11 Dec 31  1969 HTPC -> ../HTPC
lrwxrwxrwx 1 root root 14 Dec 31  1969 NEWPC -> ../NEWPC

Wechseln Sie das Verzeichnis zu Computern, und alle freigegebenen Ordner werden wie gewohnt aufgelistet und aufgerufen.

$ cd NEWPC
$ ls -alh
total 0
drwxrwxrwx 2 root root 0 Dec 31  1969 .
drwxrwxrwx 9 root root 0 Dec 31  1969 ..
drwxrwxrwx 2 root root 0 Dec 31  1969 Desktop
drwxrwxrwx 2 root root 0 Dec 31  1969 Users

Und die Dateien:

$ cd Desktop/
$ ls -alh
ls: cannot access desktop.ini: No such file or directory
total 30M
drwxrwxrwx 2 root root     0 Dec 31  1969 .
drwxrwxrwx 2 root root     0 Dec 31  1969 ..
-rwxr--r-- 1 ae   ae    1.5K Jan 25  2013 Command Prompt.lnk
-????????? ? ?    ?        ?            ? desktop.ini
-rwxr--r-- 1 ae   ae    156K May 28  2013 Download %25285%2529.iif
-rwxr--r-- 1 ae   ae    2.4K Jul 24 12:28 Google Chrome.lnk
-rwxr--r-- 1 ae   ae     178 Feb  4  2013 import orders.bat
-rwxr--r-- 1 ae   ae    2.3M Mar 30  2012 msvc2008_x86_vcredist_x64.exe
drwxr-xr-x 2 ae   ae       0 May 20  2014 OpenOffice 4.1.0 (en-US) Installation Files
-rwxr--r-- 1 ae   ae    406K Jun  6  2013 Paypal_Jan_1_2012_to_Dec_31_2012.iif
-rwxr--r-- 1 ae   ae     15M May  8  2012 php-5.4.3-Win32-VC9-x86.zip
-rwxr--r-- 1 ae   ae    1.9K Jul 24 13:03 PSPad.lnk
-rwxr--r-- 1 ae   ae    1.1K Jul 24 12:31 VB Demo.lnk

Beachten Sie, dass die oben genannten Verzeichnisse Eigentümer sind root root. Der Dateibesitzer ist derselbe wie Ihr Benutzer.

Kein anderer Benutzer kann auf die Ordner zugreifen, unabhängig vom Mount-Punkt oder den Eigentümern oder Berechtigungen dieses Ordners. Wenn Ihr Benutzer in diesen Ordner "schreiben" kann (und dieser leer ist), stellt smbnetfs die Netzwerkumgebung dort bereit und erlaubt keinem anderen Zugriff, auch nicht root. Um rootZugriff zu haben, müssen Sie su ae.


Wenn keine freigegebenen Ordner vorhanden sind, ist das Verzeichnis des Computers leer.

Wenn Sie keine Anmeldeinformationen für den Windows-Computer haben, wird möglicherweise die folgende Fehlermeldung angezeigt:
ls: cannot open directory .: Input/output error

Chris K
quelle