Using Samba

Using Samba

Robert Eckstein, David Collier-Brown, Peter Kelly
1st Edition November 1999
1-56592-449-5, Order Number: 4495
416 pages, $34.95

Buy the hardcopy

Inhaltsverzeichnis


Previous: 5.5 Locks und Oplocks Kapitel 6 Next: 6.2 Zugriff auf die Shares kontrollieren
 

6. User, Security und Domains

Dieses Kapitel erklärt, wie User mit dem Sambaserver konfiguriert werden. Dieses Thema mag zuerst einfach scheinen, aber du wirst bald entdecken, dass einige zweitrangige Probleme auftauchen können. Eine Angelegenheit, mit der Samba-Administratoren Schwierigkeiten haben, ist die User-Authentifizierung - Passwort- und Sicherheitsprobleme sind bei weitem die gängigsten Supportfragen in den Samba-Maillisten. Lernen, warum verschiedene Authentifizierungs-Mechanismen auf sicheren Architekturen (und nicht auf anderen) arbeiten, kann dir in Zukunft eine gewaltige Menge Zeit beim Testen und Debuggen von Samba sparen.

6.1 User und Gruppen

Bevor wir beginnen, müssen wir dich vorneweg warnen, dass wenn du dich mit Windows 98 oder NT 4.0 Workstation SP3 bei Samba anbindest, du deinen Server für verschlüsselte Passwörter konfigurieren musst, bevor du eine Verbindung herstellen kannst; sonst werden die Clients eine Verbindung mit dem Sambaserver ablehnen. Das kommt daher, dass jeder dieser Windows-Clients verschlüsselte Passwörter sendet und Samba so konfiguriert werden muss, dass es sie empfangen und entschlüsseln kann. Wir zeigen dir später in dem Kapitel, wie Samba für diese Aufgabe eingerichtet wird, und nehmen an, du hast dieses Problem in Kapitel 2, Samba auf einem Unix-System installieren noch nicht angepackt.

Beginnen wir mit einem einzelnen User. Der leichteste Weg, einen Client-User einzurichten, ist die Erzeugung eines Unix-Accounts (und Home-Verzeichnis) für diese Person auf dem Server und die Benachrichtigung an Samba von der Existenz des Users. Du kannst das Letztere durch das Schaffen einer Disk-Share erreichen, die auf das Home-Verzeichnis des Users in der Samba Konfigurationsdatei zeigt, und den Zugriff mit der Option valid users auf diesen User beschränken. Ein Beispiel:

[dave]
		path = /home/dave
		comment = Dave's home directory
		writeable = yes
		valid users = dave

Die Option valid users zählt die User auf, die auf die Share zugreifen dürfen. In diesem Fall darf nur der User dave auf die Share zugreifen. In den vorigen Kapiteln berichteten wir, dass jeder User auf eine Disk-Share zugreifen könnte, wenn der Parameter guest ok gesetzt ist. Weil wir den Gast-Zugriff nicht erlauben wollen, fehlt diese Option hier. Wir könnten beiden, authentifizierte User und Gast-User, Zugriff auf eine besondere Share gewähren, wenn wir es wollten. Der Unterschied zwischen den beiden betrifft typischerweise Zugriffsrechte für jede der Dateien.

Denk daran, dass du das Home-Verzeichnis des Users durch Einsetzen der Variable %H abkürzen kannst. Zusätzlich kannst du auch die Variable für den Unix-Usernamen %u und/oder die Variable für den Client-Usernamen %U in deinen Optionen verwenden. Ein Beispiel:

[dave]
	comment = %U home directory
	writeable = yes
	valid users = dave
	path = %H

Diese beiden Beispiele funktionieren so lange, als der Unix-User, den Samba zur Darstellung des Clients verwendet, Schreib/Lese-Zugriff auf das Verzeichnis hat, das die Option path festlegt. Mit anderen Worten: ein Client muss zuerst Sambas Sicherheits-Mechanismen passieren (z.B. verschlüsselte Passwörter, die Option valid users usw.) sowie die normalen Unix Datei- und Verzeichnisrechte aufseiten seines Unix-Users, before bevor er sich Schreib/Lese-Zugriff auf eine Share verschaffen kann.

Beim Zugriff eines einzelnen Users auf ein Home-Verzeichnis erledigen das die Zugriffsrechte, wenn das Betriebssystem den User-Account erzeugt. Wenn du nun ein freigegebenes Verzeichnis für einen Gruppen-Zugriff erzeugst, musst du ein paar Schritte mehr durchführen. Probieren wir eine Gruppen-Share für die Buchhaltungs-Abteilung in der smb.conf -Datei aus:

[accounting]
	comment = Accounting Department Directory
	writeable = yes
	valid users = @account
	path = /home/samba/accounting
	create mode = 0660
	directory mode = 0770

Was du als Erstes bemerken wirst, das wir anders machten, ist die Festlegung von @account als den gültigen User anstatt eines oder mehrerer Usernamen. Das steht kurzerhand für die Festlegung, dass die gültigen User von der Unix-Gruppe account vertreten werden. Diese User müssen in der Gruppe account in der System-Gruppendatei (/etc/group oder ähnliches) eingetragen werden, um als Teil der Gruppe anerkannt zu werden. Sind sie es einmal, dann wird Samba diese User als gültige User für die Share anerkennen.

