Samba ist das Standard-Tool für Unix-basierte Betriebssysteme um mit Windows-Freigaben via SMB oder CIFS zu interagieren. Es ermöglicht unter Linux die Datei- und Druckfreigabe von Windows-Computern aus zu nutzen. Grundsätzlich verwendet Samba das SMB/CIFS-Protokoll für einen ziemlich sicheren, stabilen und zuverlässigen Datei-/Druckerfreigabezugriff.
Gestandene Admins nutzen Samba natürlich auswendig. Für alle anderen ist diese Schritt-für-Schritt Anleitung gedacht.
Wir möchten einen Samba-Share (eine Windows-Freigabe) permanent unter Linux verbinden, so dass diese auch nach einem Neustart zur Verfügung steht.
Schritte zum Mounten von einer Freigabe unter Ubuntu und Debian
1. Das Debian-Paket cifs-utils
auf dem System installieren:
sudo apt-get install cifs-utils
2. Erstellen des Ziel-Verzeichnis zum Mounten der Freigabe
sudo mkdir /media/freigabe
3. Credentials (Anmeldeinformationen) ablegen. Die Datei wird die unverschlüsselten Zugangsdaten enthalten und sollte daher aus Sicherheitsgründen mit einem Punkt (.) zu einer versteckten Datei gemacht werden. Es empfiehlt sich außerdem, diese im Home-Verzeichnis zu erstellen und mit entsprechend restriktiven Rechten zu versehen.
Datei anlegen …
vi /root/.smbcredentials
… mit diesem Inhalt:
username=benutzername
password=passwort
Zum Beispiel:
username=AD.EXAMPLE.COM\t.musterfrau
password=Schlup2s3i4mu867psie
Diese Datei dann speichern und idealerweise nur für root lesbar machen. Dadurch wird der Zugriff von allen Nicht-Root-Konten ausgeschlossen.
chown root:root /root/.smbcredentials
chmod 400 /root/.smbcredentials
4. Testen. Mit dem folgenden Befehl kann man die Windows-Freigabe jetzt auf dem Linux-System bereitstellen
sudo mount -t cifs -o rw,vers=3.0,credentials=/root/.smbcredentials //SERVER.AD.EXAMPLE.COM/freigabe /media/freigabe
Das jetzt manuell gemountete Dateisystem bleibt für dieses Sitzung erhalten. Nach einem Reboot ist /media/freigabe
aber wieder leer.
5. Automount: Der Share kann nun zur /etc/fstab
hinzugefügt werden. Dann wird die Remote-Freigabe beim Systemstart automatisch bereitgestellt.
sudo vi /etc/fstab
Am Ende der Datei diese Zeile hinzufügen:
//SERVER.AD.EXAMPLE.COM/freigabe /media/freigabe cifs vers=3.0,credentials=/root/.smbcredentials
Ausprobieren
Datei dann speichern und schließen. Die Verbindung lässt sich nun auch ohne echten reboot testen:
sudo umount /media/freigabe
sudo systemctl daemon-reload
sudo mount -a
Mögliche Fehler und Samba-Fehlersuche
Es gibt zahlreiche Dinge, die beim mounten schiefgehen könnten. Hilfreich ist bei der Fehlersuche immer die verbose
Ausgabe von mount:
sudo mount -vvvv -t cifs -o rw,vers=3.0,credentials=/root/.smbcredentials //SERVER.AD.EXAMPLE.COM/freigabe /media/freigabe
Ich habe ein paar mal den Fehler „cifs_mount failed w/return code = -13
“ gesucht. Der Fehler „-13“ bedeutet ausgeschrieben:
CIFS: Status code returned 0xc000006d STATUS_LOGON_FAILURE
Das steht schlicht für Name/Kennwort falsch. Mal stimmt die Domäne nicht, mal das Kennwort, mal der Name. Ein spezieller Stolperstein ist hier auch gerne die Begrenzung auf 20 Zeichen lange Benutzernamen – ist der Name länger, schlägt die Anmeldugn auf jeden Fall fehl.