[Guide] Samba Schnelleinstieg - Freigaben leicht gemacht

foxxx

Moderator
Thread Starter
Mitglied seit
15.02.2006
Beiträge
11.765
Ort
/dev/null
Samba-Schnelleinstieg und Konfigurations-Guide


Moin Linuxxer,

Es gibt im Internet zwar schon einige umfassende Anleitungen zu Konfiguration des Samba-Server, aber eine kurze und knappe, die sich auf das wichtigste beschränkt, habe auch ich noch nicht direkt gefunden.

Zum einen gibt es die Möglichkeit der Konfiguration über ein Webinterface mittels SWAT -> http://wiki.ubuntuusers.de/Samba_Server_Swat

Ich werde hier nur auf die Konfiguration per Konsole eingehen, da das für die meisten Nutzer interessant sein sollte, die einen kleinen Home-/Filerserver bauen wollen.

Die folgenden Befehle können je nach Distribution abweichen, ich nehme Debian als Grundlage (sollte sich auf z.b. Ubuntu Server 1:1 übertragen lassen)

Zunächst installieren wir Samba ersteinmal, sofern noch nicht geschehen:
(alles weitere als root ausführen, dazu mit ´sudo -s´ auf superuser-Ebene wechseln)

Code:
apt-get install samba



ihv
Ich habe in diesem Guide 2 verschiedene Möglichkeiten erläutert, ihr könnt nun wählen:




mit Anmeldung

======== mit Anmeldung ========

Jetzt legen wir erstmal einen User auf dem Linux-System selbst an, auf diesen greift Samba dann auch zurück (ist also notwendig).

Code:
adduser [I]USERNAME[/I]

Die folgende Abfrage der Informationen wie Vorname, Nachname, etc... können ausgelassen werden, wichtig ist nur ein Passwort.

Diesen User fügen wir nun auch der Samba-Nutzerdatenbank hinzu:

Code:
smbpasswd -a [I]USERNAME[/I]

Hier das gleiche Passwort wie oben verwenden, sonst kommt es nur zu unnötiger Verwirrung.

Jetzt legen wir den freizugebenden Ordner im Home-Verzeichnis des neuen Benutzers an, das erspart uns das Einstellen der Rechte.

Code:
su [I]USERNAME[/I]
cd
mkdir [I]freigabe[/I]
exit

(Wir melden uns kurz mit dem neuen Benutzer an, wechseln in sein Home-Verzeichnis, legen den Ordner an und beenden die Sitzung mit dem neuen User)

Nun geht es an die Konfiguration des Samba-Servers.

Um die Konfigurationsdatei zu editieren, macht man Folgendes:
(bevor wir die originale Datei verändern, legen wir uns zunächst eine Sicherungskopie an)

Code:
cp /etc/samba/smb.conf /etc/samba/smb.conf.old

Und jetzt rufen wir sie mit einem Editor auf:

Code:
nano /etc/samba/smb.conf

Dort sollte nun mindestens Folgendes enthalten sein:

Ihr könnte euch an folgender Beispielkonfiguration orientieren, allerdings sind dort keine Freigabe von Druckern eingestellt, und einige Optionen habe ich auch "rausgekürzt".

smb.conf
Code:
#======================= Global Settings =======================

[global]

## Dies ist die Arbeitsgruppe, in der sich
## euer Samba-Server befinden wird.
	workgroup = [I]WORKGROUP[/I]

## "server string" ist der Rechner-Name eures
## Servers.
	server string = [I]FILESERVER[/I]

## Um die Antwort- und Reaktionszeit
## des Samba-Server etwas zu verbessern,
## kann man die folgende Option einstellen
## Ich empfehle die Verbindung von Buffern
## in Empfangs- und Senderichtung NICHT,
## da sich bei mir grundsaetzlich der Durch-
## satz dabei stark verringert hat.
	socket options = TCP_NODELAY


#======================= Networking Options =======================

## Auf welchem Netzwerkadapter soll
## der Samba-Server aktiv sein ?
   interfaces = eth0

