Benutzer-Werkzeuge

Webseiten-Werkzeuge


ubuntu:samba

Dies ist eine alte Version des Dokuments!


Samba Server unter Ubuntu Server 22.04 und 24.04 einrichten

Diese Anleitung beschreibt die Installation und Einrichtung eines Samba-Servers unter Ubuntu 22.04.

Samba ermöglicht die Freigabe von Verzeichnissen im Netzwerk, sodass Linux- und Windows-Clients darauf zugreifen können.

1. Samba installieren

Auf dem Server:

 sudo apt update sudo apt install samba samba-common-bin smbclient cifs-utils 

Dienst prüfen:

 systemctl status smbd 

Falls der Dienst nicht aktiv ist:

 sudo systemctl enable smbd sudo systemctl start smbd 

2. Freigabe-Verzeichnis erstellen

Beispiel Server 1:

 sudo mkdir -p /media/daten/samba/sambashare 

Beispiel Server 2:

 sudo mkdir -p /home/samba/publicshare 

3. Rechte setzen

Beispiel mit dem Benutzer someuser.

Server 1:

 sudo chown -R someuser:someuser /media/daten/samba/sambashare sudo chmod -R 770 /media/daten/samba/sambashare 

Server 2:

 sudo chown -R someuser:someuser /home/samba/publicshare sudo chmod -R 770 /home/samba/publicshare 

Die Rechte der übergeordneten Verzeichnisse können mit folgendem Befehl geprüft werden:

 namei -l /home/samba/publicshare 

Wichtig ist, dass die notwendigen Verzeichnisse betreten werden können. Dafür ist das x-Recht auf den Verzeichnissen erforderlich.

4. Samba-Benutzer einrichten

Ein Samba-Benutzer muss auch als Linux-Benutzer existieren.

Falls der Benutzer noch nicht existiert:

 sudo adduser someuser 

Samba-Passwort setzen:

 sudo smbpasswd -a someuser 

Samba-Benutzer aktivieren:

 sudo smbpasswd -e someuser 

Samba-Benutzer anzeigen:

 sudo pdbedit -L 

5. Samba-Freigabe konfigurieren

Die Samba-Konfiguration bearbeiten:

 sudo nano /etc/samba/smb.conf 

Am Ende der Datei wird die Freigabe eingetragen.

Beispiel für Server 1:

 [sharing] path = /media/daten/samba/sambashare comment = Samba share directory browseable = yes read only = no guest ok = no valid users = someuser create mask = 0660 directory mask = 0770 

Beispiel für Server 2:

 [sharing] path = /home/samba/publicshare comment = Samba share directory browseable = yes read only = no guest ok = no valid users = someuser create mask = 0660 directory mask = 0770 

Wichtig:

Der Freigabename ist der Name in den eckigen Klammern.

In diesem Beispiel lautet der Freigabename:

 sharing 

Der Zugriff erfolgt daher nicht über den Linux-Pfad, sondern über den Freigabenamen.

Richtig:

 smbclient //SERVER-IP/sharing -U someuser -m SMB3 

Falsch:

 smbclient //SERVER-IP/home/samba/publicshare -U someuser 

6. Konfiguration prüfen

Nach jeder Änderung an der Datei smb.conf sollte die Konfiguration geprüft werden:

 testparm 

Oder kurz zusammengefasst:

 testparm -s 

In der Ausgabe muss die Freigabe sharing sichtbar sein.

7. Samba neu starten

Nach erfolgreicher Prüfung Samba neu starten:

 sudo systemctl restart smbd 

Status prüfen:

 systemctl status smbd 

8. Lokalen Zugriff testen

Auf dem Samba-Server selbst:

 smbclient -L //localhost -U someuser -m SMB3 

Beispielausgabe:

 Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers sharing Disk Samba share directory IPC$ IPC IPC Service SMB1 disabled -- no workgroup available 

Die Meldung

 SMB1 disabled -- no workgroup available 

ist kein Fehler. Sie bedeutet nur, dass die alte SMB1-Arbeitsgruppen-Suche deaktiviert ist. SMB1 sollte aus Sicherheitsgründen nicht wieder aktiviert werden.

Direkt mit der Freigabe verbinden:

 smbclient //localhost/sharing -U someuser -m SMB3 

Wenn die Verbindung funktioniert, erscheint die Samba-Konsole.

Befehle innerhalb der Samba-Konsole:

 ls put test.txt get test.txt exit 

9. Zugriff von einem anderen Linux-Client

Zuerst die IP-Adresse des Samba-Servers ermitteln:

 hostname -I 

Vom Client aus die Freigaben anzeigen:

 smbclient -L //SERVER-IP -U someuser -m SMB3 

Direkt verbinden:

 smbclient //SERVER-IP/sharing -U someuser -m SMB3 

Beispiel:

 smbclient //192.168.1.42/sharing -U someuser -m SMB3 

10. Firewall freigeben

Falls UFW aktiv ist:

 sudo ufw allow samba 

Oder eingeschränkt auf das lokale Netz, zum Beispiel 192.168.1.0/24:

 sudo ufw allow from 192.168.1.0/24 to any app Samba 

Status prüfen:

 sudo ufw status 

11. Häufige Fehler

Fehler: SMB1 disabled -- no workgroup available

Diese Meldung ist normalerweise unkritisch.

Ursache:

Die alte Arbeitsgruppen-Suche über SMB1 ist deaktiviert.

Lösung:

Freigabe direkt über IP-Adresse oder Hostname aufrufen:

 smbclient //SERVER-IP/sharing -U someuser -m SMB3 

SMB1 sollte nicht aktiviert werden.

Fehler: NT_STATUS_BAD_NETWORK_NAME

Beispiel:

 tree connect failed: NT_STATUS_BAD_NETWORK_NAME 

Ursache:

Der angegebene Freigabename existiert nicht.

Beispiel:

Wenn die Freigabe in smb.conf so heißt:

 [sharing] path = /home/samba/publicshare 

dann muss der Zugriff so erfolgen:

 smbclient //SERVER-IP/sharing -U someuser -m SMB3 

Nicht so:

 smbclient //SERVER-IP/publicshare -U someuser -m SMB3 

Der Freigabename ist immer der Name in den eckigen Klammern.

Fehler: NT_STATUS_NOT_FOUND

Ursache:

Meist wurde ein Platzhalter oder falscher Servername verwendet.

Falsch:

 smbclient //SERVER-IP/sharing -U someuser -m SMB3 

Richtig mit echter IP-Adresse:

 smbclient //192.168.1.42/sharing -U someuser -m SMB3 

Oder lokal auf dem Server:

 smbclient //localhost/sharing -U someuser -m SMB3 

12. Wichtige Prüfkommandos

Samba-Dienst prüfen:

 systemctl status smbd 

Samba-Konfiguration prüfen:

 testparm 

Aktive Freigaben anzeigen:

 smbclient -L //localhost -U someuser -m SMB3 

Samba-Benutzer anzeigen:

 sudo pdbedit -L 

Logdatei prüfen:

 sudo tail -n 100 /var/log/samba/log.smbd 

Systemd-Log prüfen:

 sudo journalctl -u smbd -n 100 --no-pager 

Verzeichnisrechte prüfen:

 namei -l /home/samba/publicshare 

13. Zusammenfassung

Für die Samba-Freigabe sind drei Punkte entscheidend:

  • Das Linux-Verzeichnis muss existieren.
  • Der Samba-Benutzer muss eingerichtet sein.
  • Der Zugriff erfolgt über den Freigabenamen aus smb.conf, nicht über den Linux-Pfad.

Beispiel:

 [sharing] path = /home/samba/publicshare 

Zugriff:

 smbclient //SERVER-IP/sharing -U someuser -m SMB3 
ubuntu/samba.1779721891.txt.gz · Zuletzt geändert: von franz

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki