Product SiteDocumentation Site

11.5. Einrichten von Windows-Freigaben mit Samba

Samba ist ein Satz von Programmen, die das SMB-Protokoll (auch als „CIFS“ bekannt) auf Linux handhaben. Dieses Protokoll wird von Windows für Netzwerk-Freigaben und Netzwerkdrucker benutzt.
Samba kann auch als Domänencontroller unter Windows 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 letztzte 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.

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

[...]

########## 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

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.
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.27. 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.

11.5.2. Samba-Client

Die Client-Merkmale in Samba ermöglichen es einem Linux-Rechner, auf Windows-Freigaben und freigegebene Rechner zuzugreifen. Die hierfür benötigten Programme befinden sich in den Paketen cifs-utils und smbclient.

11.5.2.1. Das Programm smbclient

Das Programm smbclient stellt Anfragen an SMB-Server. Es nimmt die Option -U benutzer entgegen, um sich mit dem Server unter einer bestimmten Identität zu verbinden. smbclient //server/freigabe greift interaktiv auf die Freigabe zu, in ähnlicher Weise wie der FTP-Client auf der Befehlszeile. smbclient -L server listet alle auf einem Server verfügbaren (und sichtbaren) Freigaben auf.

11.5.2.2. Windows-Freigaben einhängen

Der Befehl mount ermöglicht es (mit Hilfe von mount.cifs aus dem Paket cifs-utils), eine Windows-Freigabe in die Linux-Dateisystemhierarchie einzuhängen.

Beispiel 11.28. Eine Windows-Freigabe einhängen

mount -t cifs //arrakis/shared /shared \
      -o credentials=/etc/smb-credentials

Die Datei /etc/smb-credentials (die nicht von Benutzern lesbar sein darf) hat das folgende Format:
username = benutzer
password = passwort
Weitere Optionen können auf der Befehlszeile angegeben werden; sie sind auf der Handbuchseite mount.cifs(1) vollständig aufgelistet. Insbesondere zwei Optionen können interessant sein: uid und gid ermöglichen es, den Benutzer und die Gruppe der am Einhängepunkt verfügbaren Dateien einzustellen, um den Zugriff nicht auf den Administrator zu begrenzen.
EIn Einhängen einer Windows-Freigabe kann auch in /etc/fstab konfiguriert werden:
//server/shared /shared cifs credentials=/etc/smb-credentials
Eine SMB/CIFS-Freigabe wird mit dem Befehl umount ausgehängt.

11.5.2.3. Auf einem Netzwerkdrucker drucken

CUPS ist eine elegante Lösung, um von einem Linux-Arbeitsplatzrechner aus auf einem von einem Windows-Rechner freigegebenen Drucker zu drucken. Wenn das Paket smbclient installiert ist, ist es mit CUPS möglich, freigegebene Windows-Rechner automatisch zu installieren.
Dies sind die erforderlichen Schritte:
  • Melden Sie sich an der Beniutzerschnittstelle von CUPS an: http://localhost:631/admin
  • Klicken Sie auf "Drucker hinzufügen".
  • Wählen Sie das Gerät Drucker, nehmen Sie „Windows-Printer via SAMBA“.
  • Geben Sie den URI für den Drucker ein, er sieht folgendermaßen aus:
    smb://benutzer:passwort@server/drucker.
  • Geben Sie den Namen ein der den Drucker eindeutig bezeichnet. Dann fügen Sie die Beschreibung und den Aufstellort des Druckers hinzu. Das sind die Angaben, die den Endanwendern angezeigt werden, um den Drucker identifizieren zu können.
  • Geben Sie den Hersteller und das Modell des Druckers an oder stellen Sie direkt eine funktionierende Druckerbeschreibung (PPD, PostScript Printer Description) zur Verfügung.
Voilà, der Drucker ist einsatzbereit!