## Nur auf dem o.g. Adapter aktiv sein?
   bind interfaces only = yes

## Logfile, selbsterklaerend
   log file = /var/log/samba/log.%m

## Maximale Groeße der Log-Datei in kb
   max log size = 1000


#======================= Authentication =======================

## "security" bestimmt das Sicherheits-
## Level eures Samba-Servers.
## Die meist genutzten sind "user" und
## "share". In dieser config sollen
## sich die Benutzer anmelden, daher
## nehmen wir "user".	
	security = user

## Diese Option sollte stehts aktiviert
## werden, sofern man Passwoerter zur
## Anmeldung verwendet. 
   encrypt passwords = true

## Wenn Passwoerter verschluesselt werden,
## muss der Samba-Server noch wissen,
## welche Datenbank er dafuer benutzt.
## Sollte auf dem Default-Wert gelassen
## werden.
   passdb backend = tdbsam
   

#======================= Share Definitions =======================

## Hier stellen wir nun die Freigaben ein,
## auf die zugegriffen werden sollen.

	[Freigabe1]
	comment = "[I]Meine Freigabe[/I]" [size=1]## optional[/size]
	path = /home/[I]USERNAME[/I]/freigabe
	browseable = yes
	guest ok = no
	public = no
	writeable = yes
	valid users = [I]USERNAME[/I]


Abschließend muss der Samba-Server nun noch einmal neugestartet werden:

Code:
/etc/init.d/samba restart

Und ab sofort könnt ihr euch auf eurem eigenen Samba-Server mit eurem USERNAMEN und zugehörigem Passwort anmelden.
Dies könnt ihr unter Windows beispielsweise auch als Netzlaufwerk einrichten und die Anmeldeinformationen speichern.


ohne Anmeldung

======== ohne Anmeldung ========

Um den Samba-Server ohne Anmeldung zu nutzen, brauchen wir zunächst einen Ordner, auf den auch ein "Gast" schreiben darf, denn so werden wir als Client behandelt, wenn wir uns nicht mit Username und Passwort anmelden.
Wo ihr diesen Ordner platziert, spielt letzlich keine Rolle, da wir die Berechtigungen für diesen sowieso anpassen müssen.
Allerdings würde ich empfehlen, ihn in bspw. /share neu zu erstellen.

Code:
mkdir -p /share/[i]freigabe[/i]

Damit nun Gäste darauf schreiben dürfen, setzen wir die richtigen Rechte:

Code:
chmod -R 777 /share/[i]freigabe[/i]

Bevor wir nun an der Konfiguration des Samba-Servers arbeiten, machen wir uns auch hier ein Backup der originalen Datei:

Code:
cp /etc/samba/smb.conf /etc/samba/smb.conf.old

Und jetzt rufen wir sie mit einem Editor auf:

Code:
nano /etc/samba/smb.conf

Ihr könnte euch an folgender Beispielkonfiguration orientieren, allerdings sind dort keine Freigabe von Druckern eingestellt, und einige Optionen habe ich auch "rausgekürzt".

smb.conf
Code:
#======================= Global Settings =======================

[global]

## Dies ist die Arbeitsgruppe, in der sich
## euer Samba-Server befinden wird.
	workgroup = [I]WORKGROUP[/I]

## "server string" ist der Rechner-Name eures
## Servers.
	server string = [I]FILESERVER[/I]

## Um die Antwort- und Reaktionszeit
## des Samba-Server etwas zu verbessern,
## kann man die folgende Option einstellen
## Ich empfehle die Verbindung von Buffern
## in Empfangs- und Senderichtung NICHT,
## da sich bei mir grundsaetzlich der Durch-
## satz dabei stark verringert hat.
	socket options = TCP_NODELAY


#======================= Networking Options =======================

## Auf welchem Netzwerkadapter soll
## der Samba-Server aktiv sein ?
   interfaces = eth0

## Nur auf dem o.g. Adapter aktiv sein?
   bind interfaces only = yes

## Logfile, selbsterklaerend
   log file = /var/log/samba/log.%m

