Samba
Nachdem wir im ersten Teil das NAS Laufwerk eingerichtet und per NFS exportiert haben, wollen wir jetzt mittels Samba auch der Windowswelt Zugriff geben. Ich zeige dir hier, wie du dass Verzeichnis „/Backup-Repo/public“
Das Pendat zu NFS in der Windowswelt heisst Server Message Blocks auch als Common Internet File System bezeichnet. Die Konfiguration ist dem von NFS sehr ähnlich (da es im angloamerikanischen Raum üblich ist, Abkürzung als Wort auszusprechen, wird aus SMB als Samba ausgesprochen).
Installation
Zunächst müssen wir Pakete auf unserem Raspberry Pi installieren
sudo apt update
sudo apt install samba samba-client samba-common -y
SMB-User anlegen
Du legst jetzt eine Gruppe und einen User an, unter deren Zugriffsrechten das exportierte Dateisystem verwaltet wird
sudo groupadd --system smbgroup
sudo useradd --system --no-create-home --group smbgroup -s /bin/false smbuser
Der User hat keine Verzeichnis unter /home und man kann sich nicht mit diesem Account anmelden.
Das zu exportierende Verzeichnis legst du jetzt an und vergibst die Zugriffsrechte
mkdir /Backup-Repo/public
sudo chown -R smbuser:smbgroup /Backup-Repo/public
smb konfigurieren
Für die nachfolgenden Schritte solltest du als root arbeiten
sudo su -
Für den smbuser vergibst du jetzt noch ein Passwort im SMB-Service
smbpasswd -a smbuser
Im Verzeichnis /etc/samba liegen die Konfigurationsdateien für Samba
cd /etc/samba
Die mitinstallierte Konfigurationsdatei legen wir erstmal auf Seite
mv samb.conf smb.conf.bak
Als nächstes legst du die Datei smb.conf neu an und kopierst folgenden Inhalt hinein:
[global]
server string = clancy NAS
workgroup = WORKGROUP
security = user
map to guest = Bad User
name resolve order = bcast host
include = /etc/samba/share.conf
Hier werden die globalen Konfigurationsparameter für Samba eingestellt: Der Server meldet sich mit dem Namen „clancy NAS“, die workgroup, die Windows für Netwerkoperationen benutzt ist „WORKGROUP“. Für jeden User, der sich anmelden will, muss ein Unix-Useraccount vorhanden sein. Und zu guter Letzt wird die Datei „/etc/samba/share.conf“ inkludiert, in der unser zu exportierendes Laufwerk konfiguriert ist.
Laufwerk exportieren
Genau diese Datei legen wir jetzt an:
[nas]
comment = Raspi-NAS
path = /Backup-Repo/public
read only = No
public = yes
force user = smbuser
force group = smbgroup
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
writable = yes
Der Pfad „/Backup-Repo/public“ wird hier für den User „smbuser“ zum Beschreiben freigegeben. Zur besseren Übersicht wird noch ein Kommentar vergeben. Dazu werden noch die Zugriffsrechte für neue Dateien definiert.
Starte jetzt Den Service neu, um die Konfiguration einzulesen.
systemctl restart smbd
Auf dem Client-Pi solltest du mit dem Kommando
smbclient -U smbuser -L clancy
Das exportierte Verzeichnis angezeigt bekommen.
Share einbinden
Lege jetzt auf dem Client-Pi die Datei /home/pi/.smbcredentials an (als User pi) und trage dort folgendes ein:
user=smbuser
password=<passwort>
<passwort> ist das Passwort, dass du oben mit smbpasswd
vergeben hast.
Diese Datei macht einfacher, das Share einzubinden. Um das Passwort zu schützen, darf sie nur vom User pi gelesen werden dürfen.
chmod go-rwx ~/.smbcredentials
In die Datei /etc/fstab des Clients fügst du folgende Zeile an:
//clancy/nas /mnt/raspi-nas cifs uid=1000,gid=1000,credentials=/home/pi/.smbcredentials
Statt „clancy“ trägst du den hostname deines Raspberry -Pi NAS ein, ebenso den Einhängepunkt kannst du nach deinen Bedürfnissen anpassen.
Wenn du jetzt noch das Verzeichnis für den Einhängepunkt anlegst,
sudo mkdir /mnt/raspi-nas
kannst du zu guter Letzt das Share mounten.
sudo mount /mnt/raspi-nas
Ich würde dir gerne noch ein Beispiel geben, wie das Einhängen unter Windows funktioniert. Da ich aber keinen Rechner mit Windows in meinem Netzwerk habe, muss ich dir das leider schuldig bleiben.