Um komfortabel von Windows-Clients auf Server-Freigaben zu zu greifen, setzt man in der Regel den sogenannten "Samba Server" ein. Mit dem Samba-Client kann man umgekehrt von Linux auf Windows-Shares zugreifen.

Bevor ich die aber erkläre wie das geht noch ein ganz dringender Hinweis:

Samba-Server sind nur für das eigene Netzwerk zuhause! Niemals sind Samba-Server über das Internet freizugeben! Das Verfügbarmachen von Samba-Freigaben über das Internet ist ein gravierender Einschnitt in die Server-Sicherheit! Bitte passe deine Firewall entsprechend an!

Ich zeige dir hier nur, wie man relativ einfache Freigaben für das eigene Netzwerk erstellt. Für kompliziertere Konfigurationen mit ActiveDirectory etc. solltest du entsprechende Literatur zu Rate ziehen. In diversen Wikis findest du auch weitere Hilfe bzgl. LDAP-Einbindung.

  1. In unserer Konfiguration werden wir eine Freigabe für alle anlegen, auf die jeder lesend zugreifen kann. Eine zweite Freigabe konfigurieren wir so, dass nur der eigene Benutzer lesen und schreiben kann. Die Freigaben heißen "public" und "private".
  2. Ersteinmal installieren wir den Samba-Server. Ich empfehle dir hierfür ebenfalls eine Jail...

    # cd /usr/ports/net/samba3/ && make install clean

    Beim erscheinenden Konfigurationsmenü kannst du ruhig die Standardvorgaben belassen. Für uns reicht das, aber du kannst schon sehen, dass es viele Möglichkeiten gibt, die Freigaben zu konfigurieren.
  3. Jetzt ist es an der Zeit die Konfiguration zu erstellen. Die Datei heißt "/usr/local/etc/smb.conf". Wir werden folgende Konfiguration verwenden:

    [GLOBAL]
    server string = "Mein FreeBSD-Server"
    netbios name = "FreeBSD-Server"
    bind interfaces only = true
    interfaces = rl0 <IP-DER-JAIL>
    encrypt passwords = true
    map to guest = Bad User
    guest account = nobody
    workgroup = <WINDOWS-ARBEITSGRUPPE>
    security = user

    In der Sektion "Global" tragen wir allgemeine Daten zu unserem Samba-Server ein. So zum Beispiel die Bezeichnung, die Arbeitsgruppe und so weiter.

    [PUBLIC]
    comment = "PUBLIC-Freigabe"
    path = /samba/public
    writable = no
    browseable = yes
    user = <BENUTZERNAME>
    write list = <BENUTZERNAME>, <BENUTZERNAME2>
    locking = no
    guest ok = yes
    create mode = 0644
    directory mode = 0777
    public = yes

    In der Sektion "Public" (so haben wir unsere öffentliche Freigabe ja genannt) legen wir nun fest, wo die Daten gespeichert werden sollen (path), dass Gäste nicht darauf schreiben können (writable) und dass Gäste die Freigabe in der "Netzwerkumgebung" anzeigen lassen können (browseable).

    Mit dem Parameter "user" legen wir fest, wer der Eigentümer der neu angelegten Dateien und Verzeichnisse sein wird. Mit "write list" können wir festlegen, welche Benutzer berechtigt sind auf die Freigabe (also zusätzlich zum Besitzer) zu schreiben. "Create mode" und "Directory mode" geben an, mit welchen Rechten die neuen Dateien bzw. Verzeichnisse angelegt werden.

    [PRIVATE]
    comment = "PRIVATE-Freigabe"
    path = /samba/private
    writable = no
    browseable = no
    valid users = <BENUTZERNAME>
    create mode = 0600
    directory mode = 0700
    locking = no
    guest ok = no
    public = no

    Hier haben wir im Grunde die gleichen Parameter wie bei unserer öffentlichen Freigabe, allerdings kann nun nur der Besitzer die Freigabe sehen und darauf zugreifen.
  4. Jetzt legen wir einen Samba-Benutzer an. Wenn du unter Windows bereits einen Benutzernamen hast, so solltest du für die Samba-Freigabe den gleichen Namen verwenden, denn dann wird beim Zugriff auf eine Freigabe nicht nach deinem Passwort gefragt. Denke aber bitte an mögliche Folgen daraus...

    Um einen Samba-Benutzer anzulegen, muss dieser bereits in der Datei "/etc/passwd" angelegt, also ein Systembenutzer mit entsprechendem Namen existend sein. Sollte bereits ein Benutzer "Stubenhocker" existieren, so kannst du mit folgenden Befehlen den Benutzer anlegen und anschließend aktivieren:

    # smbpasswd -a Stubenhocker

    # smbpasswd -e Stubenhocker
  5. Um einen Benutzer zu löschen oder zu deaktivieren kannst du folgende Parameter statt "a" bzw. "e" verwenden:
    • löschen: -x
    • sperren: -d
  6. Natürlich müssen wir in der "/etc/rc.conf" noch den Samba-Server freigeben. Folgende Zeile fügen wir also ein:

    samba_enable="YES"

  7. Jetzt kannst du von Windows bzw. von Linux auf die Freigaben zugreifen.

Noch ein Tipp, falls du TortoiseSVN einsetzt:

Nach einem Rechtsklick auf einer Samba-Freigabe friert das Freigabenfenster für kurze Zeit ein. Samba wirft dir in den Logfiles dann einen Fehler "service couldn't be found" aus. Um das zu verhindern solltest du bei TortoiseSVN unter "IconOverlays" den Haken bei "Network drives" entfernen und ggf. den Pfad im "Exclude paths"-Feld eintragen.