Samba Grundkurs: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 +
= Samba Server Aufbau und Test =
  
 
+
== Ziel ==
==Ziel==
 
 
*Ein einfacher Samba-Server wird schrittweise aufgebaut und getestet – von Public Share bis Home-Verzeichnis inkl. Debugging.
 
*Ein einfacher Samba-Server wird schrittweise aufgebaut und getestet – von Public Share bis Home-Verzeichnis inkl. Debugging.
  
==Installation==
+
== Installation ==
;Installation der benötigten Pakete
+
=== Pakete installieren ===
 
*apt update
 
*apt update
 
*apt install samba smbclient cifs-utils -y
 
*apt install samba smbclient cifs-utils -y
  
;Dienststatus prüfen
+
=== Dienststatus prüfen ===
 
*systemctl status smbd
 
*systemctl status smbd
  
==Netzwerk-Check (vorher)==
+
== Netzwerk-Check (vorher) ==
 
*ss -tulpen | grep smb
 
*ss -tulpen | grep smb
 
*ss -tulpen | grep 445
 
*ss -tulpen | grep 445
Zeile 20: Zeile 20:
 
Samba nutzt primär TCP 445 (modern). Port 139 (NetBIOS) ist Legacy und kann später deaktiviert werden.
 
Samba nutzt primär TCP 445 (modern). Port 139 (NetBIOS) ist Legacy und kann später deaktiviert werden.
  
==Einfachste Konfiguration (Public Share)==
+
== Einfachste Konfiguration (Public Share) ==
;Konfigurationsdatei bearbeiten
+
=== Konfigurationsdatei bearbeiten ===
 
*nano /etc/samba/smb.conf
 
*nano /etc/samba/smb.conf
  
Zeile 40: Zeile 40:
 
*[[Optionen Samba Grundkurs 1]]
 
*[[Optionen Samba Grundkurs 1]]
  
 
+
=== Verzeichnis anlegen ===
;Verzeichnis anlegen
 
 
*mkdir -p /srv/samba/public
 
*mkdir -p /srv/samba/public
 
*chmod 777 /srv/samba/public
 
*chmod 777 /srv/samba/public
  
;Dienst neu starten
+
=== Dienst neu starten ===
 
*systemctl restart smbd
 
*systemctl restart smbd
  
==Test (Public Share)==
+
== Test (Public Share) ==
;Freigaben anzeigen
+
=== Freigaben anzeigen ===
 
*smbclient -L localhost -N
 
*smbclient -L localhost -N
  
;Auf Share zugreifen
+
=== Auf Share zugreifen ===
 
*smbclient //localhost/public -N
 
*smbclient //localhost/public -N
  
;Testdatei erstellen
+
=== Testdatei erstellen ===
 
*put /etc/hostname test.txt
 
*put /etc/hostname test.txt
  
==Debug zwischendurch==
+
== Debug zwischendurch ==
;Logs beobachten
+
=== Logs beobachten ===
 
*journalctl -u smbd -f
 
*journalctl -u smbd -f
  
= Testparm =
+
== Testparm ==
 
+
=== Alle aktiven Optionen anzeigen ===
== Alle aktiven Optionen anzeigen ==
 
 
*testparm
 
*testparm
  
== Nur effektive Konfiguration ohne Kommentare ==
+
=== Nur effektive Konfiguration ohne Kommentare ===
 
*testparm -s
 
*testparm -s
  
== Bestimmten Parameter prüfen ==
+
=== Bestimmten Parameter prüfen ===
 
*testparm -v | grep parametername
 
*testparm -v | grep parametername
  
== Alle verfügbaren Optionen anzeigen ==
+
=== Alle verfügbaren Optionen anzeigen ===
 
*testparm -v
 
*testparm -v
  
== Nur eine Freigabe anzeigen ==
+
=== Nur eine Freigabe anzeigen ===
 
*testparm -s --section-name=public
 
*testparm -s --section-name=public
  
== Hinweis ==
+
=== Hinweis ===
 
