Samba - Konfiguration smb.conf
Linux
pk-applets

 

Der Samba-Server stellt für Win-Clients zur Verfügung:

Daneben übernimmt Samba weitere Ausgaben im Netzwerk, z.B. den WINS-Dienst.
Die Konfiguration dieser Dienste steht in der Datei smb.conf im Unterverzeichnis /etc/samba.
 

Vorbereitung:
Benutzer
Jeder User, der über Samba auf Speicherplatz auf dem Linux-Server zugreifen soll, muß drei Instanzen bekannt sein.
Wir betrachten als Beispiel den User willi mit dem Kennwort geheim.

1. Der User muß sich unter willi / geheim auf dem Win-Client anmelden.
    Wir benötigen also ein entsprechendes Konto auf der Windows-Maschine.

2. Den User willi muß es als Benutzer auf der Linux-Maschine geben.
    Diesen Benutzer legt man am Besten mit Yast an. Das Linux-Kennwort ist für Samba unwichtig,
    denn Samba greift nicht auf die Passwort-Datei /etc/password des Linussystems zurück.
    Sollte sich ein solcher User nie auf Linux direkt anmelden, so ist sein Home-Verzeichnis  /tmp.

3. Nun kann der Benutzer willi auch dem Samba-Dienst bekannt gemacht werden.
    Der Befehl auf der Konsole smbpasswd -a  willi  fügt den User willi  hinzu.
    Das Kennwort geheim muß eingegeben und bestätigt werden.

Dateirechte
Ebenso müssen die Dateirechte am Linux-Server zu den Rechten passen, die in der smb.conf stehen.
Beispiel:
Der Benutzer s0 darf gemäß der smb.conf im Verzeichnis /verz/v0 lesen und schreiben, der Benutzer s1 in /verz/v1 .. etc
Die User-Rechte des Linux-Systems müssen dann wie folgt sein:
Alle dürfen in /verz lesen und schreiben. (Vererbung!)
    Ein User z.B. s2 kann aber in /verz nix ausrichten, denn er wird von Samba gehindert!
    Siehe den Eintrag valid users = +lehrer in der smb.conf!
s0 ist Besitzer von v0 mit Lesen und Schreiben!
s1 ist Besitzer von v1 mit Lesen und Schreiben!
... etc
Diese Rechte können bequem entweder mit dem Konqueror oder entsprechenden Linux-Dateimanagern eingestellt werden
oder mit den Befehlen chmod oder chown auf der Konsole.

Bekommt man also beim Test von Samba am Win-Client unerwartet Zugriffsverweigerung oder Kennwort-Anforderungen, so liegt
es meist an den User-Rechten von Linux.
 
 

Samba-Befehle:
/etc/init.d/smb  start,restart oder stop
Samba starten, erneut starten (bei Ändern der smb.conf) oder stoppen.

smbclient -L<PC-Name>
zeigt die Shares/freigeg. Verzeichnisse  auf dem PC an!
Man testet insbesondere den  Samba-Server mit dem Befehl smbclient -Llinux

testparm
Testet smb.conf : Ausdruck der gültigen  Parameter und shares
 
 
 

Konfiguration in der Datei /etc/samba/smb.conf

Der erste Teil enthält allgemeine Regeln, der zweite Teil zählt die shares auf, also die freigegebenen Verzeichnisse.

1. smb.conf auf IAU
 
 workgroup = ag2.de
 encrypt passwords = Yes
 guest account = nobody
 admin users = root
 time server = yes
 interfaces = 192.168.0.0/255.255.255.0
 bind interfaces only = Yes
 hosts allow = 192.168.0.
 hosts deny = all
 wins support = no
 wins server = 192.168.0.18
 mangle case = Yes
 browseable = No

[allerlei]
 comment = allerlei Ramsch
 path = /allerlei
 writeable = Yes
 force create mode = 0777
 force directory mode = 0777
 guest ok = Yes
 browseable = No

[httpd]
 comment = Apache Webserver
 path = /srv/www/htdocs
 writeable = Yes
 force create mode = 0777
 force directory mode = 0777
 guest ok = Yes
 browseable = No

Der Samba-Dienst hat auf der IAU kaum Aufgaben. Er öffnet lediglich

