Das Raspberry Pi Compute Module 4 und 5 (im Folgenden CM4 und CM5) kann auch als Dateiserver fungieren, auf den sowohl von Windows als auch von macOS aus über den Samba-Dienst zugegriffen werden kann.
Er fungiert als Server und ermöglicht mehreren Client-PCs den gleichzeitigen Zugriff auf Dateien.
Der Samba-Dienst allein ist praktisch für die schnelle Dateifreigabe innerhalb des Hauses sowie für den internen Gebrauch.
Die Einstellungen für die Dateiberechtigung mögen etwas kompliziert erscheinen, aber wir haben versucht, sie anhand konkreter Beispiele so einfach wie möglich zu erklären.
Wenn Sie den Code in der Reihenfolge des Artikels ausführen, wird er funktionieren, also probieren Sie ihn bitte aus.
Die Umwelt dieser Zeit
Voraussetzung für die Installation von Samba ist, dass das Betriebssystem des Raspberry Pi bereits gebootet und der Ersteinrichtungsassistent abgeschlossen wurde.
- Raspberry Pi CM4 (eMMC32GB, 8GB RAM) Raspberry Pi OS bookworm
Raspberry Pi CM5 (eMMC64GB, 8GB RAM) Ubuntu 24.04LTS - Verbinden Sie den Router mit einem kabelgebundenen LAN-Kabel
- Tastatur und Monitor anschließen
Die freizugebenden Ordner wurden auf die folgenden Bedingungen eingestellt
- Gemeinsame Ordner werden direkt unter /home in der eMMC erstellt
Es handelt sich um eine Umgebung, auf die mit einer bestimmten Benutzerauthentifizierung zugegriffen wird.
Diesmal befindet sie sich nicht in einem Laufwerk, das gemountet werden muss, wie z.B. eine externe Festplatte, so dass Sie den Betrieb sofort nach der Installation des Betriebssystems testen können.
Die Netzwerkverbindung wird für kabelgebundenes LAN empfohlen, da nur ein LAN-Kabel angeschlossen werden muss.
Für Wi-Fi konfigurieren Sie bitte Ihren Heimrouter (im Haus) für die Teilnahme vor.
Am einfachsten ist es, wenn Sie eine Tastatur, eine Maus und einen Monitor bereitstellen und diese über ein kabelgebundenes LAN mit dem Netzwerk verbinden.
Es ist auch möglich, das Raspberry Pi OS lite zu verwenden und nur mit einer Wi-Fi-Umgebung und einer SSH-Verbindung zu arbeiten. Allerdings fehlen in der lite-Version viele Module und Bibliotheken, so dass das Gleiche wie in diesem Artikel nicht funktioniert. Bitte seien Sie vorsichtig.
Der Inhalt des Artikels wird mit CM4+Raspberry Pi OS erklärt.
Es wurde zusätzlich auf CM5+Ubuntu24.04LTS getestet.
Teilweise war die Autorisierung der freigegebenen Dateien unter Ubuntu anders, aber der Rest der Operation war derselbe wie im Artikel beschrieben. Führen Sie einfach die Befehle aus, um es zu erstellen. Bitte probieren Sie es aus.
Samba installieren
Installieren Sie zunächst Samba über die Befehlszeile.
Wenn Sie über eine Desktop-Umgebung verfügen, arbeiten Sie in einer Terminal-Anwendung; dasselbe gilt für eine CUI-Umgebung (nur Befehlszeile) oder eine SSH-Verbindung.
apt updateist das einzige, was Sie zuerst tun müssen. Es ist wichtig, die Installationsquelle aktuell zu halten, um unerwünschte Fehler zu vermeiden.
In diesem Fall werden wir auch full-upgradeausführen, bevor wir das Samba-Paket installieren.
sudo apt update
sudo apt full-upgrade
sudo apt install samba samba-common-bin smbclient cifs-utils
Obwohl für die Samba-Installation selbst nur apt install samba erforderlich ist, ist es bequem, sie wie oben beschrieben als Set zu installieren.
Die dieses Mal bestätigte Version von Samba ist Series 4.
samba --version
Version 4.17.12-Debian
Erstellen Sie ein eigenes gemeinsames Verzeichnis
Raspberry Pi OS installiert auf CM4/5 interner eMMC. Ich werde die Dateien darin freigeben.
Erstellen Sie ein gemeinsames Verzeichnis (Ordner), damit es von anderen Rechnern aus angezeigt und bearbeitet werden kann.
Ich habe es der Übersichtlichkeit halber „share“ genannt.
Hier wird es direkt unter /home auf der gleichen Ebene wie das Home-Verzeichnis erstellt.
In diesem Fall wird zur Verdeutlichung auf dem Raspberry Pi /home/shareverwendet, aber es ist besser, /srv/samba/share zu verwenden.

