E-Mail - Webentwicklung - SEO
Linux - Ubuntu - OpenSuse
E-Commerce - Tools - sonstiges
Samba im praktischen Einsatz
Dank Samba kann sich ein Linux-Computer nahtlos in ein Windows-Netzwerk einfügen.
Er kann dabei einerseits Daten und Drucker von Windows-Computern nutzen und andererseits selbst Daten oder einen lokalen Drucker zur Verfügung stellen.
Samba verwendet für die Datenübertragung das SMB-Protokoll.
Das Server Message Block (SMB-) Protokoll basiert auf der Software-Schnittstelle "Netbios". Es bietet PCs mit Microsoft Windows-Versionen über das Transportprotokoll TCP/IP die gewünschten Datei- und Druckdienste.
SMB wird in der Windows-Welt für den gegenseitigen Zugriff auf die Daten und Drucker der Computer verwendet.
PS: Man kann natürlich auch Linux-PCs mittels Samba miteinander verbinden !!!
Samba ist ideal für den Einsatz in heterogenen Computer-Netzwerken geeignet.
Möglichkeiten mit Samba:
- Verfügen Sie bereits über einen Windows Server mit einem Active Directory (AD), dann schaffen sie mittels SAMBA einen zusätzlichen Fileserver, der die Benutzerauthentifizierung mittels AD vornimmt
- Samba kann durch das SMB-Protokoll im Netzwerk Freigaben anbieten, die im Explorer dargestellt werden und auch als Laufwerk eingebunden werden können. Dadurch wird den Benutzern des Netzwerkes ermöglicht ihre Daten auszutauschen, die zentral auf dem Linux-Server gespeichert sind.
- Die Netzwerkteilnehmer merken nicht ob sie auf einen Linux- oder Windows-Server zugreifen.
- Anhand der Benutzerberechtigungen legen Sie genau fest, welcher Benutzer welche Freigabe öffnen darf.
- Einen Wins-Dienst realisieren
Samba - allgemeines
Der Samba - Server besteht aus zwei Diensten:
Der erst Dienst ist:
SMBD: stellt die Freigaben über das SMB-Protokoll zur Verfügung.
Ob der Dienst läuft, prüft man in einem Terminal mit dem Befehl ps aux | grep smbd.
Der zweite Dienst ist:
NMBD: übernimmt Aufgaben wie z.B. einen Wins-Server-Dienst.
Ob der Dienst gestartet ist, prüft man mit ps aux | grep nmbd
Konfiguriert wird Samba mit der Textdatei /etc/samba/smb.conf.
Falls sie kein Windows-Netzwerk mit einer Windows-Domäne betreiben, ist ein problemloser Zugriff auf den Samba - Server nur möglich, wenn er sich in der gleichen Arbeitsgruppe wie die Windows-Client-PCs befindet.
Samba Installation openSuse und Ubuntu :
Die Sambainstallation unter unter openSUSE unterscheidet sich von der Installation unter Ubuntu Linux.
Auf einem SUSE System empfehle ich Verwaltungsarbeiten mit Hilfe der Software YaST zu erledigt. Installiert und konfiguriert man Softwarepakete von Hand, muß man daran denken, dass YaST diese Einstellungen eventuell überschreibt. Man sollte wissen, was man macht :-)
Also let's go. Starten Sie YaST und prüfen Sie unter Software->Software installieren und löschen, ob das Paket samba installiert ist.
Geben Sie dafür unter suchen den Begriff samba ein. Sie erhalten in der rechten Liste eine Auswahl von Paketen.
Befindet sich vor dem Paket ein blauer Haken (in der Textversion ist es ein i), ist das Paket bereits installiert (nach einem Update wird der Haken rot). Wenn nicht, klicken Sie das Kästchen an und installieren Sie die folgenden Pakete: samba, YaST2-samba-client und YaST2-samba - Server.
Nach einer kurzen Wartezeit ist Samba installiert.
Die openSuSE - Samba - Dienste werden mit rcsmb {start/stop/...} und rcnmb {start/stop/...} gestartet und gestopt.
Unter Ubuntu ist das etwas anders.
Softwarepakete werden am elegantesten in einem Terminal mit dem Kommando "apt-get install (Name des Paketes)" installiert.
Verwenden Sie lieber eine grafischer Benutzeroberfläche, wie GNOME z.B., dann installieren sie Pakete unter
System->Administration->Synaptic-Paketverwaltung.
In einem Terminal wird Samba mit:
sudo apt-get install samba installiert.
Die Dienste werden mit sudo /etc/init.d/samba {start/stop/ ...} gestartet oder gestopt.
Die Logdateien finden Sie unter /var/log/samba/nmbd und /var/log/samba/smbd.
Mit dem Kommando testparm wird die Datei /etc/samba/smb.conf auf syntaktische Fehler überprüft und die aktivierten Einstellungen angezeigt.
Ubuntu Dienste
Noch ein paar Worte zu den "Diensten" unter Ubuntu.
Normalerweise werden die Links für die Start/Stop - Skripte
während der Installation
eines Dienstes automatisch erstellt.
Jeder Dienst besitzt im Verzeichnis /etc/init.d/ ein entsprechendes Start/Stop - Skript.
Soll ein Skript automatisch während des Bootvorganges ausgeführt
werden,
muß man es in den
entsprechenden Runlevel verlinken. Für Samba wäre es der Standard
Runlevel 2.
Das Kommando dafür ist:
sl [Optionen] Quelle Ziel.
Das Startverhalten der Dienste unter Ubuntu einstellen :
Mit dem Befehl update-rc.d kann man unter Ubuntu Dienste aktivieren oder Deaktivieren.
Bsp. aktivieren von Samba: sudo update-rc.d samba defaults.
und deaktivieren mit: sudo update-rc.d samba remove.
Diese Vorgehensweise ist Vorübergehend, weil das System beim nächsten Paketupdate das Fehlen des Links bemerkt und den "fehlenden" Link neu setzt :-)
Besser ist es also den Link nicht zu entfernen, sondern zu deaktivieren.
Etwas eleganter geht das Ganze mit GUI - Software für die Konsole.
Da gibt es z.B. rcconf (nicht in der Grundinstallation vorhanden -> Universe)
oder
sysv-rc-conf (nicht in der Grundinstallation vorhanden -> Universe). Bei diesem Paket bitte Vorsicht, man sollte wissen was man tut.
Mehr zu Diensten und Dämonen unter Ubuntu .
openSuse Dienste
Unter openSuse erfolgen die Einstellungen wieder am elegantesten mit YaST.
In YaST starten Sie mit Klick auf System und Runlevel-Editor, den Runlevel-Editor. Hier können Sie festlegen ob und in welchem Runlevel der Dienst gestartet wird.
Um Samba beim Bootvorgang automatisch zu starten aktivieren Sie die Dienste:
nmbd und smbd.
Samba erste Konfiguration
Wir erstellen jetzt eine erste Konfiguration des Samba - Servers:
- Wechseln Sie ins das Verzeichnis /etc/samba/ und sichern sie die original Konfigurationsdatei /etc/samba/smb.conf, indem sie sie mit sudo mv smb.conf smb.conf.ori umbenennen.
- Erstellen Sie mit sudo touch smb.conf eine neue leere Konfigurationsdatei.
- Öffnen Sie die Datei smb.conf mit einem Editor.
-
Die Einstellungen werden in Blöcken vorgenommen, die mit
[ ] getrennt sind.
In den eckigen Klammern stehen die Bezeichnungen der Blockbereiche.
Der erste Bereich lautet [global].
In diesem Block werden die allgemeingültigen Einstellungen in der Form: Option = Wert vorgenommen.
Beispiel für eine Grundeinstellung:[global] workgroup = Arbeitsgruppe netbios name = Linux security = share [public] comment = "Freigabe" path = /home/testfolder guest ok = yes guest only = yes
Im ersten Block [global] haben wir mit (workgroup) die Arbeitsgruppe festgelegt. ( ! Die Arbeitsgruppe sollte die gleiche wie auf den Windows Clients sein !) Mit (netbios name) bestimmen wir den Namen unter dem der Samba - Server in der Netzwerkumgebung erscheint. Die Einstellung (security = Share) besagt, dass Samba erst beim Zugriff auf ein Verzeichnis Benutzer und Passwort fordert.
Im zweiten Block [public] legen wir mit ([public]) den Freigabenamen fest und mit (path) den Verzeichnispfad. Mit den Einstellung (guest ok) und (guest only) sagen wir, dass jeder Client auch ohne Zugangsdaten lesend Zugriff hat.
Man kann den Sambaserver mit Swat per Browser http://IP:901/ konfigurieren oder mit dem KDE-Kontrollzentrum kcontrol.
Unter Ubuntu wird Swat nicht automatisch installiert. Man muß das mit apt-get install swat nachholen.
Nach der Installation empfiehlt es sich, die Datei /etc/inetd.conf zu prüfen. Die Startzeile für Swat sollte nicht auskommentiert sein. Falls doch, bitte das #-Zeichen entfernen und den Superdämon inetd mit /etc/inet.d/inetd restart neustarten.
Samba in kleinen Arbeitsgruppen
Ein gut funktionierender Sambaserver erfordert eine gute Planung vorweg.
Es ist sinnvoll die Freigaben auf einer separaten Partition einzurichten.
Zu diesem Zweck erstellen wir auf dem Linuxserver die benötigten Verzeichnisse, wie z.B.: mkdir Einkauf, mkdir Verkauf oder allgemein mkdir Dokumente.
Für den Zugriff auf diese Verzeichnisse muß ich mich für eine der fünf Zugriffsmöglichkeiten entscheiden:
security = share
security = user
Diese Einstellung ist nur für kleine Netze sinnvoll, da der Verwaltungsaufwand bezüglich der Benutzerkonten deutlich größer ist.
security = server
password server = IP1, IP2
security = domain
password server = IP1-PDC
security = ads
genaue Anleitung folgt ...
Windows überträgt die Zugangsdaten verschlüsselt!
Deshalb daran denken die Sambaoption encrypt passwords = yes einstellen!
Für unser Produktivsystem legen wir security = user fest.
Das bedeutet wir müssen die Windows-Benutzerkonten auch auf dem Linuxsystem mit useradd "Benutzername" anlegen.
Der Linux- und der Windows-Benutzername müssen nicht übereinstimmen, denn wir verknüpfen die beiden wie folgt:
Im Verzeichnis /etc/samba erstellen wir die in der smb.conf eingetragenene Benutzerdatei smbusers mit touch /etc/samba/smbusers.
In der Datei smbusers stellen wir den Bezug zwischen Linuxbenutzer und Windowsbenutzer her:
Linuxbenutzer = Windowsbenutzer
Da die Benutzer unter Linux keinen Shellzugriff benötigen, korrigieren wir das mit chsh -s /bin/false "Benutzername" :-)
Bitte daran denken wir benötigen für diese Aktionen root-Rechte ! Unter Ubuntu mit sudo chsh ... !
Möchte man dauerhaft root-Rechte haben, erlang man diese mit:
sudo -l oder sudo su.
Und last but not least die Kennwörter für den Sambaserver mit smbpasswd -a "Benutzername" .
Die globalen Einstellungen in der Konfigurationsdatei
[global]
security = user
encrypt passwords = yes
username map = /etc/samba/smbusers
passdb backend = smbpasswd
workgroup = Arbeitsgruppe
map to guest = Bad Users
guest account = nobody
netbios name = Linux
interfaces = eth0, lo
bind interfaces only = yes
wins support = no
os level = 2
veto files = /*.nws/riched20.dll/*.{*}/
(Diese Option dient in erster Linie administrativen Zwecken - sie ist kein Ersatz für gut überlegte Dateirechte.)
Und jetzt die Home-Verzeichnisse der User, die zuvor unter Linux mit mkdir/home/Userverzeichniss angelegt worden sind:
[homes]
browseable = no
# Netzwerkumgebung:
# einmal unter homes und einmal unter dem Linux-Benutzernamen
read only = no
create mask = 0700
directory mask = 0700
Die Schreibrechte sind wichtig, denn für den Zugriff auf die Freigabe
werden auch entsprechende Rechte im Linux-Dateisystem benötigt.
Gruppenfreigaben mit Samba
[einkauf]
path = /home/dokumente/einkauf
writeable = yes
browseable = yes
valid users = @einkauf
force group = einkauf
create mask = 0770
directory mask = 0770
Vorbereitende Arbeiten:
Wir legen die Feigaben für die Benutzergruppen fest.
In unserem Beispiel ist es das Verzeichniss
/home/dokumente/einkauf.
- Mit groupadd einkauf erstellen wir unter Linux die Arbeitsgruppe und
- mit mkdir /home/dokumente/einkauf das Verzeichniss.
-
Als nächstes verknüpfen wir mit:
chgrp einkauf /home/dokumente/einkauf das Verzeichniss /home/dokumente/einkauf mit der Gruppe einkauf. - Die notwendigen Schreibrechte für Eigentümer und Gruppe des
Verzeichnisses setzen wir mit:
chmod 0770 /home/dokumente/einkauf. - Die Benutzer mit useradd Benutzername einkauf anlegen und gleich der Gruppe zuweisen. Nachträgliche Gruppenzuweisung mit: gpasswd -a "Benutzername" "Gruppe"
Samba als Printserver in der Arbeitsgruppe
Es gibt zwei Möglichkeiten um auf einen Drucker über Samba zuzugreifen:
- Der Drucker ist lokal am Linux - PC angeschlossen
( Parallelport ) - Man verwendet einen Netzwerkdrucker, der über TCP/IP ansprechbar ist. Der Drucker hat eine eigene Netzwerkkarte.
Ubuntu openSuSE : Drucker installieren
CUPS, das Common Unix Printing System, ist das aktuell am weitesten verbreitete Drucksystem auf Linuxsystemen. Wenn ein CUPS Print Server im Netz läuft, können Windows2000, XP und Vista mit der Einstellung : http://Servername:Port/printers/Druckername unter Startmenü/Einstellungen/Drucker und Faxgeräte: Drucker hinzufügen ... auf den Drucker zugreifen.
Windows 95/89 und ME benötigen Samba.
CUPS ist auf openSUSE und allen Ubuntu - Derivaten vorinstalliert. Einzige Ausnahme ist die Ubuntu - Serverversion. Die Installation läuft wie üblich mit: sudo apt-get install cupsys. CUPSYS ist der Serverdienst des CUPS - Printsystems.
Unter GNOME finden Sie den Druckerinstallationsbereich unter "System -> Administration -> Drucker". Mit einem Doppelklick auf den Button Neuer Drucker wird der Drucker installiert.
Eingeschaltete Drucker am USB werden meist automatisch erkannt. Wenn nicht, ist die Schnittstelle auswählbar. Nach der Auswahl des richtigen Druckertreibers ist der Drucker im System eingerichtet.
Unter KDE befindet sich die Druckerverwaltung unter
"K-Menü -> Systemeinstellungen -> Drucken".
Mit der Schaltfläche Neuer Drucker wird man Schritt für Schritt durch die Installation geführt.
Das CUPS Spooling - System läuft auf dem Linux - Server.
Bei openSUSE wieder mit YAST: Im Bereich Hardware - Drucker auf hinzufügen klicken und den Druckertyp auswählen. Sie sollten bei der Druckereinrichtung Filter deaktivieren, damit die Druckdaten als Raw - Daten an den Drucker gesendet werden. Die Druckergerechte Formatierung wird dann auf dem Windows - Client vorgenommen, auf dem auch der Druckertreiber installiert wird.
CUPS : Druckaufträge per Weboberfläche verwalten
CUPS besitzt einen eingebauten Webserver mit dessen Hilfe man die Druckaufträge in einem Browser verwalten kann.
Dazu ruft man folgende Adresse : http://IP-Adresse:631 in einem Browser auf.
Die IP-Adresse ist die ihres CUPS - Servers auf dem das
Spooling - System läuft.
CUPS Befehle für die Konsole:
lpq -a =>
lprm ID =>
lpc status =>
disable Druckername =>
/user/bin/enable Druckername =>
Druckerfreigabe in der smb.conf
Wir fügen folgendes unserer /etc/samba/smb.conf hinzu:
[printers]
printable = yes
path = /var/temp
read only = yes
browseable = yes
create mask = 0600
use client driver = yes
printer admin = name1, name2
Linux Samba Drucker unter Windows installieren
- Klicken Sie im Dateibaum der Netzwerkumgebung Ihres Explorers bis
zum gewünschten Samba - Server oder geben sie in der Adressleiste
folgendes ein : \\Ip_Adresse_des_Samba_Servers.
An Stelle der Ip_Adresse können Sie auch den Namen des Samba-Servers angeben: \\Name_des_Samba_Servers.
(Wird der Samba-Server nicht mit \\Name_des_Samba_Servers gefunden, funktioniert die Namensauflösung in Ihrem Netzwerk nicht korrekt.)
- Klicken Sie nun doppelt auf den benötigten Drucker.
- Die erscheinende Fehlermeldung beenden Sie mit OK und wählen
einen lokalen Druckertreiber aus.
Sie können nun den Drucker unter Windows benutzen.
Den Druckertreiber automatisch installieren
In der Praxis ist es oft eleganter den Treiber automatisch vom System installieren zu lassen.
Für diesen Zweck müssen sie die Treiber in die entsprechende Freigabe kopieren.
Wir erweitern unsere /etc/samba/smb.conf :
[print$]
path = /var/lib/samba/drivers
write list = @ntadmin
# Die Gruppe existiert standardmäsig unter Linux.
force group = root
create mask = 0664
directory mask = 0664
(Bitte folgende Zeile in der Freigabe [printers] entfernen oder wie hier mit einem #-Zeichen deaktivieren.)
# use client driver = yes
And as always restart Samba ( Samba neu starten).
Der Gruppe ntadmin fügen sie den Linux-Benutzer hinzu, mit dem sie sich unter Windows anmelden.
Der Benutzer muß auch in Samba unter printer admin aufgelistet sein.
Suchen sie in der Windows Netzwerkumgebung das Verzeichnis Drucker.
Mit Mausklick rechts und Eigenschaften erscheint eine Eingabemaske, die sie mit einem Klick auf Nein beenden. Es erscheinen die Eigenschaften des Druckers.
Wählen sie im Register die Karte Erweitert-> neuer Treiber.
Suchen sie den benötigten Treiber aus. Mit einem Klick auf Fertigstellen kopiert Windows den Treiber in die Freigabe print$
Durch das $-Zeichen wird die Freigabe print$ nicht im Explorer angezeigt.
Sie erreichen sie aber trotzdem mit \\IP-Nummer\print$.
Verweigert das System das Speichern der Einstellungen, haben sie eventuell die Zeile
# use client driver = yes
nicht deaktiviert.
Samba mit kcontrol konfigurieren
So, nachdem wir uns mit der Konsole geplagt haben:
Unter KDE kann man Samba recht elegant im KDE-Kontrollzentrum (im Terminal mit: "kcontrol" starten) einstellen.
Unter Ubuntu einfach mit sudo apt-get install kcontrol installieren.
Im Kontrollzentrum finden Sie unter: Internet & Netzwerke
den Sambaserver.
Sie müssen Systemverwaltungsmodus (Button ist unten links zu sehen) starten.
Ihr System fragt nach dem root-Passwort.
Jetzt können Sie Samba bequem einstellen :-)
Samba mit Gsamba konfigurieren
Unter Gnome kann man Samba mit Gsambad einstellen und verwalten.
Man benötigt dafür das Paket gsambad
Zu installieren mit:
sudo apt-get install gsambad.
Virenschutz für den Samba-Server
Setzt man den Samba-Server als File-Server ein, sollte man an einen Virenschutz denken.
Der SMBD-Dienst des Samba-Servers ermöglicht nicht nur den gewünschten Dateizugriff auf saubere Dateien.
Auch Viren, Würmer und Trojaner können sich auf der Samba-Partition des Linux-Computers befinden.
Da die Schädlinge in der Regel für Windows gedacht sind, schaden sie dem Linux-Computer nicht.
Greift man aber mit einem Windows-Computer auf eine verseuchte Samba-Partition zu, dann ist der zugreifende Windows-Computer in Gefahr.
Möchte man die Samba-Partition auf dem Linux-Computer frei von Schadsoftware halten, gibt es zwei Möglichkeiten:
- Man installiert auf dem Linux-Computer entsprechende Schutzsoftware, die auch die Samba-Partition schützt.
- Man installiert auf den zugreifenden Windows-Computern entsprechende Schutzsoftware. Diese Software muss die Möglichkeit bieten eingebundene Laufwerke zu scannen, da die Samba-Partition unter Windows eingebunden (gemappt) werden muss.
Wenn ihr diese Website gut findet unterstützt sie bitte, indem ihr folgenden Link in eure Website einfügt:
<a href="http://www.kajamogo.de/linux.php" title="kajamogo: ubuntu samba"> ubuntu samba </a>
Vielen Dank !!!
Inhalt dieser Seite:
Samba
Um diese Programme an das eigene System besser anpassen zu können, kompiliert man ...
Virenschutz für Samba
Wenn man den Samba-Server als FileServer...
Samba in der Praxis
Ein kleiner Einblick in die Möglichkeiten mit Samba
Samba im Produktiv-System
Für kleine Arbeitsgruppen empfehle ich security = user zu setzen
Gruppenfreigaben mit Samba
Unter Linux die Arbeitsgruppen anlegen und die Benutzerrechte vergeben ...
Samba als Print Server für Arbeitsgruppen
CUPS, das Common-Unix-Printing-System, ist das aktuell am weitesten verbreitete Drucksystem auf Linux-Systemen.
Linux Samba Drucker unter Windows installieren
Ubuntu - Dienste
Ein paar Worte zu den Diensten unter Ubuntu
openSuse Dienste:
Ein paar Worte zu den Diensten unter openSuse
Samba mit kcontrol konfigurieren
Social Bookmarks
