GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
16. August 2014

Linux NAS Server

Teil III: Einrichung eines Samba-Servers für den Windows-Zugriff

Inhalt

  1. Einleitung
  2. Konfiguration des Samba-Servers: /etc/samba/smb.conf
    1. Globale Sektion: [global]
    2. Freigaben
    3. Verbotene Zeichen
    4. Die Konfiguration im Überblick
  3. Samba-Benutzer
  4. Samba-Server starten
  5. Einbinden des NAS als Netzwerklaufwerk auf einem Windows-Client

1. Einleitung

Im zweiten Teil unseres kleinen NAS-Kurses haben wir beschrieben, wie man sein eigenes NAS für Unix-Clients vorbereitet. Im dritten und vorläufig letzhten Teil wollen wir unser NAS so erweitern, dass auch mit Windows-Clients zugegriffen werden kann. Dazu bedienen wir uns des Standard CIFS-Servers für Unix: Samba.

2. Konfiguration des Samba-Servers: /etc/samba/smb.conf

Die zentrale Konfigurationsdatei für den Samba-Server heißt smb.conf und findet sich unter Linux genrell unter /etc/samba. Sie besteht aus einer globalen Sektion mit Einstellungen, die für alle Freigaben gelten und jeweils einer Sektion pro Freigabe.

  2.1. Globale Sektion: [global]

Einstellungen, die für den gesamten Server gelten, werden unter der Sektion [global] zusammengefasst. Hier wird eine Workgroup festgelegt, ein Server-String, Security-Einstellungen, auf welchen Interfaces der Server lauschen soll, wo der Samba-Server loggen soll, ob die CUPS-Printer übernommen werden sollen und vieles mehr.

Das meiste in unserer Beispiel-Datei ist Standard, abweichend brauchen wir keine Drucker zu übernehmen und wollen den Zugriff auf zwei Netzwerk-Schnittstellen begrenzen:

[global]
   workgroup = MYGROUP
   server string = Unixwerk NAS
   security = user
   load printers = no
   guest account = guest
   log file = /var/log/samba.%m
   max log size = 50
   passdb backend = tdbsam
   interfaces = 192.168.1.43/24 192.168.100.43/24 
   dns proxy = no 

  2.2. Freigaben

Für jedes Verzeichnis im NAS, das wir im Netz freigeben wollen wird eine eigene Sektion eingefügt. Sie hat die Form

[Freigabename]
   comment = Kommentar
   path = /freigegebenes/Verzeichnis
    :
    :
   public = yes/no
   writable = yes/no
   printable = yes/no
   write list = @Gruppe

Im Einzelnen:

  • Der Freigabename ist der Name unter dem das freigegebene Verzeichnis später unter Windows eingebunden wird.
  • public = yes erlaubt Gastzugriff. Setzt man den Wert auf no, gibt es dagegen keinen Gastzugriff auf die Freigabe.
  • Bei erlaubten Gastzugriff sollten writable und printable auf no gesetzt werden.
  • Mit write list = @Gruppe kann der Zugriff für Mitglieder bestimmter Unix-Gruppen (z.B. audio, video, camera) dann trotzdem erlaubt werden.

      2.3. Verbotene Zeichen

    Unter Windows sind in Dateinamen eine Reihe von Zeichen verboten, die unter Unix erlaubt sind: \ : * ? " < > |

    Der Samba Server erkennt dies und verwandelt die Dateien in das 8.3 Format von MS-DOS. Der eigentliche Name einer Datei ist dann nicht mehr wieder zu erkennen, z.B. würde etwa eine Datei, die unter Unix

      Lieblingsband:03:Lieblingstitel.mp3

    unter Windows als so etwas wie

      A51FHG~S.MP3

    auftauchen. Der Mechanismus dazu wird als Name Mangling bezeichnet. Nicht gerade leicht wiederzuerkennen! Mangling war nämlich eigentlich dafür gedacht lange Dateinamen unter DOS und Windows 3.11 Clients als Namen im 8.3-Format sichtbar zu machen. Diese Limitierung in der Dateinamenlänge gibt es allerdings bereits seit Windows95 nicht mehr, weshalb der Mangling-Mechanismus weit über's Ziel hinaus schießt.

    Abhilfe schafft ein spezielles Modul, das der Samba-Server mitliefert, nämlich vfs objects und unter den VFS-Objekten speziell das Objekt catia. Dieses Modul wurde ursprünglich für die unter Unix verbreitete CAD-Software Catia entwickelt, die die Angewohnheit hatte, Dateinamen mit Doppelpunkten zu erzeugen, die dann zu genau zu diesem Mangling-Problem führte.

    Das VFS-Objekt Catia erlaubt es nun bestimmte Unix-Zeichen zu ersetzen durch unter Windows erlaubte Sonderzeichen. Dieses Modul wird für eine Freigabe wie folgt eingebunden:

      vfs objects = catia
      catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
    

    Die zweite Zeile übersetzt die oben genannten verbotenen Zeichen ( \ : * ? " < > | ) in unter Windows erlaubte Sonderzeichen: ÿ ÷ ¤ ¿ ¨ « » ¦  . Man sollte diese Liste nur mit Bedacht ändern, weil die Übersetzung beidseitig erfolgt: Eine Unix-Datei 01:Musik-01.mp3 würde zu 01÷Musik-01.mp3 übersetzt. Ändert man die Übersetzung, so dass aus dem Doppelpunkt das Minuszeichen wird, würde die gleiche Datei zu 01-Musik-01.mp3 unter Windows, beim Zurückschreiben würde sie allerdings zu 01:Musik:01.mp3 übersetzt, was letztendlich zu einem Schreibfehler führen würde.

      2.4. Die Konfiguration im Überblick

    Die gesamte Konfiguration sieht dann etwa so aus:

    [global]
       workgroup = MYGROUP
       server string = Unixwerk NAS
       security = user
       load printers = no
       guest account = guest
       log file = /var/log/samba.%m
       max log size = 50
       passdb backend = tdbsam
       interfaces = 192.168.1.43/24 192.168.100.43/24 
       dns proxy = no 
    [audio]
       comment = Musik
       path = /export/diska/vol01/audio
       vfs objects = catia
       catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
       public = yes
       writable = no
       printable = no
       write list = @audio
    [camera]
       comment = Foto
       path = /export/diska/vol05/camera
       public = yes
       writable = no
       printable = no
       write list = @camera
    [movies]
       comment = Filme
       path = /export/diska/vol02/movies
       public = yes
       writable = no
       printable = no
       write list = @video
    

    3. Samba-Benutzer

    Alle Benutzer, die für den Zugriff auf die Samba-Freigaben zugelassen werden sollen, müssen zunächst als Unix-Benutzer angelegt werden. Dies geschieht mit dem Kommandos groupadd und useradd. Als Beispiel legen wir einen Benutzer unixwerk mit der UID 1042 an:

    root@nas# groupadd -g 1042 unixwerk
    root@nas# useradd -m -N -u 1042 -c "Unixwerk Poweruser" -g unixwerk -G camera,audio,video -s /bin/bash unixwerk
    

    Ein Benutzer guest für den (optionalen) Gast-Zugang zum NAS könnte auf dem System schon bestehen. Falls dies nicht der Fall ist, kann dieser auf ähnliche Weise angelegt werden. Eine User-Gruppe allerdings legen wir nicht an, er soll in die Gruppe nogroup aufgenommen werden:

    root@nas# useradd -m -N -u 1043 -c "Windows Gast" -g nogroup -s /bin/false guest
    

    Mit dem Befehl smbpasswd werden dann die Benutzer für Samba übernommen und ein Passwort gesetzt:

    root@nas# smbpasswd -a unixwerk
    New SMB password:
    Retype new SMB password:
    Added user unixwerk.
    

    4. Samba Server starten

    Nun muss der Samba-Server nur noch gestartet werden. Dies geschieht je nach Distribution unterschiedlich, z.B. mit

    root@nas# sh /etc/init.d/samba start
    

    5. Einbinden des NAS als Netzwerklaufwerk auf einem Windows-Client

    Unter Windows werden die Samba-Freigaben dann über

      \\Servername\Freigabename
    

    eingebunden, für die Freigaben aus der obigen Beispielkonfiguration also als

      \\192.168.1.43\audio
      \\192.168.1.43\camera
      \\192.168.1.43\movies
    

    bzw. unter der Adresse 192.168.100.43.

     

    Weitere Artikel zum Thema bei unixwerk