Außerdem musst du ein Freigabe-Verzeichnis erzeugen, auf das die Mitglieder der Gruppe zugreifen können und auf das die Option path zeigt. Hier sind die Unix-Befehle zum Erzeugen des Freigabe-Verzeichnisses für die Buchhaltungs-Abteilung (in der Annahme, dass /home/samba bereits existiert):

# mkdir /home/samba/accounting
# chgrp account /home/samba/accounting
# chmod 770 /home/samba/accounting

Es gibt zwei andere Optionen in diesem smb.conf -Beispiel, beide sahen wir im vorigen Kapitel. Diese Optionen sind create mode und directory mode. Sie legen die maximalen Datei- und Verzeichnisrechte fest, die eine neue Datei oder ein neues Verzeichnis besitzen kann. In diesem Fall haben wir allen allgemeinen Zugriff auf den Inhalt dieser Share verboten. (Das wird durch den früher gezeigten Befehl chmod verstärkt.).

6.1.1 Die Share [homes]

Kehren wir für einen Moment zu den User-Shares zurück. Wenn wir für einige User Share-Home-Verzeichnisse einzurichten haben, wollen wir vielleicht die Spezial-Share [homes] verwenden, die wir in Kapitel 5, Browsing und fortgeschrittene Disk Shares vorstellten. Alles, was wir bei einer Share [homes] sagen müssen, ist:

[homes]

	browsable = no
	writable = yes

Die Share [homes] ist ein besonderer Abschnitt der Samba Konfigurationsdatei. Wenn ein User versucht, sich mit einer normalen Share zu verbinden, die nicht in der smb.conf -Datei aufscheint (wie wenn sie mit einer UNC im Windows Explorer bezeichnet wäre), sucht Samba nach einer Share [homes]. Gibt es eine, so wird der eingehende Sharename als Username angenommen und als solcher in der Passwort-Datenbank (/etc/passwd oder ähnlich) auf dem Sambaserver gesucht. Wenn er vorkommt, nimmt Samba an, dass der Client ein Unix-User ist, der versucht sich mit seinem oder ihrem Home-Verzeichnis zu verbinden.

Zur Illustration setzen wir voraus, dass sofia eine Verbindung zu einer Share namens [sofia] auf dem Sambaserver versucht. Es existiert keine Share mit diesem Namen in der Konfigurationsdatei, aber eine Share [homes] gibt es, und User sofia kommt in der Passwort-Datenbank vor, daher unternimmt Samba die folgenden Schritte:

  1. Samba erzeugt eine neue Disk-Share namens [sofia] mit dem im Abschnitt [homes] festgelegten path. Ist keine Option path in [homes] bestimmt, initialisiert ihn Samba in ihrem Home-Verzeichnis.

  2. Samba initialisiert die Optionen der neuen Share aus den Voreinstellungen in [globals] und irgendwelchen veränderten Optionen in [homes] mit Ausnahme von browseable.

  3. Samba bindet den Client sofia's an diese Share.

Die Share [homes] ist eine schnelle, schmerzlose Möglichkeit, Shares für deine User-Gemeinschaft zu erzeugen, ohne dass du die Information aus der Passwort-Datenbankdatei in der smb.conf -Datei duplizieren musst. Es hat halt einige Eigenheiten, auf die wir hinweisen müssen:

  • Die Sektion [homes] kann jeden Account auf der Maschine vertreten, was nicht immer wünschenswert ist. Sie kann z.B. potentiell eine Share für root, bin, sys, uucp und dergleichen erzeugen. (Du kannst eine globale Option invalid users zum Schutz dagegen festlegen.)

  • Die Bedeutung der Konfigurations-Option browseable unterscheidet sich von anderen Shares; sie weist nur darauf hin, dass eine [homes]-Sektion in der lokalen Browse-Liste nicht auftauchen wird, nicht etwa, dass die Share [alice] nicht auftauchen wird. Wenn die Sektion [alice] erzeugt wird (nach der anfänglichen Verbindung), wird sie für diese Share den Wert der Option browsable aus der Sektion [globals] verwenden, nicht den Wert von [homes].

Wie wir erwähnten, muss in [homes] keine path-Erklärung stehen, wenn die User in der /etc/passwd -Datei des Servers Unix-Home-Verzeichnisse besitzen. Du solltest dafür sorgen, dass ein gültiges Home-Verzeichnis existiert, weil Samba nicht automatisch ein Home-Verzeichnis für einen User einrichtet und einen Verbindungswunsch zum Verzeichnisbaum ablehnen wird, wenn es das Verzeichnis des Users nicht gibt oder es nicht ansprechbar ist.


Previous: 5.5 Locks und Oplocks Next: 6.2 Zugriff auf die Shares kontrollieren
5.5 Locks und Oplocks Buch-Index (engl.) 6.2 Zugriff auf die Shares kontrollieren

O'Reilly Home | O'Reilly Bookstores | How to Order | O'Reilly Contacts
International | About O'Reilly | Affiliated Companies

© 1999, O'Reilly & Associates, Inc.