Sonntag, Januar 5, 2025

Samba Freigaben auf einem Linux Server einrichten

1. Installation von Samba

  • Zuerst installieren wir Samba auf dem System.
  • Für Debian/Ubuntu:
    sudo apt update
    sudo apt install samba
  • Für RedHat/CentOS/Fedora:
    sudo dnf install samba
  • Samba ermöglicht es, Dateien und Drucker im Netzwerk freizugeben.


2. Die Samba Konfigurationsdatei (smb.conf)

  • Die Samba-Konfiguration wird in der Datei
    /etc/samba/smb.conf

    gespeichert.

  • Fügen Sie eine neue Freigabe am Ende der Datei hinzu. Zum Beispiel:
    [gemeinsam_rw]
       path = /samba/gemeinsam_rw
       valid users = alice, bob
       read only = no
       create mask = 0770
       directory mask = 0770
       browseable = yes
    
  • In diesem Beispiel sind alice und bob berechtigt, auf die Freigabe mit Lese- und Schreibrechten zuzugreifen.
  • Jede Freigabe wird durch
    [Freigabename]

    und die dazugehörigen Parameter wie

    path

    ,

    valid users

    , und

    read only

    definiert.

3. Benutzer ohne Home-Verzeichnis hinzufügen

  • Erstellen Sie Benutzer ohne Home-Verzeichnis mit folgendem Befehl:
    sudo useradd -M -s /sbin/nologin benutzername
  • Der Befehl
    useradd

    erstellt einen Benutzer ohne Home-Verzeichnis (

    -M

    ) und ohne Anmeldezugang (

    -s /sbin/nologin

    ).

  • Fügen Sie Benutzer zu Samba hinzu:
    sudo smbpasswd -a benutzername
  • Der Befehl
    smbpasswd -a

    fügt den Benutzer zum Samba-Benutzerdatenbank hinzu.

4. Setzen von Passwörtern für Samba-Benutzer

  • Setzen oder ändern Sie das Samba-Passwort für einen Benutzer mit:
    sudo smbpasswd -a benutzername
  • Der Befehl
    -a

    fügt den Benutzer zu Samba hinzu und legt gleichzeitig ein Passwort fest.

  • Der Benutzer muss danach das gleiche Passwort wie das Systempasswort für den Samba-Zugang verwenden.

5. Erstellen und Verwenden von Gruppen für Samba-Benutzer

  • Erstellen Sie eine Gruppe für Benutzer, die auf die Samba-Freigaben zugreifen sollen:
    sudo groupadd sambagruppe
  • Fügen Sie Benutzer der Gruppe hinzu:
    sudo usermod -aG sambagruppe benutzername
  • In der Samba-Konfiguration können Sie dann die Gruppe als gültige Benutzer angeben:
    [gemeinsam_rw]
       path = /samba/gemeinsam_rw
       valid users = @sambagruppe
       read only = no
       create mask = 0770
       directory mask = 0770
       browseable = yes
    
  • In diesem Fall sind alle Mitglieder der Gruppe sambagruppe berechtigt, auf die Freigabe zuzugreifen.

6. Nutzung von Verzeichnissen für verschiedene Benutzer (Einzelauflistung der Namen)

  • In der Samba-Konfiguration können Sie Benutzer explizit auflisten:
    [gemeinsam_rw]
       path = /samba/gemeinsam_rw
       valid users = alice, bob
       read only = no
    
  • Das Beispiel zeigt, wie Sie alice und bob als berechtigte Benutzer angeben.
  • Alternativ können Sie auch Gruppen verwenden, um mehrere Benutzer zu verwalten.
  • Verwenden Sie
    valid users = @gruppe

    , um alle Mitglieder einer Gruppe zu berechtigen.

7. Beispiele für spezielle Freigaben

  • Hier sind zwei zusätzliche Beispiele:
    • Read-Only Freigabe:
      [gemeinsam_ro]
         path = /samba/gemeinsam_ro
         valid users = alice, bob
         read only = yes
         browseable = yes
      
    • In diesem Beispiel haben die Benutzer alice und bob nur Lesezugriff auf das Verzeichnis.
    • Privates Verzeichnis für einen Nutzer:
      [privat]
         path = /samba/privat
         valid users = alice
         read only = no
         browseable = no
      
    • In diesem Beispiel hat nur alice Schreibzugriff auf das Verzeichnis. Andere Benutzer können nicht darauf zugreifen.

8. Auflisten der System-Benutzer und -Gruppen

  • Um alle Benutzer im System aufzulisten, verwenden Sie:
    cut -d: -f1 /etc/passwd
  • Dieser Befehl zeigt alle Benutzer, die auf dem System existieren, einschließlich Systembenutzern.
  • Um nur normale Benutzer (UID ≥ 1000) anzuzeigen:
    awk -F: ’$3 >= 1000 {print $1}’ /etc/passwd
  • Systemgruppen können ebenfalls angezeigt werden:
    getent group

9. Auflisten der Samba-Benutzer in der Konfiguration

  • Um alle Benutzer zu sehen, die Zugriff auf eine Freigabe haben, können Sie die
    valid users

    Direktive in der Samba-Konfiguration durchsuchen:

    grep -E ”valid users” /etc/samba/smb.conf
  • Dies zeigt Ihnen alle in der Konfiguration festgelegten Benutzer, die auf Freigaben zugreifen dürfen.

10. Samba-Dienst neu starten

sudo systemctl restart smbd