Product SiteDocumentation Site

11.5. Einrichten von Windows-Freigaben mit Samba

Samba ist ein Satz von Programmen, die das SMB-Protokoll (jetzt „CIFS“ genannt) auf Linux handhaben. Dieses Protokoll wird von Windows für Netzwerk-Freigaben und Netzwerkdrucker benutzt.
Samba kann auch als NT-Domain-Controller agieren. Es ist ein hervorragendes Instrument, um die nahtlose Integration von Linux-Servern und Arbeitsplatzrechnern, die noch unter Windows laufen, zu gewährleisten.

11.5.1. Samba-Server

Das Paket samba enthält die beiden Hauptserver von Samba 3, smbd und nmbd.

11.5.1.1. Mit debconf konfigurieren

Das Paket richtet aufgrund der Antworten auf einige Debconf-Fragen, die während der ersten Installierung gestellt werden, eine minimale Konfiguration ein; diese Konfigurierungsschritte können später mit dpkg-reconfigure samba-common samba erneut abgespielt werden.
Das erste erforderliche Informationsteilstück ist der Name der Arbeitsgruppe, zu der der Samba-Server gehören wird (in unserem Fall lautet die Anwort FALCOTNET). Eine weitere Frage erkundigt sich danach, ob Passwörter verschlüsselt sein sollen. Die Antwort lautet, dass sie es sein sollten, da dies für die jüngsten Windows-Clients vorgeschrieben ist; außerdem erhöht dies die Sicherheit. Anderenfalls wäre es auch erforderlich, die Samba-Passwörter getrennt von den Unix-Passwörtern zu verwalten.
Das Paket schlägt auch vor, den WINS-Server mithilfe der Information, die vom DHCP-Daemon bereitgestellt wird, zu identifizieren. Die Falcot Corp. Administratoren haben diese Option abgelehnt, da sie beabsichtigen, den Samba-Server selbst als WINS-Server zu verwenden.
Die nächste Frage bezieht sich darauf, ob Server mit inetd oder als selbstständige Daemons gestartet werden sollen. Die Verwendung von inetd ist nur sinnvoll, wenn Samba selten benutzt wird; die Falcot Administratoren haben daher selbstständige Daemons ausgewählt.
Schließlich schlägt das Programm vor, eine Datei namens /var/lib/samba/passdb.tdb zum Abspeichern verschlüsselter Passwörter zu erstellen; dieser Option wurde zugestimmt, da diese Methode wesentlich effizienter ist als die übliche Textdatei /etc/samba/smbpasswd.

11.5.1.2. Von Hand konfigurieren