sudo mkdir /home/share
Der Eigentümer und die Gruppe sind zunächst root, werden aber später geändert.
Wir erstellen zunächst die Benutzer und Gruppen, die mit Samba verwendet werden sollen, und ändern dann die Eigentümerschaft, um Rechte mit erhöhter Sicherheit zu vergeben.
Benutzer anlegen und Passwörter festlegen
Wenn der in smb.conf konfigurierte gemeinsame Ordner in der Netzwerkliste der anderen Rechner erscheint, ist er zugänglich.
Sie können sie als Gäste zugreifen lassen, aber dieses Mal werden wir einen neuen Benutzer erstellen, der authentifiziert werden muss.
Zu meiner großen Verwirrung wird Samba oft mit dem gleichen Anmeldenamen wie das Raspberry Pi-Betriebssystem beschrieben (z.B. pi), was sehr verwirrend sein kann.
Sie können denselben Benutzer wie den Benutzer auf dem Raspberry Pi OS verwenden, aber es ist besser, einen separaten Benutzer speziell für Samba zu erstellen und den Benutzer mit diesem Benutzernamen und Passwort auf das System zugreifen zu lassen.
Dieser Benutzer muss jedoch zuerst auf dem Raspberry Pi OS angelegt werden.
Benutzer zur Systemseite hinzufügen
Die Registrierung eines neuen Benutzers, der nicht auf der Betriebssystemseite angemeldet ist, wird vor smbpasswd durchgeführt.
Erstellen Sie einen neuen Benutzer als dedizierten Benutzer für die Verwendung mit Samba.
Da es sich um einen dedizierten Benutzer handelt, muss er nicht in der Lage sein, sich beim Raspberry Pi-Betriebssystem anzumelden, daher habe ich ihn mit Optionen erstellt (kein Home-Verzeichnis, keine Anmeldeoption).
sudo adduser --system --group --no-create-home ユーザー名
Wenn er ausgeführt wird, sieht er wie folgt aus.
sudo adduser --system --group --no-create-home cm4smb
システムユーザ `cm4smb' (UID 111) を追加しています...
新しいグループ `cm4smb' (GID 123) を追加しています...
新しいユーザ `cm4smb' (UID 111) をグループ `cm4smb' に追加しています...
Not creating `/nonexistent'.
Es ist möglich, den angemeldeten Benutzer (z.B. pi) zu einem Samba-Benutzer zu machen, aber das würde die Dinge kompliziert machen, wenn Sie Berechtigungen trennen oder Protokolle einsehen möchten. Natürlich ist dies auch für Sicherheitszwecke ungeeignet.
Wenn es nur innerhalb eines geschlossenen Haushalts von einer Person verwendet wird, ist es einfach und ich habe es anfangs oft benutzt.
Obwohl es nur anfangs lästig ist, ist es nicht empfehlenswert, den angemeldeten Benutzer zu einem Samba-Benutzer zu machen, denn es ist einfacher, das Gegenteil zu verstehen, wenn die Benutzer getrennt sind.
Benutzer und Kennwörter für Samba einrichten
Nachdem wir nun einen neuen Benutzer (in diesem Fall cm4smb) auf der Betriebssystemseite hinzugefügt haben, können wir ihn nun zu Samba hinzufügen.
sudo smbpasswd -a cm4smb
Nach der Ausführung werden Sie aufgefordert, ein Passwort festzulegen.
Es ist eine gute Idee, ein neues Passwort getrennt von dem Benutzer festzulegen, der sich gerade anmeldet.
New SMB password:
Retype new SMB password:
Added user cm4smb.
Fahren Sie fort, um den von Ihnen erstellten Benutzer zu aktivieren.
sudo smbpasswd -e cm4smb
Zur Gruppe sambashare hinzufügen
Fügen Sie den lokalen Benutzer (in diesem Fall raspida) und den von Ihnen erstellten Benutzer (in diesem Fall cm4smb) zur Gruppe sambasharehinzu.
sambashare ist bei dieser Installation von Anfang an vorhanden. Wenn Sie ihn nicht haben, erstellen Sie ihn. ( sudo addgroup sambashare)
sudo usermod -aG sambashare raspida
# 現セッションを変更して反映
newgrp sambashare
# もしくはログオフ、再起動
Auf diese Weise kann ein mit dem Raspberry Pi OS angemeldeter Benutzer (in diesem Fall raspida) lokal auf das Verzeichnis zugreifen, auch wenn das Verzeichnis die Berechtigung 0770 hat, da er zur selben Gruppe gehört.
Erteilen von Berechtigungen für das erstellte Verzeichnis
Die Berechtigungen (Permissions) des Verzeichnisses /home/share, das Sie gerade erstellt haben, sollten 0770 sein.
Wenn Sie sich in einer vollständig lokalen Umgebung befinden, sind die vollen Berechtigungen von 0777 für Sie vielleicht nicht von Belang, aber wir werden mit 0770 fortfahren.
Wenn Sie später unter smb.conf eine sambashare-Gruppe einrichten, haben Sie vollen Zugriff wie die Berechtigungen der Eigentümergruppe.
Die Berechtigung lautet 0770, der Besitzer ist der neu erstellte Benutzer und die besitzende Gruppe ist sambashare.
sudo chmod 0770 /home/share
sudo chown cm4smb:sambashare /home/share
Nun haben wir die Vorarbeit geleistet.
Lassen Sie uns als nächstes die Konfigurationsdatei bearbeiten ( smb.conf).
Hinzufügen zur Samba-Konfigurationsdatei (.conf)
Die Samba-Konfiguration ist unter smb.conf zu beschreiben. Normalerweise gibt es keine grafische Oberfläche.
Sichern Sie die Standard-Conf-Datei, die von Anfang an existiert.
Wenn Sie einen Fehler machen und später den Überblick verlieren, können Sie ihn mit einem Schlag rückgängig machen.
Sicherung der conf-Dateien
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
Beschreibung in smb.conf
Wir werden beschreiben, wie wir auf den gemeinsamen Ordner unter smb.conf zugreifen wollen.
sudo nano /etc/samba/smb.conf
Legen Sie die folgenden Bedingungen fest
/home/share → Ich möchte eine Verbindung herstellen und mit dem hinzugefügten Benutzer und Passwort lesen/schreiben können
Fügen Sie die folgende Konfiguration in die letzte Zeile der geöffneten conf-Datei ein.
[share]
comment = Share
path = /home/share
browseable = Yes
read only = No
valid users = cm4smb
force group = sambashare
create mask = 0666
; force create mode = 0666
directory mask = 0777
Das Freigabeverzeichnis ist auf valid users = cm4smbeingestellt, weil wir es so einrichten wollen, dass nur der Benutzer, der es erstellt hat (cm4smb), Verbindungen herstellen kann.
Da es sich jedoch auch in der Gruppe sambashare ( force group = sambashare) befindet, können auch lokale Benutzer (in diesem Fall raspida) darauf zugreifen, und kein anderer Samba-Benutzer.
Ich erkläre es in der Reihenfolge von oben nach unten.
Da der Ordner dieses Mal auf SHARE eingestellt war, wurde auch der Name des Abschnitts auf denselben [share] eingestellt.
| Einstellung (eines Computers oder einer Datei, etc.) | Beschreibung. |
|---|---|
comment= | Ein Kommentar, der angezeigt wird, wenn die Datei im Dateibrowser betrachtet wird. Er kann weggelassen werden. |
path = | Der erstellte SHARE-Ordner wird durch einen absoluten Pfad angegeben. |
browsable = | Setzen Sie auf Ja, um die Datei im Dateibrowser anzuzeigen (zu durchsuchen). Wenn Sie die Datei nicht anzeigen möchten, setzen Sie sie auf Nein. |
read only = | Es wird lesbar und beschreibbar mit no, was gleichbedeutend ist mit writable = yes. read onlyDie Grundeinstellung ist, dass Sie es mit |
valid users = | Für den angegebenen Benutzer ist eine Authentifizierung erforderlich. |
force group = | Lokale Benutzer, die der gleichen Gruppe angehören, können ebenfalls auf das System zugreifen. |
create mask = | Da es sich um eine Maske handelt, hat sie eine etwas andere Bedeutung als die tatsächlichen Dateiberechtigungen. Dies ist der maximale Wert, der nach der Berechnung der Berechtigung gewährt werden kann. |
directory mask = | Dies ist eine verzeichnisseitige Einstellung, die die gleiche Bedeutung wie create mask hat. |
;force create mode = | Setzen Sie dies, wenn Sie die angeforderte Berechtigung erzwingen möchten (z.B. 0666). |
*Ein Semikolon (;) in smb.conf kommentiert eine Einstellung aus. Ein Schrägstrich (#) kommentiert eine Zeichenkette aus.
force group = sambasharezu sambashare. Dadurch können lokale Benutzer, die der gleichen Gruppe angehören, darauf zugreifen.
create mask = 0666und directory mask = 0777sind Masken, so dass sich ihre Bedeutung leicht von den tatsächlichen Dateiberechtigungen unterscheidet.
Wenn Sie die gewünschten Berechtigungen (z.B. 0666) erzwingen wollen, müssen Sie zusätzlich force create mode = 0666 schreiben.
Es ist mit einem Semikolon auskommentiert, aber Sie können es bei Bedarf entfernen, um es zu aktivieren.
Ich werde nicht näher auf die Maske eingehen, aber ich habe sie angegeben, weil der Standardwert 0744 und 0755 in Raspberry Pi OS und Ubuntu’s Samba ist.
Die Erstellungsmaske muss auch entsprechend den Berechtigungen des erstellten gemeinsamen Ordners und den Berechtigungsregeln, die Sie gewähren möchten, geändert werden.
*Ein Semikolon (;) in smb.conf kommentiert eine Einstellung aus. Ein Schrägstrich (#) kommentiert eine Zeichenkette aus.
Conf-Datei prüfen
Überprüfen Sie die Datei smb.conf, die Sie angehängt haben, auf Fehler. testparmDer Befehl ist ein sehr einfaches Programm zur Überprüfung der conf-Datei.
testparm
Loaded services file OK.Wenn Sie eine Fehlermeldung erhalten, ist dies in Ordnung.
Wenn es Fehler gibt, korrigieren Sie diese bitte. Sie werden wahrscheinlich doppelte Leerzeichen, Rechtschreibfehler usw. finden. Dies dient dazu, Fehler zu finden.
Damit ist die gesamte Einrichtung abgeschlossen.
Samba-Dienst neu starten
Da nun alles eingerichtet ist, starten Sie nur den Dienst neu, nicht das System. Es ist in Ordnung, das System neu zu starten.
sudo systemctl restart smbd nmbd
Greifen Sie von einem anderen PC/Mac darauf zu, um zu sehen, ob es funktioniert.
Versuchen Sie den Zugriff von einem anderen Rechner aus
Geben Sie die Adresse des Raspberry Pi mit installiertem Samba in das Adressfeld des Windows Explorers ein.
Wenn Sie unter macOS arbeiten, verwenden Sie die Befehlstaste (⌘) + K im Finder, um das Adressfeld für die Verbindung mit dem Server einzugeben.

Windows: ¥¥192.168.1.12
macOS:smb://192.168.1.12
Alternativ können Sie auch einen Hostnamen anstelle einer IP-Adresse verwenden.
Windows: ¥¥rpicm4.local
macOS:smb://rpicm4.local
smb.confWenn Sie browsable = noauf eingestellt haben, können Sie eine Verbindung herstellen, indem Sie direkt den entsprechenden Path (Pfad) angeben. ( ¥¥rpicm4.local¥share)
Versuchen Sie, eine Datei zu schreiben
Ich habe jede der entsprechenden Dateien von meinem PC/Mac kopiert.
Was die Berechtigungen und Eigentümer betrifft, so gehören die Dateien jetzt wie konfiguriert cm4smb:sambashareund die Dateiberechtigungen sind 666.
Das Verzeichnis hat den Wert 777.
Das von dem lokalen Benutzer (raspida) erstellte Verzeichnis hat den Eigentümer und die Gruppe raspidaund die Berechtigungen 755.

Versuchen Sie, auch in Ihrer lokalen Umgebung zu browsen.browsable = YesDann sollten Sie den Inhalt sehen und lesen können.
Wenn Sie mit einer Fehlermeldung nicht auf den gemeinsamen Ordner zugreifen können, sind die Einstellungen wahrscheinlich nicht detailliert genug oder die Berechtigungen für den von Ihnen erstellten gemeinsamen Ordner sind anders.
Bitte überprüfen Sie das noch einmal.

Auf CM5 + Ubuntu 24.04 waren die Dateiberechtigungen sogar bei den gleichen Einstellungen 664, und obwohl Sie sowohl auf Samba als auch lokal mit Gruppenberechtigungen lesen und schreiben können, waren die Ergebnisse etwas anders.
Zusammenfassung der Dateiberechtigungen (rwx)
Die Dateiberechtigungen (File Permissions), die in Mac- und Linux-Systemen häufig vorkommen, sind schwierig.
Zum Beispiel ist rw-rw-rw-in diesem Fall 666 in numerischer Darstellung. Es ist ein Zustand, in dem jeder lesen und schreiben kann.
Bitte beachten Sie die folgende kurze Zusammenfassung.
Bedeutung der Erlaubnis-Symbole
| Symbol | Bedeutung | Im Falle einer Datei | Im Falle eines Verzeichnisses |
|---|---|---|---|
| Radius | lesen | Lesbar (Inhalt wird angezeigt) | Kann eine Liste von Dateien im Verzeichnis |
| LOL | Schreiben Sie | Beschreibbar (ändern und löschen) | Erstellen und Löschen von Dateien möglich |
| ein Unbekannter | ausführen. | Ausführbar (z.B. Programme) | Kann Programme ausführen Kann Verzeichnisse „betreten“. |
Betreff der Behörde und ls -l anzeigen
| Gegenstand (der Besteuerung, etc.) | Beschreibung. | ls -l Beispiel anzeigen |
|---|---|---|
| Besitzer(Benutzer) | Ersteller/Besitzer der Datei | rwx------ Die ersten 3 Zeichen von |
| Gruppe | Gruppenmitglied, zu dem der Besitzer gehört | ---rwx--- Die mittleren drei Buchstaben von |
| Andere | Alle anderen Benutzer | ------rwx Die letzten 3 Zeichen von |
Numerischer Ausdruck (wird vom Befehl chmod usw. verwendet)
| Symbol | numerischer Wert | Bedeutung |
|---|---|---|
| Radius | 4 | Lesen (z.B. durch einen Scanner) |
| LOL | 2 | Eingabe (z.B. in ein Formular) |
| ein Unbekannter | 1 | Ausführung (z.B. Programm) |
Zahlen können summiert und als dreistellige Zahlen ausgedrückt werden
z.B. rwx = 4+2+1 = 7
z.B. rw-rw-rw-= 666
Beispiele für numerische Ausdrücke
| Numerisches Beispiel | Bedeutung | Beispiel für einen Befehl |
|---|---|---|
| 755 | Besitzer: Alle, Gruppen & Andere: Lesen + Ausführen | chmod 755 ファイル名 |
| 644 | Besitzer: lesen/schreiben, andere: nur lesen | chmod 644 ファイル名 |
| 700 | Alle Privilegien nur für Eigentümer | chmod 700 sample.txt |
Grund für 0770 in /home/share.
In diesem Fall wurde /home/share als 0770 autorisiert, d.h. der Eigentümer und die Gruppe haben alle Rechte und die anderen haben keine Rechte.
Dies ist auf der Seite des Betriebssystems, die sich wiederum von der von Samba unterscheidet. An dieser Stelle wird es kompliziert.
0770, d.h. ursprünglich sind andere Benutzerrechte 0, so dass es nicht möglich ist, zu lesen oder zu schreiben, aber dieses Mal hat Samba ihn in die Gruppe sambashare gezwungen.
Als die Datei geschrieben wurde, wurde sie in die Gruppe sambashare überschrieben und die Gruppenrechte (rwx=7) in 770 waren zum Lesen und Schreiben verfügbar, so dass sogar der lokale Benutzer (in diesem Fall raspida) lesen und schreiben konnte.
Wenn die Berechtigungen auf 0777 gesetzt sind, kann jeder die volle Kontrolle über das System haben und es ist nicht problematisch, aber aus Sicherheitsgründen ist es trotzdem nicht empfehlenswert. Wir möchten, dass die Berechtigungen auf der lokalen Seite (Betriebssystemseite) so wenig wie möglich auf 07777 gesetzt werden.
In diesem Fall wurde das freigegebene Verzeichnis unter 0770, auf das kein anderer Benutzer Zugriff hat, auch der Gruppe sambashare mit einem lokalen Benutzer hinzugefügt, so dass auf Samba nur cm4smb, das eine Authentifizierung erfordert, auf das Verzeichnis zugreifen kann, aber auf der lokalen Seite können auch angemeldete Benutzer dessen Inhalt bearbeiten. Auf der lokalen Seite kann sogar ein angemeldeter Benutzer den Inhalt des Verzeichnisses bearbeiten.
Es gibt viele mögliche Muster für diese Berechtigung, je nachdem, wie sie verwendet wird. Wenn Sie auf der lokalen Seite keine Berechtigungen benötigen, ist das Konzept vergleichsweise einfacher, da Sie nur die Samba-Seite berücksichtigen müssen.
Wenn Sie smb.conf ändern, müssen Sie den Dienst jedes Mal neu starten, um die Änderungen zu übernehmen.
Garbled Characters
Und schließlich, wenn Ihre Samba-Dateien unter Windows oder macOS verstümmelt sind, fügen Sie Folgendes in den Abschnitt [global]ein.
Es gibt kein Problem mit der Beschreibung, daher empfehlen wir Ihnen, sie hinzuzufügen.
#[global]の下に2行を追加。Unix系、Win系用の文字化け対策
unix charset = UTF-8
dos charset = CP932
Wenn Sie einen Server für die Dateifreigabe auf Ihrem Raspberry Pi haben möchten, reicht es aus, Samba zu installieren.
In Anbetracht der Dateizugriffsrechte war der Samba-Dienst Dateifreigabe ein wenig zu ausführlich.
Referenz: https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html
Artikel beigetragen von Raspida
Raspberry Pi-Informationsseite, die auch von Nicht-Ingenieuren genutzt werden kann raspida.com eine Raspberry Pi-Informationsseite, die auch für Nicht-Ingenieure interessant ist und mit der sie umgehen können. Er schreibt auch technische Blogartikel auf der PiLink-Website über den Raspberry Pi für den industriellen Einsatz.

