Linux NAS Server
Teil III: Einrichung eines Samba-Servers für den Windows-Zugriff
Inhalt
- Einleitung
- Konfiguration des Samba-Servers: /etc/samba/smb.conf
- Samba-Benutzer
- Samba-Server starten
- 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
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:
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
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
- Teil I: Installation und grundlegender Aufbau
- Teil II: Dynamischer Zugriff auf NAS mit dem Automounter