11.5.1.2.1. Änderungen in smb.conf
Aufgrund der Erfordernisse bei Falcot müssen weitere Optionen in der Konfigurationsdatei /etc/samba/smb.conf angepasst werden. Die folgenden Auszüge fassen die Änderungen zusammen, die im Abschnitt [global] vorgenommen wurden.
[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = FALCOTNET

# server string is the equivalent of the NT Description field
   server string = %h server (Samba %v)

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
   wins support = yes 1

[...]

####### Authentication #######

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html 
# in the samba-doc package for details.
   security = user 2

# You may wish to use password encryption.  See the section on
# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
   encrypt passwords = true

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
   passdb backend = tdbsam guest

[...]

########## Printing ##########

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
   load printers = yes 3

# lpr(ng) printing. You may wish to override the location of the
# printcap file
;   printing = bsd
;   printcap name = /etc/printcap

# CUPS printing.  See also the cupsaddsmb(8) manpage in the
# cups-client package.
   printing = cups 4
   printcap name = cups
   
[...]

######## File sharing ########

# Name mangling options
;   preserve case = yes
;   short preserve case = yes

unix charset=ISO8859-1 5

1

Zeigt an, dass Samba für das lokale Netzwerk als ein Netbios-Namensserver (WINS) dienen soll.

2

Dies ist die Standardeinstellung dieses Parameters; da er jedoch für die Samba-Konfiguration wesentlich ist, wird empfohlen, ihn ausdrücklich einzutragen. Jeder Benutzer muss sich vor dem Zugriff auf eine Freigabe authentifizieren.

3

Weist Samba an, alle lokalen Drucker, die in der CUPS-Konfiguration enthalten sind, freizugeben. Es ist dann immer noch möglich, den Zugriff auf diese Drucker durch das Hinzufügen entsprechender Abschnitte einzuschränken.

4

Gibt das verwendete Drucksystem vor; in diesem Fall CUPS.

5

Legt den Zeichensatz und die Zeichenkodierung, die für Dateinamen unter Linux verwendet werden, fest. Die Standardeinstellung ist UTF8 (Unicode).
11.5.1.2.2. Benutzer hinzufügen
Jeder Samba-Benutzer benötigt ein Konto auf dem Server; als erstes müssen die Unix-Konten erstellt, dann die Benutzer in Sambas Datenbank eingetragen werden. Der Unix-Schritt verläuft wie üblich (zum Beispiel unter Verwendung von adduser).
Das Hinzufügen eines bestehenden Benutzers zur Samba-Datenbank erfolgt durch den Befehl smbpasswd -a benutzer; dieser Befehl fragt interaktiv nach dem Passwort.
Ein Benutzer kann mit dem Befehl smbpasswd -x benutzer gelöscht werden. Auch ein Samba-Konto kann zeitweilig deaktiviert werden (mit smbpasswd -d benutzer) und später wieder reaktiviert (mit smbpasswd -e benutzer).
11.5.1.2.3. Umstellen auf Domain-Controller
Dieser Abschnitt beschreibt, wie die Falcot Administratoren einen Schritt weiter gingen, indem sie den Samba-Server in einen Domain-Controller umwandelten, der servergespeicherte Profile bereitstellt (die es Benutzern ermöglichen, ihre Arbeitsumgebung unabhängig von dem Rechner, über den sie sich verbinden, zu erreichen).
Zunächst fügten sie einige zusätzliche Anweisungen zum Abschnitt [global] der Konfigurationsdatei hinzu:
domain logons = yes              1
preferred master = yes           
logon path = \\%L\profiles\%U    2
logon script = scripts/logon.bat 3

1

Aktiviert das Leistungsmerkmal Domain-Controller.

2

Bezeichnet den Ort der Benutzerverzeichnisse. Diese sind auf einer speziellen Freigabe abgespeichert, wodurch das Aktivieren spezifischer Optionen möglich wird (insbesondere profile acls, eine Voraussetzung für die Kompatibilität mit Windows 2000, XP und Vista).

3

Bezeichnet das (nicht-interaktive) Batch-Skript, das bei jedem Sitzungsstart auf dem Windows-Client ausgeführt wird. In diesem Fall ist es /var/lib/samba/netlogon/scripts/logon.bat. Das Skript muss im DOS-Format stehen, bei dem die Zeilen durch ein Wagenrücklauf- und ein Zeilenvorschubzeichen getrennt sind; falls die Datei unter Linux erstellt wurde, kann sie mit dem Befehl unix2dos konvertiert werden.
Die in diesen Skripten am meisten benutzten Anweisungen ermöglichen die automatische Erstellung von Netzlaufwerken und das Synchronisieren der Systemzeit.
Beispiel 11.28. Die Datei logon.bat
net time \\ARRAKIS /set /yes
net use H: /home
net use U: \\ARRAKIS\utils

Es wurden außerdem zwei zusätzliche Freigaben und die dazugehörigen Verzeichnisse erstellt:
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no

[profiles]
comment = Profile Share
path = /var/lib/samba/profiles
read only = No
profile acls = Yes
Dann müssen noch die Benutzerverzeichnisse aller Benutzer erstellt werden (als /var/lib/samba/profiles/benutzer), und jedes von ihnen muss dem passenden Benutzer gehören.