Using SambaRobert Eckstein, David Collier-Brown, Peter Kelly1st Edition November 1999 1-56592-449-5, Order Number: 4495 416 pages, $34.95 |
6. User, Security und Domains
Inhalt:
User und Gruppen
Zugriff auf die Shares kontrollieren
Authentifizierung, Security
Passwörter
Windows Domains
Logon Scripts
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 = daveDie Option
valid
users
zählt die User auf, die auf die Share zugreifen dürfen. In diesem Fall darf nur der Userdave
auf die Share zugreifen. In den vorigen Kapiteln berichteten wir, dass jeder User auf eine Disk-Share zugreifen könnte, wenn der Parameterguest
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 = %HDiese 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 Optionvalid 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 = 0770Was 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-Gruppeaccount
vertreten werden. Diese User müssen in der Gruppeaccount
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/accountingEs gibt zwei andere Optionen in diesem smb.conf -Beispiel, beide sahen wir im vorigen Kapitel. Diese Optionen sind
create
mode
unddirectory
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 Usersofia
kommt in der Passwort-Datenbank vor, daher unternimmt Samba die folgenden Schritte:
Samba erzeugt eine neue Disk-Share namens
[sofia]
mit dem im Abschnitt[homes]
festgelegtenpath
. Ist keine Optionpath
in[homes]
bestimmt, initialisiert ihn Samba in ihrem Home-Verzeichnis.Samba initialisiert die Optionen der neuen Share aus den Voreinstellungen in
[globals]
und irgendwelchen veränderten Optionen in[homes]
mit Ausnahme vonbrowseable
.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 Optioninvalid
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.
© 1999, O'Reilly & Associates, Inc.