Samba
Einrichten eines Samba Servers
– Friedjof Noweck –
Inhaltsverzeichnis
• Voraussetzungen
• Der Raspberry Pi Samba Server
• Mounten eines SMB Ordners unter Linux
• SMB Ordner unter Windows einbinden
• Auf SMB Ordner über das Smartphone zugreifen
• Anleitung als PDF
• Meine Quellen
Voraussetzungen
Voraussetzung ist ein Grundverständnis von Linux. Dabei sollte die Kommandozeile kein Neuland sein. Zudem sollte der Raspberry Pi schon fertig eingerichtet sein und über eine Internetverbindung über LAN besitzen, da vermutlich auch größere Daten übertragen werden. Als Betriebssystem verwende ich Raspberry Pi OS Lite.
Es wird benötigt:
- Ein fertig eingerichteter Raspberry Pi 3/3B+/4 (Adminrechte vorhanden)
- Ein USB-Speicher für zusätzlichen Speicherplatz. Dabei sollte bei der Speicherkapazität auf die eigenen Ansprüche geachtet. (Ich habe einen 16GB USB Stick verwendet)
- Ein oder mehrere Rechner, die als Samba Client agieren.
Der Raspberry Pi Samba Server
Formatierung des USB-Speichers
Zuerst ist es wichtig den USB-Speicher richtig zu formatieren. Dabei muss darauf geachtet werden, dass das richtige Dateisystem ausgewählt wird. Mit dem Dateisystem FAT zum Beispiel ist es nicht möglich eine Rechtestruktur aufzubauen, wie wir sie im folgenden benötigen. Ich habe daher das Dateisystem Ext4 ausgewählt. Unter Linux MINT funktioniert das gut mit dem Programm Laufwerk, das standardmäßig installiert ist. Bei anderen Betriebssystemen gibt es aber ähnliche Programme.
Installationen
Jetzt brauchen wir noch ein paar Pakete, die installiert werden müssen.
Zuerst bringen wir den Rapberry Pi auf den neusten Stand.
sudo apt-get update && sudo apt-get upgrade
Nun installieren wir zuerst die Software, die für die Einrichtung des Samba- Servers benötigt werden. Das Programm smbclient können wir verwenden, um später den Samba- Server zu testen.
sudo apt-get install samba samba-common smbclient
Anschließend können wir mit folgenden Befehlen überprüfen, ob Samba läuft.
sudo service smbd status sudo service nmbd status
Falls die Dateisysteme NTFS oder HFS+ verwendet werden, müssen evt. noch Treiber mit dem folgenden Befehl auf dem Raspberry Pi installiert werden.
sudo apt-get -y install ntfs-3g hfsutils hfsprogs exfat-fuse
Mounten des USB-Speichers
Nun müssen wir den USB-Speicher auf dem Raspberry Pi einbinden. Dazu muss der USB-Speicher zunächst noch nicht am Raspberry Pi eingesteckt sein.
Zuerst legen wir einen neuen Ordner an, der mit dem USB-Speicher gemountet werden soll. Ich habe den Ordner smb genannt und unter /home/ erzeugt mit dem folgenden Kommando:
sudo mkdir /home/smb
Falls nicht genau klar ist wie der USB-Stick heißt, kann für dem einstecken des Sticks folgender Befehl ausgeführt werden.
sudo blkid -o list -w /dev/null
Nun können wir den USB-Speicher einstecken und den letzten Befehl erneut ausführen. Jetzt müsste ein weiterer Eintrag zusehen sein.
Meine Ausgabe:
Mein USB-Stick heißt SMB Cache und ist unter /dev/sdb1 zu finden. Auch ist mein Dateityp zusehen unter fs_type. Hinter dem Namen ist nun eigentlich der Mountpoint zu sehen. Da wir noch keinen Mountpoint gesetzt haben, ist keiner angegeben. Die UUID ist für die eindeutige Identifikation wichtig.
Wir sollten uns einige Parameter merken, da wir sie im später brauchen werden. Am besten kann man sich folgenden Punkte in eine eigene Datei kopieren oder aufschreiben.
Nun können wir den USB-Speicher mit dem folgenden Befehl Mounten:
sudo mount -t <fs_type*1> -o defaults <device*2> <mount point*3>
Nach erneutem Ausführen des Kommandos sudo blkid -o list -w /dev/null wird nun der eingerichtete Mountpoint angezeigt.
*1 Hier müssen wir den Typen des Dateisystems angeben.
*2 Hier müssen wir den Speicherort des USB-Sticks angeben.
*3 Hier müssen wir den eben neu erstellten Ordner angeben.
(Mit dem Befehl sudo umount /home/smb kann das Verzeichnis wieder „unmountet“ werden.)
Damit auch beim Starten des Raspberry Pis das Speichermedium automatisch eingebunden wird, müssen wir die Datei /etc/fstab bearbeiten.
sudo nano /etc/fstab
Wir fügen nun eine neue Zeile hinzu.
UUID=<UUID> <mount point> <fs_type> defaults 0
Bei mir lautet die Zeile:
UUID=a5f2cfba-30c1-43b3-afc3-174d5eeca1cc /home/smb ext4 defaults 0
Tipp:
Füge über der Zeile einen kleinen Kommentar hinzu, damit du auch in der Zukunft die Funktion dieser Zeile noch nachlesen kannst. Jeder Kommentar in dieser Konfigurationsdatei fängt mit einem # an. Der nachfolgende Text wird so vom Betriebssystem ignoriert.
Kommentare gehören zum guten Stil und im Nachhinein freut sich jeder über eine kleine Erklärung.
Ein Beispiel:
# <Name> <Datum> -> Quelle: <Quelle>
Die Datei kann nun mit STRG O, ENTER und STRG X gespeichert und geschlossen werden.
Um diese Konfiguration jetzt zu testen kann der Raspberry Pi neu gestartet werden. Dazu führe den folgenden Befehl einfach aus:
sudo reboot
Nach abermaligem Ausführen des Kommandos
sudo blkid -o list -w /dev/null
wird nun der eingerichtete Mountpoint angezeigt.
Nun ändern wir noch für die nachfolgenden Schritte die Benutzergruppe zu der Gruppe „users“ und die Zugriffsrechte zu „7701“ des Mountpoints. Dadurch bekommt nicht nur der Besitzer des Ordners vollen Zugriff auf den Mountpount, sondern auch die Gruppe „users“.
sudo chgrp users /home/smb
sudo chmod 770 smb/
7 = der Benutzer hat vollen Zugriff
7 = die Gruppe hat vollen Zugriff
0 = die Anderen haben keinen Zugriff
Samba-User anlegen
Ich empfehle den Samba Server mit Benutzerkonten aufzusetzen und keinen anonymen Zugriff zuzulassen. Dadurch wird das Nutzen des Samba Servers sicherer.
Daher richten wir jetzt erst einmal ein paar Nutzer ein. Die Namen der Nutzer können frei gewählt werden. Zum Beispiel user1 und user2.
Einen neuen Nutzer erstellt man beim Raspberry Pi und generell bei Linux wie folgt:
sudo useradd <user>
(User können mit dem Befehl sudo userdel <user> auch wieder gelöscht werden)
Dieses Kommando wiederholen wir jetzt für jeden Benutzer. Im Anschluss fügen wir die nun erzeugten Benutzerkonten zu der Gruppe users hinzu (diese Gruppe ist eigentlich schon standardmäßig vorhanden. Falls das nicht der Fall ist, genügt der Befehl sudo groupadd users.).
sudo usermod -aG users <name>
Diese Befehl muss ebenfalls für jeden Nutzer ausgeführt werden.
Durch das Hinzufügen zur Gruppe haben jetzt die neuen Konten kompletten Zugriff auf das gemountete Verzeichnis.
Wir fügen jetzt zu dem gemounteten Ordner für jeden Benutzer ein Verzeichnis mit jeweiligen Nutzernamen hinzu plus einen Ordner der Gruppe users mit dem Namen home, auf den jeder Zugehörige der Gruppe zugreifen kann.
mkdir /home/smb/<username>
Und ändern anschließend für jeden Ordner außer home den Besitzer.
sudo chown <username> <directory>
Bei dem Ordner home sollte die Gruppe und die Zugriffsrechte angepasst werden:
sudo chgrp users /home/smb/home/
sudo chmod 770 /home/smb/home/
Nun kannst du mit dem folgenden Befehl die neu erzeugte Ordnerstruktur einsehen:
ls -l /home/smb/
Bei mir sieht die Ausgabe nun wie folgt aus: