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> -o defaults <device> <mount point>

Nach erneutem Ausführen des Kommandos sudo blkid -o list -w /dev/null wird nun der eingerichtete Mountpoint angezeigt.

 pi@mqtt:~ $ sudo blkid -o list -w /dev/null
 device                     fs_type    label       mount point                    UUID
 ———————————————————————–
———————————————-
 /dev/mmcblk0p1             vfat       boot        /boot                          592B-C92C
 /dev/mmcblk0p2             ext4       rootfs      /                              706944a6-7d0f-4a45-9f8c-7fb07375e9f7
 
/dev/sda1                  ext4       SMB Cache   /home/smb                      a5f2cfba-30c1-43b3-afc3-174d5eeca1cc
 /dev/mmcblk0                                      (in use)

(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 „7704“ des Mountpoints. Dadurch bekommt nicht nur der Besitzer des Ordners vollen Zugriff auf den Mountpount, sondern auch die Gruppe „users“.

sudo chgrp users /home/smbsudo 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:

Konfigurierung des Samba-Servers

Die Konfigurationen am Samba- Server nimmt man in der Datei /etc/samba/smb.conf vor. Um später nochmal zur originalen Konfigurationsdatei zurück kehren zu können, erstellen wir eine Sicherungskopie mit dem Namen smb.conf_org und erzeugen eine neue smb.conf Datei.

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_org
sudo nano /etc/samba/smb.conf

Nun legen wir eine globale Sektion an. In dieser werden alle default -Werte gesetzt.

[global]
 workgroup = WORKGROUP
 security = user
 encrypt passwords = yes
 client min protocol = SMB2
 client max protocol = SMB3

Die workgroup muss ggf. angepasst werden, ist aber standardmäßig WORKGROUP.
 Die security setzen wir auf user. So muss man sich für den Zugang zu Samba anmelden. Eine weitere Option ist share. Dadurch kann man sich auch als anonymer Samba  Client einloggen, doch die Sicherheit geht verloren.

Im folgenden fügen wir noch die einzelnen Verzeichnisse hinzu.

[user1]
 comment = Ordner von user1
 
valid users = user1
 path = /home/smb/user1/
 read only = no

[user2]
 comment = Ordner von user2
 valid users =
user2
 path = /home/smb/user2/
 read only = no

[home]
 comment = Ordner von der Gruppe users
 path = /home/smb/home/
 read only = no

Die Namen in den eckigen Klammern müssen nicht die Namen der Ordner oder der Nutzer tragen. Es kann aber helfen den Überblick zu behalten.

Einige Samba Config Parameter genauer erläutert

  • coment ist für ein Kommentar da, der natürlich auch geändert werden kann. Beim einrichten von Samba auf dem Client kann diese Funktion später hilfreich sein.
  • valid users setzt den Benutzer dieser Freigabe.
  • path zeigt zu dem zugehörigen Ordner.

Die Datei kann nun mit STRG O, ENTER und STRG X gespeichert und geschlossen werden.

Nun können wie folgt die neuen Konfigurationen getestet werden bevor der Samba- Servers neu gestartet werden muss.

testparm

Falls es keine Fehlermeldung gibt, sind die Parameter korrekt gesetzt und wir können den Samba Server neu starten.

sudo service smbd restart
sudo service nmbd restart

Nun muss nur noch jeder Raspberry Pi Benutzer auch ein Samba-Benutzer werden und ein Password bekommen.

sudo smbpasswd -a <username>

Aus Sicherheitsgründen ist es auch sinnvoll die Nutzer, die nur für die Einrichtung von Samba gebraucht werden für die Nutzung auf dem Raspberry Pi zu deaktivieren. Dies ist aber natürlich optional.

useradd -s /bin/false -g users -m <username>

Mounteneines Samba Ordners unter Linux

Nun wechseln wir auf den Computer, bei dem wir später auf den Samba Server zugreifen wollen.

Voraussetzung

  • Der Samba Client muss im gleichen Netzwerk sein wie der Samba Server.
  • Die IP-Adresse des Samba Servers muss bekannt und fest sein.
  • Die Zugangsdaten müssen bekannt sein.
  • Der Samba Client kann den Samba Server per Ping erreichen.
    Ping <PI-ADRESSE>

Benötigte Pakete

Es sollten die Pakete cifs, cifs-utils und smbclient installiert sein.

sudo apt-get install cifs-utils sudo apt-get install smbclient

Erste Verbindung zum Samba Server aufbauen

Mit dem Paket smbclient und den oben genannten Daten ist es sehr einfach nun eine Verbinden mit dem Samba Server aufzubauen.

smbclient -U <username> -L //<IP-Adresse>/

Anschließend wird nach dem Password des Benutzers gefragt.

Nach der korrekten Eingabe der Zugangsdaten müsste nun eine Tabelle erscheinen, in der die auf dem Samba Server eingerichteten Ordner und die Kommentare zusehen sein müssten. Falls dies nicht geschieht müssten die oben genannten Daten nochmal überprüft werden und ggf. die oben beschriebenen Schritte zum Einrichten des Samba Servers nochmal durchgegangenen werden.

Ordner mit Samba Server mounten

Nun sollte ein neuer Ordner erstellt werden, der zum mounten verwendet wird.

mkdir <Ordner>

Anschließend kann dieser Ordner mit einem Samba-Ordner verbunden werden. Dazu werden die Parameter gid5 und uid6 benötigt, die in den folgenden Befehl eingesetzt werden müssen.

sudo mount -t cifs -o user=<Samba Benutzer>, gid=<gid>, uid=<uid> //<IP-Adresse>/<Samba Ordner> </Pfad/zum/erzeugten/Ordner>
  • gid (Groupe ID) Die gid wird dazu benötigt die Gruppe des gemounteten Ordners auf den Linux Client PC zu setzten. Die gid kann durch den Befehl ip -g <username> herausgefunden werden.
  • uid (User ID) Die uid wird dazu benötigt den Besitzer des gemounteten Ordners auf dem Linux Client PC zu setzten. Die uid kann durch den Befehl ip –u <username> herausgefunden werden.

Jedoch ist dies nur eine temporäre Verknüpfung, die nach jedem Start des Computers wiederholt werden müsste. Im folgenden Absatz werden wir uns die Einrichtung eines dauerhaften Mountpoints anschauen.

Anlegen eines dauerhaften Mountpoints

Zum Anlegen eines dauerhaften Mountpoints musst die Datei /etc/fstab bearbeitet werden. Um dies zu erreichen, können wir mit dem folgenden Befehl durch den Editor nano die Datei öffnen.

sudo nano /etc/fstab

Nun fügen wir folgenden Befehl mit den selben Parameter wie beim vorangegangenen Befehl an das Ende der Datei hinzu.

//<IP-Adresse>/<Samba Ordner>  </Pfad/zum/erzeugten/Ordner>  cifs  username=<Samba Benutzer>, password=<Samba Password>, gid=<gid>, uid=<uid>  0  0

Vor dem Eintrag sollte außerdem noch ein kleiner Kommentar verfasst werden, um diesen Befehl verständlicher zu machen. Jeder Kommentar beginnt mit einem #.

Die Datei kann nun mit STRG O, ENTER und STRG X gespeichert und geschlossen werden.

Mit dem Befehl folgenden Befehl können alle Mountpoints in der bearbeiteten Datei gemountet werden.

Sudo mount -a

Falls ein Fehler auftreten sollte, muss der Eintrag überprüft werden.

Jetzt können wir noch einen Reboot durchführen, um uns endgültig zu vergewissern, dass alles funktioniert.

Samba Ordner unter Windows einbinden

Voraussetzung

  • Der Samba Client muss im gleichen Netzwerk sein wie der Samba Server.
  • Die IP-Adresse des Samba Servers muss bekannt und fest sein.
  • Die Zugangsdaten müssen bekannt sein.

Der Samba Client kann der Samba Server per Ping erreichen.

Ping <PI-ADRESSE>

Verbindung aufbauen

Öffne dazu zuerst den Dateimanager und gehe zu „This PC“ (wie folgendes Bild zeigt). Nun kannst du unter „Computer“ und „Map network driver“ – „Map network drive“ auswählen.

Nun erscheint ein neues Fenster mit der Aufforderung einen Ordner anzugeben. Dort kann man den gewünschten Laufwerksbuchstaben und, wie das darunter zusehende Beispiel, die IP des Raspberry Pi mit dem zu verbindenden Ordner angeben. Dabei ist folgendes Schema zu beachten: \\<IP-Adresse>\<Ordner>

 

Nachdem die Daten eingetragen wurden, kommt man durch den Knopf „Finish“ zum Login.

Nach dem korrekten Login kann nun auf den Ordner des Samba Servers zugegriffen werden.

Auf Samba Ordner über das Smartphone zugreifen

Nachdem wir nun einen Linux PC, wie auch ein Windows PC mit den Samba Server verknüpft haben, ist es auch manchmal hilfreich direkt vom Handy aus auf den Samba Server zugreifen zu können. Dazu empfehle ich die App Datei-Manager, weil man mit dieser nicht nur einfacher auf Dateien zugreifen kann, sondern auch weitere Speicherressourcen im Netzwerk einbinden kann.

Nach dem öffnen der App kann man nun zu „Remote“ navigieren und dort über das Plus „SMB“ unter den vielen Optionen auswählen. Anschließen kann man sich mit der IP-Adresse des Samba Servers und einem Benutzer einloggen.

Neben Samba kann man dort auch über sftp einen Rechner, ein NAS im Netzwerk oder über WebDAV ein Speicherort aus dem Internet einbinden.

Meine Quelle

 

Cookie Consent mit Real Cookie Banner