Deshalb auch folgende Einschränkungen:
Die IAU erscheint nicht in der Netzwerkumgebung! ( browseable = No in [global] )
Man muß schon ganz gezielt bei "Netzlaufwerke verbinden" das share angenen ( z.B. //iau/httpd )
Es gibt nur einen Samba-User mit saftigem Kennwort!
Mit den Befehlen:
  interfaces = 192.168.0.0/255.255.255.0
  bind interfaces only = Yes
  hosts allow = 192.168.0.
  hosts deny = all
schränkt man den Zugriff ein und unterstützt die Firewall.
 

2.  smb.conf auf LINUX
 
[global]
 workgroup = ag2.de
 encrypt passwords = Yes
 guest account = nobody
 admin users = root
 time server = yes
 interfaces = eth0 eth1
 bind interfaces only = Yes
 hosts allow = 192.168.0.0/255.255.0.0
 hosts deny = all
 wins support = Yes
domain master = yes
 mangle case = Yes
 logfile = /var/log/samba-log.%m
 load printers = yes
 printing = cups

[allerlei]
  comment = allerlei Ramsch
  path = /allerlei
 ... etc...

Dieser Samba-Server ist so eingerichtet, dass er Anfragen auf zwei Seiten ( Schulnetz und Computerraum ) somit auf zwei
Netzwerkkarten Anfragen akzeptiert
Durch wins support = Yes wird dieser PC zum WINS-Server, d.h. er teilt im Netzwerk mit, welche IP sich hinter
z.B. comp34 verbirgt und ob der Rechner läuft. Dies wird durch domain master = yes unterstützt.
Bei anderen Samba-Rechnern im gleichen Netz darf dieser Wert nicht mehr gesetzt werden.

Dieser PC stellt im Computerraum für Schülerclients Laufwerke zur Verfügung:
 
Bezeichnung Beschreibung Befehlsfolge auf Linux-Konsole
/allerlei Ramsch-Verzeichnis wo jeder alles darf. md /allerlei
/readonly Gruppenrecht an Lehrer. Diese dürfen dort auch schreiben,
alle anderen nur lesen oder ausführen.
md /readonly
chgrp lehrer /readonly
chmod 0775 /readonly 
/verz  Gruppenrecht an lehrer und alle Rechte für alle md /verz
chgrp lehrer /verz
chmod 0777 /verz
/verz/v0
/verz/v1
...etc
In /verz werden nun die Verzeichnisse v0, v1, v2.. etc angelegt, die jedem PC zugeordnet werden. Die lehrer erhalten das Gruppenrecht, s0, s1, s2..etc  werden als User eingetragen. Befehlsfolge nach cd /verz! md v0
chmod 0775  v0
chgrp lehrer  v0
chown s0 v0

md v1
chmod 0775  v1
chgrp lehrer  v1
chown s1 v1
.... etc
 

/data Daten für Programme md /data
/srv/www/htdocs/kurs Um von Schülerseite direkt Seiten für den
Apache-Webserver zu laden.

Zu /data
Den Zugriffsrechten auf /data muß von Hand nachgeholfen werden.
Einerseits wollen mache Programme Lernfortschritte protokollieren, also dort schreiben.
Andererseits sind Programme und Daten zu schützen.
Deshalb ist der Schreibzugriff mit dem Dateimanager von Linux für jedes Unterverzeichnis gesondert zu regeln.

Zusätzlich wird durch
 load printers = yes
 printing = cups
die Benutzung eines Druckers ermöglicht.
Der Drucker wird mit Yast eingerichtet.
Dann benötigt eine Drucker-Warteschlange vom Typ raw. Diese wird von Yast ebenfalls für  Samba eingerichtet.
Auf unserem Server trägt sie die Bezeichnung raw
 Dazu gehört in der smb.conf das share:
[raw]
 path = /tmp
 printable = yes
raw bedeutet, dass Daten für den Drucker von Samba direkt in die Druckerschleife gestellt werden.
Auf jeden Client muß deshalb der Druckertreiber installiert sein!
Diese Ausdruck-Möglichkeit dient als Ersatz, wenn ein lokaler Drucker ausfällt.

Die Clients werden durch eine Batch-Datei mit den shares verbunden.
Diese ist auf dem Win-Rechner in Ordner \programme\autostart sowie auf dem Desktop untergebracht.

Die letzte Zeile sorgt für korrekte Systemzeit auf den Clients.
 
if exist r: goto next1
net use r: \\linux\allerlei 
:next1
if exist s: goto next2
net use s: \\linux\readonly
:next2
if exist x: goto next3
net use x: \\linux\data
:next3

if exist t: net use t: /DELETE /yes
net use t: \\linux\v31 
REM **** Anpassen v1, v2 ... bei SchülerClients **************
REM ****          verz       bei LehrerPC's ****************** 

net time \\linux /set /yes

Ich gesteh's an dieser Stelle:
Der Computerraum ist ein simples Peer-to-Peer Netzwerk!
 
 

3.  smb.conf auf LINUX3 (Bibliothek!)
 
 
 workgroup = ag2.de
 encrypt passwords = Yes
 logon script = connect.bat
 domain logons = Yes
 logon path = \\192.168.3.20\%U\profile
 interfaces = 127.0.0.1/255.255.255.255 192.168.3.0/255.255.255.0
 bind interfaces only = Yes
 hosts allow = 127.0.0. 192.168.3.
 hosts deny = all
 guest account = nobody
 admin users = root
 mangle case = Yes
 logfile = /var/log/samba-log.%m
 lock directory = /var/lock/samba
 browseable = Yes
 domain master = Yes
 printing = bsd

[brother]
    path = /tmp
    printable = yes
    browseable = yes

[allerlei]
     comment = allerlei Ramsch
     path = /allerlei
     writeable = Yes
     force create mode = 0777
      force directory mode = 0777
     guest ok = Yes
 browseable = Yes
[netlogon]
     path = /netlogon
     writeable = Yes
     browseable = No
[homes]
    comment = home directories
    writeable = Yes
    create mask = 0700
    browseable = No
 

Samba auf dem Server LINUX3 horcht nur auf das Netz in der Bibliothek.
Dort aber gaukelts es den Win95 - Clients ein Domänen-Netzwerk vor!
Nur durch
domain logons = Yes
wird Samba zum PDC für Win95-Clients d.H.:
Die User, die Samba unbekannt sind, werden in der Domäne nicht akzeptiert.
Damit entfällt der Zugriff auf die shares und die Benutzung von  Drucker und Internet.
Ein Maschinen-Account ist bei Win95-Clients noch nicht nötig.

Bei richtiger Anmeldung wird das Script connect.bat im Verzeichnis  /netlogon ausgeführt.
Es ist für alle User gleich:
net use r: \\linux3\allerlei
net use s: \\linux3\homes
net time \\linux3 /set /yes

echo have a lot of fun!!!!

Die 2. Zeile verbindet mit dem individuellen Home-Verzeichnis auf dem Server LINUX3.
Beachte: Diese Batch-Dateien sind Windows-Dateien! (Unterschiede im Zeilenende!)
Sie müssen mit einem Windows-Editor erstellt werden.
 

Daten der Clients
Diese können in die Datei /etc/hosts eingetragen werden, nötig ist das aber meist nicht.
Wichtiger wäre, in dieser Datei die IP's der Linux-Server einzutragen..
/etc/hosts von linux
192.168.0.20
192.168.0.16

192.168.2.110
192.168.2.111
192.168.2.112
192.168.2.113
... etc

iau.ag2.de
linux3.ag2.de

comp0.ag2.de
comp1.ag2.de
comp2.ag2.de
comp3.ag2.de
...etc

iau
linux3

comp0 
comp1 
comp2 
comp3 
... etc

Anlegen der Benutzer
Linux-User s0, s1, s2 etc ... ohne Kennwort  s0 steht für den anonymen Lehrer ohne zusätzliche Rechte,  s1, s2, s3 etc ... stehen für die Benutzer der Schüler PC's.
Diese Benutzer werden von root auf dem Linux-Server mit Yast angelegt.
Das folgende Script erzeugt diese User zusammen mit dem Verzeichnis in /verz
if test $# -eq 1
then
mkdir /verz/v$1
useradd -d /tmp -p pupil s$1
chmod 0775  /verz/v$1
chgrp lehrer  /verz/v$1
chown s$1 /verz/v$1 
smbpasswd -a s$1
exit 0
fi
echo "Anweisung add_user.bat + Nummer!!"

smbpasswd fordert zweimal die Enter-Taste zur Kennworteingabe.
Für die Lehrer, die mit dem Windows-Explorer auch umgehen können, werden Benutzer mit Kennwort angelegt.
Diese werden in der Gruppe der Lehrer zusammengefasst.

Arbeit bei den Windows-Clients
Bei den Win-Clients ist die Arbeitsgruppe ag2.de einzugeben sowie der passende Computername.
Ansonsten ist beim Peer-to-Peer Netzwerk außer der IP nichts einzustellen.
Die Batch-Datei im Ordner \programme\autostart sorgt dafür, dass die Samba-shares den richtigen
Laufwerksbuchstaben zugeordnet werden.
 

Bei den WIN95-Clients der Bibliothek wird bei Konfiguration des Netzwerks
- im Folder : Konfiguration
- bei Primärer Netzwerkanmeldung   Client für MS-Netzwerke einstellen
- Client für MS-Netzwerke im Textfeld anklicken, dann Eigenschaften
- Hier  An  Windows NT-Domäne anmelden  anklicken
- schnelle Anmeldung  anklicken
- Bei Windows NT-Domäne ag2.de eintragen.