Benutzer-Werkzeuge

Webseiten-Werkzeuge


ubuntu:samba

Dies ist eine alte Version des Dokuments!


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\\
ubuntu/samba.1779719407.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