## Maximale Groeße der Log-Datei in kb
   max log size = 1000


#======================= Authentication =======================

## "security" bestimmt das Sicherheits-
## Level eures Samba-Servers.
## Die meist genutzten sind "user" und
## "share". In dieser config sollen
## die Benutzer ohne Anmeldung auf die
## Freigaben zugreifen koennen, daher
## nehmen wir "share".
	security = share


#======================= Share Definitions =======================

## Hier stellen wir nun die Freigaben ein,
## auf die zugegriffen werden sollen.

	[Freigabe1]
	comment = "[I]Meine Freigabe[/I]" [size=1]## optional[/size]
	path = /share/[i]freigabe[/i]
	browseable = yes
	guest ok = yes
	public = yes
	writeable = yes
	create mask = 0777
	directory mask = 0777

## Die "Masken" bewirken, dass auch alle
## neuen Dateien die notwendigen Rechte
## bekommen, und nicht dem Gast alleine
## "gehoeren" (Standardverhalten von 
## Linux).

Abschließend muss der Samba-Server nun noch einmal neugestartet werden:

Code:
/etc/init.d/samba restart

Und ab sofort könnt ihr auf die Freigaben eures Samba-Servers ohne Anmeldung zugreifen.
Diese könnt ihr unter Windows beispielsweise auch als Netzlaufwerk einrichten.



----------------------------------------------------------------------------------------------


Soviel von meiner Seite, bei Fragen, Kritik und Tippfehlern einfach melden.

Viel Spaß damit :bigok:


MfG
foxxx :wink:
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Meinst du das /usr der richtige Ordner währe? Denn anders als man meinen mag, oder es früher mal war, hat das Verzeichnis heute wenig mit User Daten zu tun. Vielmehr mit Binaries, Libraries und Co.

Anders, als ich eben auch noch dachte, ist die heutige Bedeutung User System Resources.

Ich habe mir angewöhnt alle Verzeichnisse die Dienste oder Daten für Dienste bereitstellen unter /srv abzulegen oder aber unter /shared. Das kann aber jeder selber machen wie man will.

Mehr dazu findet man hier:
http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html
 
Stimmt auch wieder, hab's mal editiert.

Danke für den Hinweis ;)

PS: Vielleicht kannste ja mal in Skype oder ICQ online kommen :wink:
 
Zuletzt bearbeitet:
Moin !

Erstmal ein Lob: Klasse Guide :)

Ein kleiner Tipp: Der Befehl fürs Neustarten des Sambaserver kann je nach Distribution leicht unterschiedlich sein.

Bei ArchLinux ist es z.b.

/etc/rc.d/samba restart

Die Freigabe für den Gast würde ich auf 775 ändern.
Gibt auf Lans manchmal spezialisten die einen dann den Ordner löschen...
Muss wirklich mal was geschrieben werden vom Gast, kann der Admin ja dann auf 777 ändern.
 
Zuletzt bearbeitet:
Für LANs würde ich immer Benutzeranmeldung aktivieren.

Ich habe hier einen Account mit Namen "lan" eingerichtet und einem Passwort, was ich dann jedem sage.

Dieser Account hat dann aber nur da wo ich es will Lese-Rechte, und mehr nicht.

Für den privaten Gebraucht kann man den Ordner auf 777 setzen, sofern man keine Spezis im eigenen Netzwerk hat :shot:


btw: Zur Distribution hatte ich erwähnt, dass sich meine Befehle auf Debian beziehen und eventuell abweichen können ;)

mfg
foxxx :wink:
 
Ich habe jetzt meinen sambaserver aufgesetzt- es funktioniert soweit auch alles (wenn ich die Anmeldung mit Kennwort nicht nehme)

- ich habe mit dem über das ubuntu software center auffindbare tool den samba-server eingerichtet und user angelegt.

