GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So mounten Sie Windows- oder Samba-Freigaben dauerhaft

Diese Anleitung beschreibt, wie Windows CIFS (SMB)-Freigaben dauerhaft gemountet werden. Die Freigaben können auf einem Windows-Computer/Server oder auf einem Linux/UNIX-Server mit Samba gehostet werden. Dieses Dokument gilt ebenfalls auf SMBFS-Freigaben, die CIFS ähnlich sind, aber veraltet sind und nach Möglichkeit vermieden werden sollten (Link).

Diese Zuordnung basiert auf dem ursprünglichen Ubuntu-Dokument (Link), geschrieben von Mitwirkenden am Ubuntu-Dokumentations-Wiki.

(Dieses Dokument nicht beschreiben, wie Sie die Freigaben selbst hosten, nur wie Sie auf Freigaben zugreifen, die woanders gehostet werden. Verwenden Sie zum Hosten von Freigaben Samba.)

Voraussetzungen

Wir gehen davon aus, dass:

  • Netzwerkverbindungen wurden richtig konfiguriert.
  • Ihr lokaler Benutzername ist ubuntuusername .

  • Share-Benutzername auf Windows-Computer ist msusername .

  • Das Freigabepasswort auf einem Windows-Computer ist mspassword .

  • Der Name des Windows-Computers ist servername (Dies kann entweder eine IP-Adresse oder ein zugewiesener Name sein).

  • Der Name der Freigabe ist Freigabename .

  • Sie möchten die Freigabe in /media/windowsshare einhängen .

CIFS-Installation

sudo apt-get install cifs-utils

Auf älteren Systemen:

sudo apt-get install smbfs

Einbinden von ungeschützten (Gast-)Netzwerkordnern

Zuerst erstellen wir das Mount-Verzeichnis. Sie benötigen für jeden Mount ein separates Verzeichnis.

sudo mkdir /media/windowsshare

Bearbeiten Sie dann Ihre /etc/fstab-Datei (mit Root-Rechten), um diese Zeile hinzuzufügen:

//servername/sharename  /media/windowsshare  cifs  guest,uid=1000,iocharset=utf8  0  0

Wo;

  • Gast gibt an, dass Sie kein Passwort benötigen, um auf die Freigabe zuzugreifen,

  • uid=1000 macht den durch die id angegebenen Linux-Benutzer zum Eigentümer der gemounteten Freigabe und erlaubt ihm, Dateien umzubenennen,

  • iocharset=utf8 ermöglicht den Zugriff auf Dateien mit Namen in nicht-englischen Sprachen. Dies funktioniert nicht mit Freigaben von Geräten wie der Buffalo Tera Station oder Windows-Computern, die ihre Freigaben mit ISO8895-15 exportieren.

  • Wenn Leerzeichen im Serverpfad vorhanden sind , müssen Sie es durch \040 ersetzen, zum Beispiel //servername/My\040Documents

Nachdem Sie den Eintrag zu /etc/fstab hinzugefügt haben, geben Sie Folgendes ein:

sudo mount -a

Dadurch werden alle in /etc/fstab aufgelisteten Einträge (erneut) gemountet.

Passwortgeschützte Netzwerkordner mounten

Der schnellste Weg zum automatischen Mounten einer passwortgeschützten Freigabe besteht darin, /etc/fstab (mit Root-Rechten) zu bearbeiten und diese Zeile hinzuzufügen:

//servername/sharename  /media/windowsshare  cifs  username=msusername,password=mspassword,iocharset=utf8,sec=ntlm  0  0

Das ist nicht aber eine gute idee:/etc/fstab ist für jeden lesbar und auch dein Windows-Passwort ist darin enthalten. Der Weg, dies zu umgehen, besteht darin, eine Anmeldeinformationsdatei zu verwenden. Dies ist eine Datei, die nur den Benutzernamen und das Passwort enthält.

Erstellen Sie mit einem Texteditor eine Datei für die Anmeldedaten Ihres Remote-Servers:

gedit ~/.smbcredentials

Geben Sie Ihren Windows-Benutzernamen und Ihr Passwort in die Datei ein:

username=msusername
password=mspassword

Speichern Sie die Datei, beenden Sie den Editor.

Ändern Sie die Berechtigungen der Datei, um unerwünschten Zugriff auf Ihre Anmeldeinformationen zu verhindern:

chmod 600 ~/.smbcredentials

Bearbeiten Sie dann Ihre /etc/fstab-Datei (mit Root-Rechten), um diese Zeile hinzuzufügen (wobei Sie die unsichere Zeile im obigen Beispiel ersetzen, falls Sie sie hinzugefügt haben):

//servername/sharename /media/windowsshare cifs credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,sec=ntlm 0 0

Speichern Sie die Datei, beenden Sie den Editor.

Testen Sie schließlich den fstab-Eintrag, indem Sie Folgendes ausgeben:

sudo mount -a

Wenn keine Fehler auftreten, sollten Sie nach einem Neustart testen, wie es funktioniert. Ihre Remote-Freigabe sollte automatisch bereitgestellt werden.

Spezielle Berechtigungen

Wenn Sie spezielle Berechtigungen benötigen (wie chmod usw.), müssen Sie eine uid hinzufügen (kurz für „user id“) oder gid (für ‚group id‘) Parameter zu den Mount-Optionen der Freigabe.

//servername/sharename  /media/windowsshare  cifs   uid=ubuntuuser,credentials=/home/ubuntuuser/.smbcredentials,iocharset=utf8,sec=ntlm   0       0

Fehlerbehebung

Anmeldefehler

Wenn Sie die Fehlermeldung „mount error(13) permission denied“ erhalten, hat der Server Ihren Zugriff verweigert. Hier sind die ersten Dinge, die Sie überprüfen sollten:

  • Verwenden Sie einen gültigen Benutzernamen und ein gültiges Passwort? Hat dieses Konto wirklich Zugriff auf diesen Ordner?
  • Haben Sie Leerzeichen in Ihrer Anmeldeinformationen-Datei? Es sollte password=mspassword sein , nicht password = mspassword .

  • Benötigen Sie eine Domäne? Zum Beispiel, wenn Ihnen gesagt wird, dass Ihr Benutzername SALES\sally ist , dann ist Ihr Benutzername eigentlich sally und Ihre Domain ist SALES . Der fstab-Eintrag sollte lauten:...username=sally,password=pass,domain=SALES,... Oder:...credentials=/path/to/file,domain=SALES,...

  • Ist die Sicherheitseinstellung korrekt? Am gebräuchlichsten ist sec=ntlm , aber Sie können auch die anderen Optionen ausprobieren, die auf der man-Seite von mount.cifs aufgelistet sind. Die Manpage-Liste lässt die Option sec=lanman weg aus irgendeinem Grund, aber Sie sollten es auch versuchen (siehe Diskussion).

Ungeschützter Netzwerkordner wird nicht automatisch bereitgestellt

Ich hatte eine Situation, in der ein ungeschützter Netzwerkordner beim Booten nicht automatisch gemountet wurde, aber nach der manuellen Eingabe von „sudo mount -a“ korrekt gemountet wurde. Ich habe das gelöst, indem ich die Option „guest“ durch „username=guest,password=“ ersetzt habe. Wenn jemand eine Erklärung dafür hat, hinterlasse bitte einen Kommentar.

//servername/sharename  /media/windowsshare  smbfs  username=guest,password=,uid=1000,iocharset=utf8,codepage=unicode,unicode  0  0

Beim Login statt beim Booten mounten

Wenn aus irgendeinem Grund /etc/rc0.d/S31umountnfs.sh (z. B. Netzwerkprobleme) das automatische Mounten während des Bootens nicht funktioniert, können Sie den Parameter „noauto“ zu Ihrem smbfs-fstab-Eintrag hinzufügen und dann die Freigabe unter mounten lassen Anmeldung.

In /etc/fstab:

//servername/sharename  /media/windowsshare  cifs  noauto,credentials=/home/ubuntuusername/.smbpasswd  0  0

In /etc/rc.local:

mount /media/windowsshare
exit 0

Langsames Herunterfahren aufgrund eines CIFS/Network Manager-Fehlers

Wenn Sie Network Manager verwenden und sehr langsam heruntergefahren werden, liegt dies wahrscheinlich daran, dass NM heruntergefahren wird, bevor die Netzwerkfreigaben deaktiviert werden. Dadurch hängt sich CIFS auf und wartet etwa 60 Sekunden. So beheben Sie das Problem:/etc/rc0.d/S31umountnfs.sh

