SAMBA

Debian Swirl

http://www.black-board.net
Es ist nicht gestattet dieses Tutorial losgelöst von dem Namen BlackBoard und der URL zu verbreiten.


Das Tutorial befindet sich noch in der Entwicklung. Wenn du mitwirken möchtest, melde dich hier.
Dies ist ein Aufruf - wenn du Ahnung hast, mach mit!



1. Was ist SAMBA?


Samba ist ein Server, der Dateifreigaben und Druckdienste für Windows-Clients zur Verfügung stellt. Das heißt, wir können einen Linuxrechner in einem Windows-Netzwerk nutzbar machen, wir können auf den Linuxrechner wie auf alle anderen Windowsrechner im Netzwerk zugreifen, können die an ihn angeschlossenen Drucker als Netzwerkdrucker benutzen, Dateien ablegen und verwalten, kurz er kann als Server in einem Windowsnetzwerk dienen.

Wer mehr zu Samba wissen will, der erfährt das auf der offiziellen Projektpage http://www.samba.org.


2. Installation


Zuerst müssen die benötigten Pakete installiert werden, das machen wir mit
apt-get install samba

Dies installiert dann die Pakete samba und samba-common, und startet die Dienste smbd (der SMB-Server) und nmbd (der Nameserverdienst). Gestartet und gestoppt werden die Dienste mit /etc/init.d/samba start, stop oder restart.

Zusätzlich kann man mit /etc/init.d/samba reload oder force-reload Samba dazu bringen, geänderte Konfigurationsdateien ohne Neustart der Dienste neu zu laden, wobei reload nur smbd neustartet. force-reload startet beide Dienste neu, smbd sowie auch nmbd.


3. Konfiguration


Die Konfiguration von Samba wird über die Datei smb.conf die im Ordner /etc/samba zu finden ist, vorgenommen. Die Konfigurationsdatei gliedert sich in die Abschnitte:

  • [global] globale Einstellungen, die für alle Resourcen gelten
  • [homes] die Einstellungen die für die Home-Verzeichisse der Benutzer gelten
  • [printers] hier werden den Benutzern die Drucker bereitgestellt, die in /etc/printcap definiert werden

Hier ist mal eine laufende Minimal-Beispielkonfiguration:


smb.conf

[global]
# setzt den Namen der Arbeitsgruppe

workgroup = Linux

# weist Samba an Version und Name Preis zu geben

server string = %h server (Samba %v)

# niemals als root arbeiten. Darum verbieten wir das hier

invalid users = root

# sagt wo die Log-files hin sollen

log file = /var/log/samba/log.%m

# setzt die maximale Grösse der Logfiles in kb

max log size = 1000

# damit wird nicht mehr von Syslog mitgelogt

syslog = 0

# setzt die Benutzer-Authentifizierung, das heisst Passwort und Benutzername nötig

security = user

# verschlüsselte Passwörter werden aktiviert

encrypt passwords = true

# optimiert den Zugriff, auch sehr kleine Pakete werden direkt gesendet

socket options = TCP_NODELAY

# weist Samba an, als Masterbrowser zu agieren, mehr dazu:
# http://www.linux-praxis.de/linux3/samba6.html

local master = yes

# gibt die Wichtigkeit des Servers zur Anzeige der Windows-Netzwerkumgebung an.
# Hat in dieser Konfiguration keine Bedeutung, da es der einzige Server sein dürfte

os level = 20


# Das folgende gibt die Home-Verzeichnisse frei.
# comment setzt den Namen der Freigabe, diese kann man frei wählen
# browseable yes erlaubt das Anzeigen der Freigabe, no verbietet es
# writeable yes erlaubt das Schreiben in die Freigabe, no verbietet es
# create mask setzt die Rechte mit denen Dateien geschrieben werden
# directory mask setzt die Rechte mit denen Ordner erstellt werden

[homes]
comment = Home Directories
browseable = no
writable = no
create mask = 0700
directory mask = 0700

# Dasselbe mit einem CD-ROM

[cdrom]
comment = Samba server's CD-ROM
writable = no
locking = no
path = /cdrom
public = yes

# Hier geben wir einen Ordner frei, der public heissen soll,
# path setzt den Pfad zum Ordner
# create mask 0774 setzt volle Rechte für Besitzer und Gruppe und Leserechte
# für alle anderen
# directory mask 0774 macht dasselbe für die Ordner
# read only = no ist genau dasselbe wie writeable = yes, der Ordner ist also
# schreibbar, weist Samba an den Ordner und Inhalt zu zeigen