Die erstellten Ordner musste ich mit sudo chown user /share/test immer für meinen rootuser user freischalten- obwohl ich in dem Samba-server Konfigurationsmenü den Ordner als les und schreibbar von allen eingestellt hatte ...
wenn ich nun auf einen Ordner den ich für den Zugriff des windows-users "win7" auf meiner windows-maschine klicke kommt zwar das Anmeldefenster aber mein username und Kennwort wird nicht akzeptiert.
manchmal kommt auch "auf die netzwerkreccource ... kann nicht zugegriffen werden sie haben eventuell keine Berechtigung - ohne das ich überhaupt das Anmeldefenster zu sehen bekomme.

den user win7 habe ich natürlich schon angelegt, mit chown hat er auch ein Zugriffsrecht auf /share/test bekommen.

Wie kann ich eigentlich es schaffen das der user win7 und der linux- admin alle Rechte auf diesen Ordner haben (das Nutzer zwar angemeldet sein müssen aber mehrere angemeldete Nutzer das Recht auf alles haben) ?
 
addgroup freigabe
adduser win7 freigabe
adduser "linux-admin" freigabe
chown -R :freigabe /share/test
chmod -R 775 /share/test

Damit sollte es gehen ;)
 
Hat geklappt :d
ich habe den Test- Ordner mit chmod 777 für alle freigegeben die sich auf dem server anmelden können- bei dem xp- notebook kommt jetzt das Anmeldefenster wenn ich auf den Test- Ordner der über das samba- Interface nur bestimmten usern freigeschaltet ist zugreifen will.
Ich will das ganze jetzt erst mal als internen Fileserver verwenden und dann weitersehen wie das mit ftp so funktioniert.
Jetzt habe ich mir überlegt alle beiden Festplatten die aktuell im win7-Rechner sind auszubauen und dann als Netzlaufwerk zu mappen, der gigabit- switch von dlink sollte die Tage ankommen- von der Bandbreite her sollte es also kein Problem geben. Durch das Auslagern der Festplatten wäre der Geräuschpegel meines ohnehin schon recht leisen Zockrechners weiter reduziert. Windows und die Spiele liegen auf einer SSD - alles würde also nicht übers Netzwerk laufen.
Sollte ich die Festplatten mit einem linux- Dateisystem formatieren anstatt sie auf NTFS zu lassen ? Ich hoffe das ich das irgendwie konvertieren kann und nicht formatieren muss.

edit: klappt leider nicht so ganz- manchmal kommt der loginscreen bei dem xp- notebook, manchmal nicht ... - es ist dann sogar möglich ohne Anmeldung auf den eigentlich restriktierten Ordner zuzugreifen. Manchmal kam beim win7/xp-pc die Meldung das ich keine Rechte habe etc- ohne das ein Anmeldefenster aufging. Was mich vor allem wundert ist, dass ich nichts geändert habe was dieses zufällige Verhalten erklären könnte.
Einmal kann die xp maschine garnicht auf den sambaserver zugreifen, dann kann ich nur auf test1 (der ist für alle frei) und bei test2 kommt etwas von wegen keine Rechte. Das kommt dann eventuell auch so auf der win7- Maschine - oder es kommt die Aufforderung sich anzumelden bei der win7- Kiste. Dann kann es wieder sein das ich auf test2 ( hier müsste die Anmeldeaufforderung erscheinen) zugreifen kann (mit beiden win-Rechnern) ohne Kennwortabfrage und dann eventuell nur lesen kann oder sogar auch schreiben darf
Das für den user flo vergebene Kennwort habe ich nicht beim Anmeldebildschirm speichern lassen.
Den Gastaccount habe ich deaktiviert, Benutzer mit Zugriff sind nur bofh (der root des servers) und flo (der durch adduser erstellte)

Ich verstehe nicht wieso das bei mir so krass daneben geht- ich werd noch irre mit dem kleinen Serverprojekt
 
Zuletzt bearbeitet:
Hallo

Hat geklappt :d
Sollte ich die Festplatten mit einem linux- Dateisystem formatieren anstatt sie auf NTFS zu lassen ? Ich hoffe das ich das irgendwie konvertieren kann und nicht formatieren muss.

Also, bei konvertieren wäre ich vorsichtig...lieber Backup...Festplatte mit Ext3 formatieren und denn Dateien zurückspielen

klappt leider nicht so ganz- manchmal kommt der loginscreen bei dem xp- notebook, manchmal nicht ... - es ist dann sogar möglich ohne Anmeldung auf den eigentlich restriktierten Ordner zuzugreifen. Manchmal kam beim win7/xp-pc die Meldung das ich keine Rechte habe etc- ohne das ein Anmeldefenster aufging. Was mich vor allem wundert ist, dass ich nichts geändert habe was dieses zufällige Verhalten erklären könnte.
Einmal kann die xp maschine garnicht auf den sambaserver zugreifen, dann kann ich nur auf test1 (der ist für alle frei) und bei test2 kommt etwas von wegen keine Rechte. Das kommt dann eventuell auch so auf der win7- Maschine - oder es kommt die Aufforderung sich anzumelden bei der win7- Kiste. Dann kann es wieder sein das ich auf test2 ( hier müsste die Anmeldeaufforderung erscheinen) zugreifen kann (mit beiden win-Rechnern) ohne Kennwortabfrage und dann eventuell nur lesen kann oder sogar auch schreiben darf
Das für den user flo vergebene Kennwort habe ich nicht beim Anmeldebildschirm speichern lassen.
Den Gastaccount habe ich deaktiviert, Benutzer mit Zugriff sind nur bofh (der root des servers) und flo (der durch adduser erstellte)

Du kannst mal in der smb.conf den log level erhöhen und dir mal die logs anschauen i.d.R unter /var/log/samba vielleicht findest da den hinweis.
Häufige Ursache sind auch nicht ausreichende Dateirechte auf dem Server selber...

mfg
Sebastian
P.S.: ich installier sogar Spiele auf dem Samba Server und zock sie denn ... zwar sind manchmal die Ladezeiten länger aber bei vielen Games stört es nicht
 
Code:
smbpasswd -a USERNAME

Genau der Befehl hat mir gefehlt; ich hab die ganze Zeit versucht mich mit meinem Root-Account anzumelden und es ging nicht. Einmal den Befehl eingegeben und schon hats gefunzt ;)
 
Ich habe jetzt zwei samba-server laufen. Die Performanz ist echt gut. Das einzig problematische ist die etwas veraltete NT-Technoligie auf der das ganze aufsetzt. Ich habe mehrere user angelegt, welche für einen gewissen Zweck sich über eine batch authentifizieren und ein Netzlaufwerk mappen. Wenn ich nun updates über wsus gefahren habe und das Netzlaufwerk entfernt ist muss ich neustarten, um ein anderes Netzlaufwerk (beispielsweise für Backups oder Installationsdateien) zu mappen. Net session /delete funktioniert hier leider nicht, um die Anmeldeinformationen des getrennten Netzlaufwerks komplett zu entfernen.
 
das ist imho ein windows problem
wenn du statt
\\servername\share
die IP adresse nimmst
\\192.168.1.1\share
dann laesst dich windoof wieder eine user/passwort eingeben.
 
Dann müsste ich die Anmeldungsart als Bool bei jedem Öffnen speichern und ändern lassen.
Eine if-Schleife könnte dann je nach Variablenstand die Variable für die Anmeldung anpassen.
Das habe ich schon für die Verhinderung von Doppelanmeldungen geplant. Wenn drei Kundenrechner per wsus betankt werden muss ich bisher wsus2.bat (für den zweiten nutzer der wsus-Gruppe) anwählen, damit es nicht zu einer Mehrfachanmeldung auf dem Server kommt.
Bei wsus könnte man natürlich sagen das man durch ein allgemein zugängliches share das ganze umschiffen kann- bei Backups finde ich das dann aber schon sehr riskant ...
 
für Leute die nicht ganz so auf gutem sind mit dem Terminal ;) kann man auch das Hauseigene GUI "SWAT" runterladen wo man dann bequem im Browser über ein GUI seine Freigaben verwalten kann.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh