Inhaltsverzeichnis
- Beispiel Samba Konfiguration im User Modus
- Die smb.conf Datei
- Die [gobal]-Sektion
- [printers] und [homes]
- Der private Drucker: [hansprn]
- Ein Verzeichnis nur für einen User: [hansdir]
- Ein Verzeichnis für mehrere User: [hansotto]
- Ein öffentliches Verzeichnis, beschreibbar nur von einer Unix-Gruppe: [public1]
- Ein beschreibbares Verzeichnis für alle: [public2]
- Für jeden Windows-Rechner ein eigenes Verzeichnis: [pchome]
Beispiel Samba Konfiguration im User Modus
Die folgende Konfiguration ist ein Beispiel für einen Samba-Server im User Modus. Wir werden ein paar Features einbauen, die die Mechanismen klären, die hier eine Rolle spielen. Die Konfiguration wird mit verschlüsselten Passwörtern arbeiten, also für Windows-Rechner ab Windows 98 bis zu aktuellen Windows Version geeignet sein.
Die smb.conf Datei
[global] security = user workgroup = ARBEITSGRUPPE printing = bsd guest account = nobody encrypted passwords = Yes wins support = Yes [homes] comment = Home Directories browseable = no read only = no create mode = 0750 [printers] comment = All Printers browseable = no printable = yes public = no writable = no create mode = 0700 [hansprn] comment = Der Drucker nur fuer Hans valid users = hans path = /home/hans printer = lp public = no writable = no printable = yes [hansdir] comment = Hans Verzeichnis path = /usr/Daten/hans valid users = hans public = no writable = yes printable = no [hansotto] comment = Verzeichnis von Otto und Hans path = /usr/Daten/OH valid users = otto hans public = no writable = yes printable = no create mask = 0765 [public1] comment = Public Stuff path = /usr/Daten/p public = yes writable = no printable = no write list = @sambauser [public2] path = /usr/Daten/p2 public = yes only guest = yes guest account = hans writable = yes printable = no [pchome] comment = PC Directories path = /usr/Daten/pc/%m public = no writeable = yes
Die [gobal]-Sektion
Diese Sektion enthält hier eigentlich nur eine Neuerung, die Angabe
security = user
Damit schalten wir die Sicherheit auf User-Level und zwingen somit jeden Windows-Benutzer, sich zuerst mit Usernamen und Passwort „anzumelden“. Wir hätten diese Angabe auch ganz weglassen dürfen, denn ab Samba 2.0 ist der User-Level die vor eingestellte Sicherheitsstufe. Anstatt User kann auch die Security Mode = Domain eingestellt werden. Somit wird der Samba Mitglied in einer Windows Domäne.
wins support = yes
[printers] und [homes]
Diese beiden Sektionen haben keinerlei neue Einstellungen erfahren, sie arbeiten unter der userbasierten Sicherheitsstufe genauso wie in der freigabebasierten.
Der private Drucker: [hansprn]
Der Abschnitt [hansprn] enthält die Angaben für einen Drucker, den nur hans benutzen darf. Diese Einstellung wird dadurch möglich, dass die Anweisungen.
valid users = hans public = No
eingefügt werden. Die Anweisung public = No heißt einfach, dass dieser share nicht öffentlich ist, wir hätten genauso schreiben können guest account = no. „public“ und „guest account“ sind Synonyme.
Die wichtige Einstellung wird mit valid users = hans vorgenommen. Durch diese Einstellung bekommt nur der User hans das Recht, den share zu benutzen, auch wenn alle anderen User ihn angezeigt bekommen.
Ein Verzeichnis nur für einen User: [hansdir]
Wie schon beim Drucker hansprn, so können wir mit valid users auch einem Verzeichnis klarmachen, dass nur der User darauf zugriff hat, der unter valid users genannt ist. Jeder andere User bekommt das Verzeichnis zwar zu sehen, sobald er es aber öffnen will, wird er nach einem Passwort gefragt:
Selbst wenn er das Passwort von hans wissen würde, hat er keinerlei Zugriff, denn sein Username ist ja nun einmal nicht hans…
Zu beachten ist hier wieder die Tatsache, dass der User hans auch unter Linux die gewünschten Rechte auf das entsprechende Verzeichnis haben muß.
Ein Verzeichnis für mehrere User: [hansotto]
Die Anweisung valid users kann auch dazu benutzt werden, einer bestimmten Menge von Usern Zugriff auf ein Verzeichnis zu geben. In diesem Abschnitt hatten wir geschrieben:
valid users = otto hans
Das heißt, sowohl otto, als auch hans dürfen auf dieses Verzeichnis zugreifen. Es ist auch hier natürlich notwendig, dass unter Linux entsprechende Rechte für die beiden User existieren.
Ein öffentliches Verzeichnis, beschreibbar nur von einer Unix-Gruppe: [public1]
Im nächsten Abschnitt definieren wir eine ganz spezielle Technik. Der share [public1] ist für alle zugänglich, aber nur ReadOnly. Alle Mitglieder der Gruppe sambauser haben jedoch Schreibrechte auf diesen share. Das wird durch die folgende Anweisung erreicht:
write list = @sambauser
Durch den vorgestellten Klammeraffen erkennt Samba den Begriff sambauser als Unix-Gruppennamen. Mitglieder dieser Gruppe sind also schreibberechtigt, obwohl der share als ReadOnly freigegeben wurde. Das muß natürlich wiederum auf der Linux-Seite genauso freigegeben werden, etwa:
drwxrwxr-x 2 root sambauser 1024 May 30 13:09 /usr/Daten/p
Eine ganz raffinierte Möglichkeit steht uns so zur Verfügung, wenn wir auf der Unix-Seite dem Verzeichnis das Recht 770 verpassen, also dem Rest der Welt keine Rechte geben:
drwxrwx--- 2 root sambauser 1024 May 30 13:09 /usr/Daten/p
Wenn ein Mitglied der Gruppe sambauser jetzt auf das Verzeichnis zugreift, bekommt er vollen Zugriff, inklusive Schreibrecht: wi
Versucht jedoch ein User, der nicht Mitglied der Gruppe sambauser ist, auf den share zuzugreifen, so bekommt er eine Fehlermeldung:
Bild fehlt noch
Samba konnte ja nicht zugreifen, denn unter der UserID von (in unserem Beispiel) efka, der nicht Mitglied der Gruppe sambauser ist, ist kein Zugriff möglich (—).
Ein beschreibbares Verzeichnis für alle: [public2]
Das nächste Beispiel zeigt ein Verzeichnis, das von allen beschreibbar ist. Allerdings sind hier zwei neue Eigenschaften, die sich genau darum drehen:
only guest = yes guest account = hans writable = yes
Wir legen mit der ersten Anweisung fest, dass dieses Verzeichnis nur für Gäste zugreifbar ist, legen aber dann in der zweiten Zeile fest, dass der Gastaccount der User hans ist. Das heißt, dass hier jeder User schreiben kann, er aber immer nur unter der UserID von hans schreibt. Das Verzeichnis muß also Linux-seitig nur das Schreibrecht für hans besitzen.
Für jeden Windows-Rechner ein eigenes Verzeichnis: [pchome]
Im Abschnitt [pchome] nutzen wir die Variablensubstitution von Samba, um jedem Windows-Rechner ein eigenes Verzeichnis zuzuweisen, unabhängig vom jeweiligen Benutzer. Die Anweisung
path = /usr/Daten/pc/%m
legt den Pfad für das freizugebende Verzeichnis fest. Die Konstruktion %m wird durch den NetBIOS-Namen des Windows-Rechners ersetzt, der die Anfrage stellt. Heißt also ein Windows-Rechner WS1, so wird das Verzeichnis /usr/Daten/pc/WS1 freigegeben, heißt ein anderer Windows-Rechner beispielsweise aber GOLEM, so sucht Samba hier nach /usr/Daten/pc/GOLEM.
Hätten wir statt %m z.B. ein %u benutzt, so hätten wir auch ein Verzeichnis für jeden User anbieten können…
Danke. Gut erklärt
Danke für dein Lob!