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.1779719475.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