[public]
comment = Kuckst Du hier
path = /local/public
create mask = 0774
directory mask = 0774
read only = no
browseable = yes

# Die Freigabe der Drucker, das System ist dasselbe

[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700

Optionen und Möglichkeiten gibt es noch viele, zu finden in den Dokumentationen. Nach einem reload oder restart von Samba sollten nun eigentlich die gewünschten Freigaben bereit stehen.


4. Testen


Einen ersten Test können wir nun mal mit dem dazugehörenden SMB-Client machen:

smbclient -L <IP des Servers>

sollte folgende Ausgabe zu Tage fördern:

anonymous:/# smbclient -L 192.168.1.1
added interface ip=192.168.1.1 bcast=192.168.1.255 nmask=255.255.255.0
Password:


die Passwortabfrage kann man mit der Eingabe-Taste übergehen.

Anonymous login successful
Domain=[LINUX] OS=[Unix] Server=[Samba 2.2.3a-12.3 for Debian]



Sharename Type Comment
--------- ---- -------
cdrom Disk Samba server's CD-ROM
public Disk Kuckst Du hier
IPC$ IPC IPC Service (anonymus server (Samba 2.2.3a-12.3 for Debian))
ADMIN$ Disk IPC Service (anonymus server (Samba 2.2.3a-12.3 for Debian))
lp Printer Generic dot-matrix printer entry

Server Comment
--------- -------
ANONYMUS Samba 2.2.3a-12.3 for Debian

Workgroup Master
--------- -------
LINUX ANONYMUS

5. Benutzereinstellungen


Da wir oben in der Konfiguration "security = user" eingestellt haben, muss der Benutzer auf unserem System existieren, also legen wir mal einen Benutzer an (dass man dazu root sein muss, sollte klar sein):

adduser windowsuser


legt uns einen Benutzer Namens windowsuser an, dieser existiert nun, aber wir müssen den Benutzer auch noch Samba hinzufügen, dies geschieht mit dem Befehl:

smbpasswd -a windowsuser

Danach wird uns Samba nach einem Passwort für windowsuser fragen, das wir dann auch noch bestätigen müssen. Das Passwort sollte dasselbe sein wie auf dem Windowssystem. Da wir in der Konfigurationsdatei eine Arbeitsgruppe Namens "linux" definiert haben, müssen wir diese auch noch anlegen und die Benutzer die zu dieser Arbeitsgruppe gehören sollen, der Gruppe hinzufügen. Dies geschieht mit dem Befehl:

adduser windowsuser linux

Damit ist nun der Benutzer windowsuser Mitglied der Arbeitsgruppe linux.

Was jetzt noch zu kontrollieren wäre, sind die vergebenen Rechte an den freigegebenen Ordnern und Dateien, und dass die Ordner und Dateien für die Gruppe Linux schreib- und lesbar sind.

So müsste nun die Freigabe /local/public aus unserer Beispielkonfiguration ungefähr aussehen:


anonyomus:/# ls -la /local/public/
insgesamt 8
drw-rw-r-- 8 root linux 216 1. Jan 22:12 .
drw-rw-r-- 11 root root 248 12. Dez 15:40 ..

Auf dem Windowsrechner muss nun noch die Arbeitsgruppe linux eingetragen werden, danach sollte man als Benutzer windowsuser auf dem Windowsrechner im Explorer unter Benachbarte Netzwerkcomputer auf den neuen Samba-Server zugreifen können und die von Samba angebotenen Freigaben und Drucker nutzen können.


6. Fehlersuche


Was in der Hitze des Gefechtes oft vergessen wird, dass nach dem Ändern der Konfigurationsdateien die Dienste neu gestartet werden müssen, damit die Änderungen auch übernommen werden.

Wenn man den Samba-Server in der Windowsnetzwerkumgebung zwar sehen kann, aber keine Lese- oder Schreibrechte erhält, die Rechte in der Konfigurationsdatei aber richtig gesetzt sind, dann kann es daran liegen, dass die Zugriffsrechte auf den entsprechenden Ordner ungenügend sind oder die Ordner dem falschen Besitzer oder der falschen Gruppe gehören.

Wenn man den Samba-Server in der Netzwerkumgebung nicht sehen kann, sollte man kontrollieren, ob Samba auch läuft, die Netzwerkverbindung besteht, ob beide Rechner derselben Arbeitsgruppe angehören.

Verfasser


Letzte Aktualisierung 19.06.2006 von LX