sudo ln -s /etc/init.d/umountnfs.sh /etc/rc0.d/K14umountnfs.sh
sudo ln -s /etc/init.d/umountnfs.sh /etc/rc6.d/K14umountnfs.sh

Ubuntu 12.04 führt bereits umountnfs.sh aus beim Neustart und Herunterfahren standardmäßig (/etc/rc0.d/S31umountnfs.sh und /etc/rc6.d/S31umountnfs.sh), sodass dies nicht mehr erforderlich ist.

CIFS-Optionen veraltet

20. Februar 2008 TW

Die Verwendung von dmask oder fmask in der fstab-Datei erzeugt die folgenden Warnungen:WARNUNG:Die CIFS-Mount-Option „dmask“ ist veraltet. Verwenden Sie stattdessen „dir_mode“. WARNUNG:Die CIFS-Mount-Option „fmask“ ist veraltet. Verwenden Sie stattdessen „file_mode“.

Verwenden Sie stattdessen dieses Format:file_mode=0777,dir_mode=0777 . Oder in einigen Fällen müssen Sie möglicherweise file_mode=0777,dir_mode=0777,nounix verwenden (siehe Diskussion)

Verwendung von Tilde in Pfadnamen wie „credentials=~/.smbcredentials“

20. Februar 2008 TW

Seltsamerweise funktionierte die Verwendung von "credentials=~/.smbcredentials" in fstab nicht. Ich musste den vollständigen Pfad verwenden, d. h. /home/username/.smbcredentials

(Dies liegt wahrscheinlich daran, dass die Tilde „~“ nur ein Shell-Kurzalias für „$HOME“ ist; sie wird nicht systemweit von allen Programmen erkannt, insbesondere nicht in einer Systemdateitabelle, in der das Konzept „HOME ” existiert nicht wirklich. -Ian!)

Historische Elemente (ältere Versionen von Ubuntu)

Mounten Sie passwortgeschützte Freigaben mit libpam_mount (Ubuntu 9.04)

Zusätzlich zu den anfänglichen Annahmen gehen wir davon aus, dass

  • Ihr Benutzername und Ihr Passwort sind auf dem Ubuntu-Rechner und auf dem Netzlaufwerk identisch.

Installieren Sie libpam-mount:

sudo apt-get install libpam-mount

Bearbeiten Sie /etc/security/pam_mount.conf.xml mit Ihrem bevorzugten Texteditor.

gksudo gedit /etc/security/pam_mount.conf.xml

Zuerst verschieben wir die benutzerspezifischen Konfigurationsbits in eine Datei, die Benutzer tatsächlich selbst bearbeiten können:Entfernen Sie die Kommentar-Tags (), die den Abschnitt namens . Speichern Sie die Datei, wenn Sie fertig sind. Damit können Benutzer ihre eigene ~/.pam_mount.conf.xml erstellen.

gedit ~/.pam_mount.conf.xml

Fügen Sie Folgendes hinzu:

<?xml version="1.0" encoding="utf-8" ?>

<pam_mount>

<volume options="uid=%(USER),gid=100,dmask=0700" user="*" mountpoint="/media/windowsshare" path="sharename" server="servername" fstype="cifs" />

</pam_mount>

Das Material zu diesem Beitrag ist unter einer kostenlosen Lizenz verfügbar, siehe Copyright / Lizenz für Details.


Linux
  1. So verwenden Sie autofs zum Mounten von NFS-Freigaben

  2. So konfigurieren Sie den SAMBA-Server und übertragen Dateien zwischen Linux und Windows

  3. So bearbeiten Sie Ihre Hosts-Datei in Windows 10

  4. Wie mounte ich eine ISO-Datei unter Linux?

  5. Wie übergebe ich die Berechtigungsdatei an mount.cifs?

So mounten Sie Windows Share unter Linux mit CIFS

So mounten Sie eine ISO-Datei unter Linux

So richten Sie den Samba-Dateifreigabeserver unter Ubuntu ein

So konvertieren Sie eine Windows-Datei in eine UNIX-Datei

So mounten Sie eine NTFS-Festplatte unter Linux

Samba-Windows-Dateifreigabe