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 4, smbd und nmbd.

11.5.1.1. Mit debconf konfigurieren

Das Paket erstellt eine minimale Konfiguration während der Erstinstallation, aber Sie sollten unbedingt dpkg-reconfigure samba-common ausführen, um es anzupassen:
Die erste benötigte Information ist der Name der Arbeitsgruppe, zu der der Samba-Server gehören soll (die Antwort in unserem Fall ist FALCOTNET).
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.

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

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

[...]

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

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller". 
#
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server.
   security = user 2

[...]

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.
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.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.24. 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!