{"id":329,"date":"2007-11-28T15:53:26","date_gmt":"2007-11-28T14:53:26","guid":{"rendered":"http:\/\/www.zeroathome.de\/wordpress\/samba-dateiserver-unter-linux\/"},"modified":"2007-11-28T15:53:26","modified_gmt":"2007-11-28T14:53:26","slug":"samba-dateiserver-unter-linux","status":"publish","type":"post","link":"https:\/\/www.zeroathome.de\/wordpress\/samba-dateiserver-unter-linux\/","title":{"rendered":"Samba &#8211; Dateiserver unter Linux"},"content":{"rendered":"<p><a title=\"server tutorial\" href=\"http:\/\/www.zeroathome.de\/wordpress\/linux-server\/\"><img loading=\"lazy\" decoding=\"async\" class=\"head_image\" src=\"\/\/www.zeroathome.de\/images\/blog\/server_tut120.png\" alt=\"server tutorial\" width=\"120\" height=\"108\" \/><\/a>Da der letzte Teil der Linux-Server Serie &#8218;<a href=\"http:\/\/www.zeroathome.de\/wordpress\/grundeinrichtung-des-servers\/\">Server nach Wunsch<\/a>&#8218; schon eine Weile zur\u00fcckliegt, geht es jetzt endlich weiter. Das <a href=\"http:\/\/de.wikipedia.org\/wiki\/Server_Message_Block\">SMB-Protokoll<\/a>, dem das Freigeben von Ordnern in den meisten Windows-Netzen zu Grunde liegt, wurde bereits 1983 von IBM entwickelt und seitdem von vielen Firmen weiterentwickelt. Das gr\u00f6\u00dfte Einsatzgebiet von SMB ist in der Windows-Dateifreigabe zu finden, und da sich diese mittlerweile als Quasi-Standard festgesetzt hat, sollte auch unser Linux-Server die Sprache von SMB beherrschen. Das daf\u00fcr ben\u00f6tigte Programm <a href=\"http:\/\/de.wikipedia.org\/wiki\/Samba_%28Software%29\">Samba<\/a>, das frei unter GPL-Lizenz verbreitet wird, stellt die ben\u00f6tigten Funktionen zur Verf\u00fcgung, um aus Linux einen &#8222;Windows-Dateiserver&#8220; zu machen.<\/p>\n<p><!--more--><\/p>\n<p><!--wsa:contaxe2--><\/p>\n<p>Bevor wir anfangen kurz \u00fcberpr\u00fcfen ob irgendwelche Updates anliegen:<\/p>\n<p><code>sudo apt-get update<br \/>\nsudo apt-get upgrade<\/code><\/p>\n<p>Als n\u00e4chstes erfolgt die Installation von Samba \u00fcber das entsprechende Paket (auf der Konsole, oder falls ihr <a href=\"http:\/\/de.wikipedia.org\/wiki\/Xfce\">XFCE<\/a> mitinstalliert habt, \u00fcber euren favorisierten Paketmanager):<\/p>\n<p><code>sudo apt-get install samba<\/code><\/p>\n<p><a title=\"samba install\" href=\"http:\/\/www.zeroathome.de\/wordpress\/?pp_album=main&amp;pp_cat=&amp;pp_image=samba_install.png\"><\/a><\/p>\n<p style=\"text-align: center\"><a title=\"samba install\" href=\"http:\/\/www.zeroathome.de\/wordpress\/?pp_album=main&amp;pp_cat=&amp;pp_image=samba_install.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/www.zeroathome.de\/images\/blog\/thumb_samba_install.png\" alt=\"samba install\" width=\"100\" height=\"59\" \/><\/a><\/p>\n<p>Anschlie\u00dfend richten wir die Benutzer ein, die sp\u00e4ter auf den Server zugreifen d\u00fcrfen. Dazu m\u00fcssen die Benutzer zuerst im System angelegt werden, was mit einem &#8217;sudo adduser benutzer&#8216; schnell erledigt ist. Anschlie\u00dfend wird noch ein Samba-Passwort f\u00fcr den Benutzer vergeben mit &#8217;smbpasswd -a benutzer&#8216;. Dieses Spiel einfach mit allen Benutzern die Zugriff haben sollen wiederholen. Anschlie\u00dfend f\u00fcgen wir die Benutzer der Gruppe &#8218;users&#8216; hinzu, das wird ben\u00f6tigt um sp\u00e4ter Zugriffsrechte auf gemeinsame Ordner zu gew\u00e4hren:<\/p>\n<p><code><br \/>\nsudo nano \/etc\/group<br \/>\n<\/code><\/p>\n<p>Dort werden die Namen der Benutzer einfach an die Zeile die mit &#8218;users&#8216; beginnt angehangen:<\/p>\n<p><code>users:x:100:benutzer1,benutzer2,benutzer3<\/code><br \/>\nDatei abspeichern und schlie\u00dfen mit Strg-X.<\/p>\n<p>Alternativ k\u00f6nnen Benutzer auch mit dem folgenden Befehl zu einer Gruppe hinzugef\u00fcgt werden:<\/p>\n<p><code>sudo addgroup benutzer gruppe<\/code><\/p>\n<p>Doch nun zur Konfiguration, diese erfolgt \u00fcber eine einzige Datei, die im Verzeichnis &#8218;\/etc\/samba&#8216; zu finden ist. Um die Konfiguration zu beginnen machen wir zuerst mal ein Backup von der Original Datei &#8217;smb.conf&#8216;:<\/p>\n<p><code><br \/>\nsudo mv \/etc\/samba\/smb.conf \/etc\/samba\/smb.conf.bak<br \/>\n<\/code><\/p>\n<p>Um unsere neue Konfigurationsdatei zu erstellen \u00f6ffnen wir einfach unseren Lieblingseditor (der Einfachheit halber benutze ich hier nano, es kann aber auch jeder andere Editor benutzt werden) mit folgendem Befehl:<\/p>\n<p><code>sudo nano \/etc\/samba\/smb.conf<\/code><\/p>\n<p>Die Datei ist der \u00dcbersichtlichkeit halber in Sektionen unterteilt, in der Regel gilt das eine Sektion einer Freigabe entspricht und der Name der Sektion der Name der sp\u00e4teren Freigabe ist. Wenn also die Sektion [freigabe] hei\u00dft (die eckigen Klammern umschlie\u00dfen den Sektionsnamen), dann w\u00fcrde die Freigabe entsprechend &#8218;freigabe&#8216; heissen. Es gibt allerdings einige bereits festgelegte Sektionsnamen, die man nicht f\u00fcr seine eigenen Freigaben verwenden sollte. Dazu geh\u00f6rt unter anderen auch die Sektion [global], die f\u00fcr die Einstellungen f\u00fcr den Server reserviert ist und mit der die Konfigurationsdatei &#8217;smb.conf&#8216; in der Regel beginnt:<\/p>\n<p><code><br \/>\n[global]<br \/>\nworkgroup = ARBEITSGRUPPE<br \/>\nserver string = Samba Server auf %h<br \/>\nwins support = yes<br \/>\nos level = 33<br \/>\nlocal master = yes<br \/>\n;wins server = w.x.y.z<\/code><\/p>\n<p>F\u00fcr einfaches Filesharing ist das schon genug der Einstellung. Die Zeile &#8218;wins support&#8216; sollte falls man einen Windows-Server im Netzwerk betreibt auf &#8217;no&#8216; gesetzt werden und die Zeilen &#8218;os level = 33&#8216; und &#8218;local master = yes&#8216; gel\u00f6scht oder mit &#8218;;&#8216; auskommentiert werden. Daf\u00fcr sollte die Zeile &#8218;;wins server = w.x.y.z&#8216; wiefolgt abge\u00e4ndert werden:<\/p>\n<p><code>wins server = {IPdesWINDOWSservers}<\/code> Die Klammer m\u00fcssen weg gelassen werden!<\/p>\n<p>Wozu dient WINS? Ganz einfach dazu die IP-Adressen der im Netzwerk vorhandenen Rechner deren NETBIOS-Namen, also den Hostnamen zuzuweisen und anderen Rechnern ein Verzeichnis zu bieten, in der diese die Zuordnung (IP&lt;&gt;Hostname) nachschauen k\u00f6nnen.<\/p>\n<p>Als n\u00e4chstes richten wir eine einfache Freigabe ein, zu der jeder der eingerichteten Nutzer Zugriff hat. Dazu legen wir eine neue Sektion an mit dem Namen &#8218;public&#8216;. Zuerst erstellen wir allerdings das Verzeichnis und setzen die Benutzerrechte so, das die Benutzer der Gruppe &#8218;users&#8216; (also unsere eben eingerichteten), darauf zugreifen k\u00f6nnen:<\/p>\n<p><code><br \/>\nsudo mkdir \/srv\/public<br \/>\nsudo chmod o-rwx \/srv\/public<br \/>\nsudo chgrp users \/srv\/public<br \/>\nsudo chmod g+sw \/srv\/public<br \/>\n<\/code><\/p>\n<p>Zeile 1 legt das Verzeichnis (das \u00dcberverzeichnis &#8218;\/srv&#8216; ist f\u00fcr solche Serverdienste reserviert, also nutzen wir das hier auch mal) an, Zeile zwei beschr\u00e4nkt die Lese- und Schreibrechte auf Besitzer und Gruppe des Verzeichnisses, Zeile 3 \u00e4ndert die Gruppe des Verzeichnisses auf &#8218;users&#8216; und Zeile 4 sorgt daf\u00fcr das neu angelegte Verzeichnisse immer der Gruppe &#8218;users&#8216; geh\u00f6ren.<\/p>\n<p><code><br \/>\n[public]<br \/>\ncomment = Freigabe fuer jedermann<br \/>\npath = \/srv\/public<br \/>\nwriteable = yes<br \/>\nvalid users = @users<br \/>\nforce directory mode = 660<br \/>\nforce create mode = 660<br \/>\n<\/code><\/p>\n<p>In der Zeile comment gibt man am besten eine Beschreibung des Verzeichnisses an (kann auch weggelassen werden), in der Zeile path gibt man den Pfad zum eben angelegten Verzeichnis an. &#8218;writeable&#8216; sorgt daf\u00fcr das das Schreiben in das Verzeichnis m\u00f6glich ist. Die letzten drei Zeilen sind f\u00fcr die Zugriffsrechte zust\u00e4ndig: &#8218;valid users&#8216; zeigt hier an das die Gruppe &#8218;users&#8216;, deutlich gemacht durch das @, Zugriff hat. Einzelne Benutzer werden ohne @ durch Komma getrennt eingetragen. Die anderen beiden Zeilen sorgen daf\u00fcr, das neu angelegte Dateien und Verzeichnisse von den Benutzern der Gruppe &#8218;users&#8216; Les- und Schreibbar sind.<\/p>\n<p>Damit k\u00f6nnen wir unseren Server auch schon testen, &#8217;smb.conf&#8216; abspeichern und mit &#8218;testparm -v&#8216; pr\u00fcfen ob die gemachten Konfigurationen Fehler enthalten. Das Konsolenprogramm gibt die komplette Konfiguration aus und zeigt eventuelle Fehler an. Wenn die Einstellungen fehlerfrei sind, wird der Server mit &#8217;sudo \/etc\/init.d\/samba restart&#8216;, neu gestartet. Danach sollte man testen ob die Freigabe aus dem Netzwerk erreichbar ist.<\/p>\n<p>Unter Windows geht das folgenderma\u00dfen:<\/p>\n<p>Start-&gt;Ausf\u00fchren<\/p>\n<p>Im Dialogfenster ist einzugeben:  &#8218;\\\\www.xxx.yyy.zzz&#8216; wobei www.xxx.yyy.zzz der IP eures Servers entspricht. Falls ihr unter Windows mit dem selben Benutzer arbeitet, den ihr vorher im Linux Server angelegt habt, also gleicher Benutzernam, gleiches Passwort, dann sollte bereits ein Explorer-Fenster mit dem Ordner public ge\u00f6ffnet werden. Andernfalls erscheint ein Dialog der zur Eingabe von Benutzernamen und Passwort auffordert. Nach Eingabe dieser und best\u00e4tigen mit Enter erscheint dann ebenfalls unser public-Ordner. Zum Test sollte auch mal versucht werden eine Datei zu erstellen, falls das nicht funktionieren sollte, ist wohl bei der Konfiguration irgendwo etwas schiefgelaufen, keine Panik, das passiert jedem, einfach noch mal ruhig alles durchgehen und den Fehler finden.<\/p>\n<p>Falls ihr den public Ordner weiterhin verwenden wollt, empfiehlt es sich diesen als Netzlaufwerk zu verbinden. Dazu einfach mit der rechten Maustaste auf den Ordner &#8218;public&#8216; klicken und &#8218;Netzlaufwerk verbinden&#8230;&#8216; klicken, anschlie\u00dfend einen Laufwerksbuchstaben ausw\u00e4hlen (bei den Netzlaufwerken ist es sinnvoll diese am Ende des Alphabets anzulegen, da es dann keine Probleme mit USB-Sticks oder externen Festplatten gibt) und mit OK best\u00e4tigen. Danach sollte im Arbeitsplatz ein Laufwerk mit dem von euch gew\u00e4hlten Buchstaben zu sehen sein, \u00fcber das ihr auf den Netzwerkordner zugreifen k\u00f6nnt.<\/p>\n<p>Zu guter Letzt werden wir noch die Home-Verzeichnisse der angelegten Benutzer freigeben. Diese Freigaben sind nur den jeweiligen Benutzern zug\u00e4nglich, nur sie d\u00fcrfen dort lesen, schreiben usw.<\/p>\n<p>Um nicht f\u00fcr jedes Verzeichnis einzeln eine Sektion anlegen zu m\u00fcssen wurde f\u00fcr diesen Zweck die Sektion &#8218;[homes]&#8216; vorgesehen. Die Sektion w\u00fcrde dann entsprechend so aussehen:<\/p>\n<p><code><br \/>\n[homes]<br \/>\ncomment = Home Verzeichnisse<br \/>\nbrowseable = yes<br \/>\nwriteable = yes<br \/>\n<\/code><\/p>\n<p>Das ist bereits genug, man sollte jetzt unter Windows mit &#8218;Start-&gt;Ausf\u00fchren-&gt; \\\\www.xxx.yyy.zzz\\benutzer&#8216; und eventueller Passworteingabe in das jeweilige Home-Verzeichnis gelangen. Problematisch ist, das in diesem Zustand, jeder Benutzer alle Verzeichnisse lesen darf, auch \u00fcber das Netzwerk. Um das zu \u00e4ndern sollte das folgende getan werden:<\/p>\n<p><code><br \/>\nsudo chmod g-rx,o-rx \/home\/benutzer<br \/>\n<\/code><\/p>\n<p>Damit hat nur noch der Besitzer Zugriff auf sein Verzeichnis, sowohl lokal, als auch \u00fcbers Netz.<\/p>\n<p>Fazit:<br \/>\nUm nun weitere Verzeichnisse anzulegen, kann man sich das Verzeichnis &#8218;public&#8216; als Vorlage nehmen und entsprechend ab\u00e4ndern. Die Zugriffsrechte sollte man prim\u00e4r unter Linux setzen, Samba ist dazu zwar auch f\u00e4hig, das f\u00fchrt allerdings meist zu Verwirrungen.<br \/>\nAm einfachsten folgt man bei der Rechtevergabe dem folgenden Schema:<br \/>\nWenn mehrere Benutzer auf ein Verzeichnis zugreifen sollen, legt man am besten eine neue Gruppe an (&#8218;addgroup gruppe&#8216;), und f\u00fcgt die Benutzer dieser hinzu (&#8218;addgroup benutzer gruppe&#8216;), anschlie\u00dfend gibt man der Gruppe den Besitz am Verzeichnis (&#8218;chgrp gruppe verzeichnis&#8216;) und setzt die Rechte entsprechend (siehe public-Freigabe).<br \/>\nWenn nur ein Benutzer Zugriff haben soll, dann \u00fcbertr\u00e4gt man ihm mit &#8218;chown benutzer:benutzergruppe verzeichnis&#8216; die Rechte und sorgt mit &#8217;sudo chmod g-rx,o-rx verzeichnis&#8216;, daf\u00fcr das nur er darauf Zugriff hat. So lassen sich relativ leicht sehr komplexe Nutzerrechte erstellen, ich denke dazu sollte sp\u00e4ter noch ein kleiner Artikel folgen, was meint ihr?<\/p>\n<p>So damit schlie\u00dfen wir dieses Kapitel und erfreuen uns unseres Dateiservers, bei Fragen oder Beschwerden kontaktiert mich bitte \u00fcber die Kommentare oder das Kontaktformular. Leider kann ich hier wie immer keine Garantie geben und vor allem nicht f\u00fcr eventuell entstandene Sch\u00e4den haften, ihr versteht.<\/p>\n<p>Falls ihr noch Vorschl\u00e4ge habt f\u00fcr weitere Dienste die unser Server anbieten soll, immer her damit!!<\/p>\n<p>Related Links:<\/p>\n<p><a href=\"http:\/\/de.samba.org\/samba\/\">Internetseite des Samba-Projektes<\/a><br \/>\n<a href=\"http:\/\/samba.sernet.de\/\">Offizielle deutsche Seite des Samba-Projektes<\/a><br \/>\n<a href=\"http:\/\/wiki.samba.org\/\">Samba Wiki<\/a><br \/>\n<a href=\"http:\/\/de.samba.org\/samba\/docs\/man\/\">Verzeichnis der offiziellen Dokumentation, sowie Howtos und Beispiel-Konfigurationen<\/a><\/p>\n<h2>Serie: Linux Home Server<\/h2>\n<h3>Teil 1:<\/h3>\n<p><a href=\"http:\/\/www.zeroathome.de\/wordpress\/2007\/07\/18\/linux-server-fuers-eigenheim-server-nach-wunsch\/\">Installation des Grundsystems mit grafischer Oberfl\u00e4che &#8211; Xubuntu 6.06<\/a><\/p>\n<h3>Teil 2:<\/h3>\n<p><a href=\"http:\/\/www.zeroathome.de\/wordpress\/2007\/07\/24\/grundeinrichtung-des-servers\/\">Grundeinrichtung des Systems &#8211; Netzwerk, Updates, Midnight Commander, SSH-Server<\/a><\/p>\n<h3>Teil 3:<\/h3>\n<p>Samba &#8211; Dateiserver unter Linux<\/p>\n<h3>Teil 4:<\/h3>\n<p><a href=\"http:\/\/www.zeroathome.de\/wordpress\/lamp-linux-apache-mysql-php\/\">LAMP &#8211; Linux-Apach-MySQL-PHP<\/a><\/p>\n<h3>Teil 5:<\/h3>\n<p><a href=\"http:\/\/www.zeroathome.de\/wordpress\/web-anwendungen\/\"> Web-Anwendungen f\u00fcr den Server &#8211; Jinzora und Torrentflux-b4rt<\/a><\/p>\n<h3>Teil 6:<\/h3>\n<p><a rel=\"bookmark\" href=\"http:\/\/www.zeroathome.de\/wordpress\/ftp-und-webdav-fuer-euren-ubuntu-server\/\"> FTP und WebDAV f\u00fcr euren Ubuntu-Server<\/a><\/p>\n<h3>Teil 7:<\/h3>\n<p><a title=\"Mailserver mit Postfix, Dovecot und Getmail\" href=\"http:\/\/www.zeroathome.de\/wordpress\/ubuntu-606-mailserver-mit-postfix-dovecot-und-getmail\/\">Mailserver mit Postfix, Dovecot und Getmail<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da der letzte Teil der Linux-Server Serie &#8218;Server nach Wunsch&#8218; schon eine Weile zur\u00fcckliegt, geht es jetzt endlich weiter. Das SMB-Protokoll, dem das Freigeben von Ordnern in den meisten Windows-Netzen zu Grunde liegt, wurde bereits 1983 von IBM entwickelt und seitdem von vielen Firmen weiterentwickelt. Das gr\u00f6\u00dfte Einsatzgebiet von SMB ist in der Windows-Dateifreigabe zu [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,27],"tags":[604,614,47],"_links":{"self":[{"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/posts\/329"}],"collection":[{"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/comments?post=329"}],"version-history":[{"count":0,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/posts\/329\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/media?parent=329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/categories?post=329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zeroathome.de\/wordpress\/wp-json\/wp\/v2\/tags?post=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}