Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Samba Server unter Ubuntu 22.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\