*testparm zeigt nur die tatsächlich gesetzten bzw. wirksamen Optionen an.
 
*testparm zeigt nur die tatsächlich gesetzten bzw. wirksamen Optionen an.
 
*Mit -v werden zusätzlich alle Default-Werte angezeigt.
 
*Mit -v werden zusätzlich alle Default-Werte angezeigt.
  
==Benutzer anlegen==
+
== Benutzer anlegen ==
;Linux-Benutzer anlegen <nowiki>(Password: 123Start$)</nowiki>
+
=== Linux-Benutzer anlegen <nowiki>(Password: 123Start$)</nowiki> ===
 
*useradd -m -s /bin/bash -G sambashare martha
 
*useradd -m -s /bin/bash -G sambashare martha
 
*passwd martha
 
*passwd martha
  
;Samba-Benutzer hinzufügen
+
=== Samba-Benutzer hinzufügen ===
 
*smbpasswd -a martha
 
*smbpasswd -a martha
;Kit user auch zu einem Samba Nutzer machen <nowiki>(Password: kit)</nowiki>
+
 
 +
=== Kit User hinzufügen <nowiki>(Password: kit)</nowiki> ===
 
*smbpasswd -a kit
 
*smbpasswd -a kit
  
Zeile 96: Zeile 95:
 
Samba verwaltet eigene Passwörter. Linux-User + Samba-User sind getrennt → daher zwei Passwörter.
 
Samba verwaltet eigene Passwörter. Linux-User + Samba-User sind getrennt → daher zwei Passwörter.
  
==Geschützter Share (Login erforderlich)==
+
== Geschützter Share (Login erforderlich) ==
;Konfiguration erweitern
+
=== Konfiguration erweitern ===
 
*nano /etc/samba/smb.conf
 
*nano /etc/samba/smb.conf
  
Zeile 109: Zeile 108:
 
</pre>
 
</pre>
 
*[[Optionen Samba Grundkurs 2]]
 
*[[Optionen Samba Grundkurs 2]]
;Verzeichnis vorbereiten
+
 
 +
=== Verzeichnis vorbereiten ===
 
*mkdir -p /srv/samba/secure
 
*mkdir -p /srv/samba/secure
 
*chown root:sambashare /srv/samba/secure
 
*chown root:sambashare /srv/samba/secure
 
*chmod 750 /srv/samba/secure
 
*chmod 750 /srv/samba/secure
  
;Dienst neu starten
+
=== Dienst neu starten ===
 
*systemctl restart smbd
 
*systemctl restart smbd
  
==Test (Authentifiziert)==
+
== Test (Authentifiziert) ==
;martha
+
=== martha ===
 
*smbclient //localhost/secure -U martha%123Start$
 
*smbclient //localhost/secure -U martha%123Start$
;kit
+
 
 +
=== kit ===
 
*smbclient //localhost/secure -U kit%kit
 
*smbclient //localhost/secure -U kit%kit
  
==Home-Verzeichnisse==
+
== Home-Verzeichnisse ==
;Konfiguration aktivieren
+
=== Konfiguration aktivieren ===
 
*nano /etc/samba/smb.conf
 
*nano /etc/samba/smb.conf
  
Zeile 134: Zeile 135:
 
</pre>
 
</pre>
 
*[[Optionen Samba Grundkurs 3]]
 
*[[Optionen Samba Grundkurs 3]]
;Dienst neu starten
+
 
 +
=== Dienst neu starten ===
 
*systemctl restart smbd
 
*systemctl restart smbd
  
==Test Home==
+
== Test Home ==
 
*smbclient //localhost/martha -U martha%123Start$
 
*smbclient //localhost/martha -U martha%123Start$
 
*smbclient //localhost/martha -U kit%kit
 
*smbclient //localhost/martha -U kit%kit
  
==Sicherheitsmassnahmen==
+
== Sicherheitsmassnahmen ==
 
*ss -tulpen | egrep "137|138|139|445"
 
*ss -tulpen | egrep "137|138|139|445"
  
== = Samba Ports und Dienste Erklärung Überblick ==
+
=== Samba Ports und Dienste Erklärung ===
 +
==== Überblick ====
 
*Die Ausgabe zeigt offene Netzwerk-Ports und die dazugehörigen Samba-Dienste (smbd und nmbd).
 
*Die Ausgabe zeigt offene Netzwerk-Ports und die dazugehörigen Samba-Dienste (smbd und nmbd).
  
== UDP 137 ==
+
==== UDP 137 ====
 
*NetBIOS Name Service (nmbd)
 
*NetBIOS Name Service (nmbd)
*Wird für Namensauflösung im lokalen Netzwerk verwendet (ähnlich wie DNS, aber alt).
 
  
== UDP 138 ==
+
==== UDP 138 ====
 
*NetBIOS Datagram Service (nmbd)
 
*NetBIOS Datagram Service (nmbd)
*Wird für Broadcasts und Ankündigungen im Netzwerk genutzt.
 
  
== TCP 139 ==
+
==== TCP 139 ====
 
*NetBIOS Session Service (smbd)
 
*NetBIOS Session Service (smbd)
*Klassischer SMB-Zugriff über NetBIOS (älterer Mechanismus).
 
  
== TCP 445 ==
+
==== TCP 445 ====
 
*Direct SMB über TCP (smbd)
 
*Direct SMB über TCP (smbd)
*Moderner SMB-Zugriff ohne NetBIOS, Standard bei aktuellen Systemen.
 
  
== nmbd ==
+
==== nmbd ====
*Dienst für NetBIOS (Ports 137/138)
+
*Dienst für NetBIOS
*Stellt Namensauflösung und Netzwerk-Browsing bereit.
 
  
== smbd ==
+
==== smbd ====
 
*Hauptdienst für Datei- und Druckfreigaben
 
*Hauptdienst für Datei- und Druckfreigaben
*Bedient SMB-Verbindungen auf Port 139 und 445.
 
  
== Interpretation deiner Ausgabe ==
+
==== Interpretation ====
*NetBIOS ist aktiv, da nmbd auf 137 und 138 läuft.
+
*NetBIOS aktiv, SMB modern + legacy parallel
*SMB läuft sowohl modern (445) als auch legacy (139).
 
*disable netbios = yes ist aktuell nicht wirksam oder nmbd läuft trotzdem.
 
  
== Fazit ==
+
==== Fazit ====
*Du hast aktuell einen Mischbetrieb aus altem NetBIOS und modernem SMB.
+
*Mischbetrieb aktiv
*Wenn du nur Port 445 willst, musst du nmbd stoppen und deaktivieren.
 
  
==NetBIOS deaktivieren (modernes Setup)==
+
== NetBIOS deaktivieren (modernes Setup) ==
;Konfiguration anpassen
+
=== Konfiguration anpassen ===
 
*nano /etc/samba/smb.conf
 
*nano /etc/samba/smb.conf
Es laufen
 
  
 
<pre>
 
<pre>
Zeile 191: Zeile 184:
 
</pre>
 
</pre>
 
*[[Optionen Samba Grundkurs 4]]
 
*[[Optionen Samba Grundkurs 4]]
;Dienst neu starten
+
 
 +
=== Dienst neu starten ===
 
*systemctl restart smbd
 
*systemctl restart smbd
  
==Port-Check danach==
+
== Port-Check danach ==
 
*ss -tulpen | grep smb
 
*ss -tulpen | grep smb
 
*ss -tulpen | grep 139
 
*ss -tulpen | grep 139
  
 
;Erklärung
 
;Erklärung
Port 139 sollte jetzt weg sein. Nur noch 445 aktiv → moderner Betrieb.
+
Nur noch Port 445 aktiv.
  
==Debian Client Mount==
+
== Debian Client Mount ==
;Mountpunkt erstellen
+
=== Mountpunkt erstellen ===
 
*mkdir /mnt/smb
 
*mkdir /mnt/smb
  
;Mount durchführen
+
=== Mount durchführen ===
 
*mount -t cifs //SERVER-IP/secure /mnt/smb -o username=user1
 
*mount -t cifs //SERVER-IP/secure /mnt/smb -o username=user1
  
==Test==
+
== Test ==
 
*ls /mnt/smb
 
*ls /mnt/smb
  
==Typische Fehleranalyse==
+
== Typische Fehleranalyse ==
;Verbindung testen
+
=== Verbindung testen ===
 
*smbclient -L SERVER-IP -U user1
 
*smbclient -L SERVER-IP -U user1
  
;Namensauflösung prüfen
+
=== Namensauflösung prüfen ===
 
*ping SERVER-IP
 
*ping SERVER-IP
  
;Firewall prüfen
+
=== Firewall prüfen ===
 
*ss -tulpen | grep 445
 
*ss -tulpen | grep 445
  
;Live-Logs
+
=== Live-Logs ===
 
*journalctl -u smbd -f
 
*journalctl -u smbd -f
  
==Optional: Windows Client==
+
== Optional: Windows Client ==
 
\\SERVER-IP\public
 
\\SERVER-IP\public
 
\\SERVER-IP\secure
 
\\SERVER-IP\secure
  
==Fazit==
+
== Fazit ==
 
*Public → ohne Login
 
*Public → ohne Login
 
*Secure → mit Benutzer
 
*Secure → mit Benutzer
 
*Homes → automatisch pro User
 
*Homes → automatisch pro User
 
*Port 445 → Standard
 
*Port 445 → Standard
*139/NetBIOS → meist abschaltbar
+
*139/NetBIOS → abschaltbar
==Gruppenbasierte Freigabe==
+
 
;Gruppe anlegen
+
== Gruppenbasierte Freigabe ==
 +
=== Gruppe anlegen ===
 
*groupadd smbgruppe
 
*groupadd smbgruppe
  
;Benutzer zur Gruppe hinzufügen
+
=== Benutzer hinzufügen ===
 
*usermod -aG smbgruppe user1
 
*usermod -aG smbgruppe user1
  
;Verzeichnis vorbereiten
+
=== Verzeichnis vorbereiten ===
 
*mkdir -p /srv/samba/group
 
*mkdir -p /srv/samba/group
 
*chown root:smbgruppe /srv/samba/group
 
*chown root:smbgruppe /srv/samba/group
 
*chmod 770 /srv/samba/group
 
*chmod 770 /srv/samba/group
  
;Konfiguration erweitern
+
=== Konfiguration ===
 
*nano /etc/samba/smb.conf
 
*nano /etc/samba/smb.conf
  
Zeile 258: Zeile 253:
 
</pre>
 
</pre>
  
;Dienst neu starten
+
=== Dienst neu starten ===
 
*systemctl restart smbd
 
*systemctl restart smbd
  
==Test==
+
== Test ==
 
*smbclient //localhost/group -U user1
 
*smbclient //localhost/group -U user1
  
 
;Erklärung
 
;Erklärung
Zugriff erfolgt jetzt gruppenbasiert statt pro Benutzer.
+
Gruppenbasierter Zugriff.
  
==ACLs einführen==
+
== ACLs ==
;ACL-Unterstützung sicherstellen
+
=== Installation ===
 
*apt install acl -y
 
*apt install acl -y
  
;ACL setzen (zusätzlicher Benutzer)
+
=== ACL setzen ===
 
*setfacl -m u:user1:rwx /srv/samba/group
 
*setfacl -m u:user1:rwx /srv/samba/group
  
;Standard-ACL für neue Dateien
+
=== Default ACL ===
 
*setfacl -d -m u:user1:rwx /srv/samba/group
 
*setfacl -d -m u:user1:rwx /srv/samba/group
  
;ACL anzeigen
+
=== Anzeigen ===
 
*getfacl /srv/samba/group
 
*getfacl /srv/samba/group
  
;Erklärung
+
== Samba + ACL ==
ACLs erlauben feinere Rechtevergabe zusätzlich zu klassischen Unix-Rechten.
 
 
 
==Samba + ACL sinnvoll kombinieren==
 
;Konfiguration erweitern
 
 
*nano /etc/samba/smb.conf
 
*nano /etc/samba/smb.conf
  
Zeile 298: Zeile 289:
 
</pre>
 
</pre>
  
;Dienst neu starten
+
== Force Group ==
*systemctl restart smbd
 
 
 
==Force User / Force Group==
 
;Konfiguration erweitern
 
 
*nano /etc/samba/smb.conf
 
*nano /etc/samba/smb.conf
  
Zeile 317: Zeile 304:
 
</pre>
 
</pre>
  
;Erklärung
+
== Setgid ==
Alle erstellten Dateien gehören immer der Gruppe → keine Rechteprobleme zwischen Nutzern.
 
 
 
==Setgid für Verzeichnis==
 
;Setgid setzen
 
 
*chmod g+s /srv/samba/group
 
*chmod g+s /srv/samba/group
  
;Erklärung
+
== Fehleranalyse ==
Neue Dateien erben automatisch die Gruppe des Verzeichnisses.
+
=== Zugriff verweigert ===
 
 
==Typischer Fehler 1: Zugriff verweigert==
 
;Problem zeigen
 
 
*chmod 700 /srv/samba/group
 
*chmod 700 /srv/samba/group
 
;Test
 
*smbclient //localhost/group -U user1
 
 
;Fix
 
 
*chmod 770 /srv/samba/group
 
*chmod 770 /srv/samba/group
  
==Typischer Fehler 2: Benutzer nicht in Gruppe==
+
=== Benutzer fehlt ===
;Problem simulieren
 
 
*deluser user1 smbgruppe
 
*deluser user1 smbgruppe
 
;Test
 
*smbclient //localhost/group -U user1
 
 
;Fix
 
 
*usermod -aG smbgruppe user1
 
*usermod -aG smbgruppe user1
  
==Typischer Fehler 3: Samba kennt Benutzer nicht==
+
=== Samba User fehlt ===
;Problem
 
 
*smbpasswd -x user1
 
*smbpasswd -x user1
 
;Test
 
*smbclient //localhost/secure -U user1
 
 
;Fix
 
 
*smbpasswd -a user1
 
*smbpasswd -a user1
  
==Typischer Fehler 4: Dienst läuft nicht==
+
=== Dienst gestoppt ===
;Problem simulieren
 
 
*systemctl stop smbd
 
*systemctl stop smbd
 
;Test
 
*smbclient -L localhost
 
 
;Fix
 
 
*systemctl start smbd
 
*systemctl start smbd
  
==Debug erweitern==
+
== Debug ==
;Offene Dateien anzeigen
 
 
*smbstatus
 
*smbstatus
 
;Verbindungen anzeigen
 
 
*smbstatus -p
 
*smbstatus -p
 
;Konfiguration prüfen
 
 
*testparm
 
*testparm
 
;Ports prüfen
 
 
*ss -tulpen | grep 445
 
*ss -tulpen | grep 445
  
==Mount mit Credentials-Datei==
+
== Mount mit Credentials ==
;Credentials Datei erstellen
 
 
*nano /root/.smbcred
 
*nano /root/.smbcred
  
Zeile 389: Zeile 338:
 
</pre>
 
</pre>
  
;Rechte setzen
 
 
*chmod 600 /root/.smbcred
 
*chmod 600 /root/.smbcred
  
;Mount
 
 
*mount -t cifs //SERVER-IP/group /mnt/smb -o credentials=/root/.smbcred
 
*mount -t cifs //SERVER-IP/group /mnt/smb -o credentials=/root/.smbcred
  
==Persistenter Mount==
+
== Persistenter Mount ==
;nano /etc/fstab
+
*nano /etc/fstab
  
 
<pre>
 
<pre>
 
//SERVER-IP/group /mnt/smb cifs credentials=/root/.smbcred,iocharset=utf8 0 0
 
//SERVER-IP/group /mnt/smb cifs credentials=/root/.smbcred,iocharset=utf8 0 0
 
</pre>
 
</pre>

Version vom 1. April 2026, 12:01 Uhr

Samba Server Aufbau und Test

Ziel

  • Ein einfacher Samba-Server wird schrittweise aufgebaut und getestet – von Public Share bis Home-Verzeichnis inkl. Debugging.

Installation

Pakete installieren

  • apt update
  • apt install samba smbclient cifs-utils -y

Dienststatus prüfen

  • systemctl status smbd

Netzwerk-Check (vorher)

  • ss -tulpen | grep smb
  • ss -tulpen | grep 445
  • ss -tulpen | grep 139
Erklärung

Samba nutzt primär TCP 445 (modern). Port 139 (NetBIOS) ist Legacy und kann später deaktiviert werden.

Einfachste Konfiguration (Public Share)

Konfigurationsdatei bearbeiten

  • nano /etc/samba/smb.conf
[global]
   workgroup = WORKGROUP
   server string = Samba Server
   security = user
   map to guest = Bad User

[public]
   path = /srv/samba/public
   browsable = yes
   writable = yes
   guest ok = yes
   read only = no

Verzeichnis anlegen

  • mkdir -p /srv/samba/public
  • chmod 777 /srv/samba/public

Dienst neu starten

  • systemctl restart smbd

Test (Public Share)

Freigaben anzeigen

  • smbclient -L localhost -N

Auf Share zugreifen

  • smbclient //localhost/public -N

Testdatei erstellen

  • put /etc/hostname test.txt

Debug zwischendurch

Logs beobachten

  • journalctl -u smbd -f

Testparm

Alle aktiven Optionen anzeigen

  • testparm

Nur effektive Konfiguration ohne Kommentare

  • testparm -s

Bestimmten Parameter prüfen

  • testparm -v | grep parametername

Alle verfügbaren Optionen anzeigen

  • testparm -v

Nur eine Freigabe anzeigen

  • testparm -s --section-name=public

Hinweis

  • testparm zeigt nur die tatsächlich gesetzten bzw. wirksamen Optionen an.
  • Mit -v werden zusätzlich alle Default-Werte angezeigt.

Benutzer anlegen

Linux-Benutzer anlegen (Password: 123Start$)

  • useradd -m -s /bin/bash -G sambashare martha
  • passwd martha

Samba-Benutzer hinzufügen

  • smbpasswd -a martha

Kit User hinzufügen (Password: kit)

  • smbpasswd -a kit
Erklärung

Samba verwaltet eigene Passwörter. Linux-User + Samba-User sind getrennt → daher zwei Passwörter.

Geschützter Share (Login erforderlich)

Konfiguration erweitern

  • nano /etc/samba/smb.conf
[secure]
   path = /srv/samba/secure
   browsable = yes
   writable = yes
   guest ok = no
   valid users = user1

Verzeichnis vorbereiten

  • mkdir -p /srv/samba/secure
  • chown root:sambashare /srv/samba/secure
  • chmod 750 /srv/samba/secure

Dienst neu starten

  • systemctl restart smbd

Test (Authentifiziert)

martha

  • smbclient //localhost/secure -U martha%123Start$

kit

  • smbclient //localhost/secure -U kit%kit

Home-Verzeichnisse

Konfiguration aktivieren

  • nano /etc/samba/smb.conf
[homes]
   comment = Home Directories
   browseable = no
   writable = yes

Dienst neu starten

  • systemctl restart smbd

Test Home

  • smbclient //localhost/martha -U martha%123Start$
  • smbclient //localhost/martha -U kit%kit

Sicherheitsmassnahmen

  • ss -tulpen | egrep "137|138|139|445"

Samba Ports und Dienste Erklärung

Überblick

  • Die Ausgabe zeigt offene Netzwerk-Ports und die dazugehörigen Samba-Dienste (smbd und nmbd).

UDP 137

  • NetBIOS Name Service (nmbd)

UDP 138

  • NetBIOS Datagram Service (nmbd)

TCP 139

  • NetBIOS Session Service (smbd)

TCP 445

  • Direct SMB über TCP (smbd)

nmbd

  • Dienst für NetBIOS

smbd

  • Hauptdienst für Datei- und Druckfreigaben

Interpretation

  • NetBIOS aktiv, SMB modern + legacy parallel

Fazit

  • Mischbetrieb aktiv

NetBIOS deaktivieren (modernes Setup)

Konfiguration anpassen

  • nano /etc/samba/smb.conf
[global]
   disable netbios = yes
   smb ports = 445

Dienst neu starten

  • systemctl restart smbd

Port-Check danach

  • ss -tulpen | grep smb
  • ss -tulpen | grep 139
Erklärung

Nur noch Port 445 aktiv.

Debian Client Mount

Mountpunkt erstellen

  • mkdir /mnt/smb

Mount durchführen

  • mount -t cifs //SERVER-IP/secure /mnt/smb -o username=user1

Test

  • ls /mnt/smb

Typische Fehleranalyse

Verbindung testen

  • smbclient -L SERVER-IP -U user1

Namensauflösung prüfen

  • ping SERVER-IP

Firewall prüfen

  • ss -tulpen | grep 445

Live-Logs

  • journalctl -u smbd -f

Optional: Windows Client

\\SERVER-IP\public \\SERVER-IP\secure

Fazit

  • Public → ohne Login
  • Secure → mit Benutzer
  • Homes → automatisch pro User
  • Port 445 → Standard
  • 139/NetBIOS → abschaltbar

Gruppenbasierte Freigabe

Gruppe anlegen

  • groupadd smbgruppe

Benutzer hinzufügen

  • usermod -aG smbgruppe user1

Verzeichnis vorbereiten

  • mkdir -p /srv/samba/group
  • chown root:smbgruppe /srv/samba/group
  • chmod 770 /srv/samba/group

Konfiguration

  • nano /etc/samba/smb.conf
[group]
   path = /srv/samba/group
   browsable = yes
   writable = yes
   guest ok = no
   valid users = @smbgruppe

Dienst neu starten

  • systemctl restart smbd

Test

  • smbclient //localhost/group -U user1
Erklärung

Gruppenbasierter Zugriff.

ACLs

Installation

  • apt install acl -y

ACL setzen

  • setfacl -m u:user1:rwx /srv/samba/group

Default ACL

  • setfacl -d -m u:user1:rwx /srv/samba/group

Anzeigen

  • getfacl /srv/samba/group

Samba + ACL

  • nano /etc/samba/smb.conf
[group]
   path = /srv/samba/group
   browsable = yes
   writable = yes
   guest ok = no
   valid users = @smbgruppe
   create mask = 0660
   directory mask = 0770

Force Group

  • nano /etc/samba/smb.conf
[group]
   path = /srv/samba/group
   browsable = yes
   writable = yes
   guest ok = no
   valid users = @smbgruppe
   force group = smbgruppe
   create mask = 0660
   directory mask = 0770

Setgid

  • chmod g+s /srv/samba/group

Fehleranalyse

Zugriff verweigert

  • chmod 700 /srv/samba/group
  • chmod 770 /srv/samba/group

Benutzer fehlt

  • deluser user1 smbgruppe
  • usermod -aG smbgruppe user1

Samba User fehlt

  • smbpasswd -x user1
  • smbpasswd -a user1

Dienst gestoppt

  • systemctl stop smbd
  • systemctl start smbd

Debug

  • smbstatus
  • smbstatus -p
  • testparm
  • ss -tulpen | grep 445

Mount mit Credentials

  • nano /root/.smbcred
username=user1
password=DEINPASSWORT
  • chmod 600 /root/.smbcred
  • mount -t cifs //SERVER-IP/group /mnt/smb -o credentials=/root/.smbcred

Persistenter Mount

  • nano /etc/fstab
//SERVER-IP/group /mnt/smb cifs credentials=/root/.smbcred,iocharset=utf8 0 0