Serie: NAS mit ODROID-HC4 - Teil 4: Samba

Mi, 13. Oktober 2021, Martin Brodbeck

Mit dieser Artikelserie soll das Einrichten eines kleinen, günstigen NAS erläutert werden. Linux basierte Clients im Haushalt sollen darauf ihre Backups ablegen. Damit eine defekte NAS-Festplatte keinen Daten-GAU verursacht, werden die Daten per RAID1 gespiegelt. Der generische Ansatz (kein Fertigsystem) soll uns dabei helfen, auch andere Wünsche an das NAS zu erfüllen, wie z. B. ein Calibre Server.

Es sind folgende Teile geplant:
1. Hardware und Betriebssystem
2. Backups mit Borg
3. Calibre Server
4. Samba Server

Subvolume @samba

Wie schon für den Borg Backup- und den Calibre-Teil, erstellen wir auch hier ein Subvolume, dediziert für unseren Samba Dienst:

# mkdir /mnt/temp
# mount /dev/sda /mnt/temp
# btrfs subvolume create /mnt/@samba
# umount /mnt/temp

Damit das Subvolume automatisch eingehängt wird, erstellen wir noch das Verzeichnis /mnt/samba und fügen folgenden Eintrag in /etc/fstab hinzu:

[…]
/dev/sda1 /mnt/samba btrfs defaults,nofail,noatime,compress=zstd,subvol=@samba 0 0

Die Optionen können natürlich nach Belieben modifiziert werden. Ich habe mich für eine Kompression mittels des zstd-Algorithmus entschieden. nofail bewirkt, dass das System auch startet, wenn es beim Einhängen Probleme gibt.

Wenn man sich einen Reboot ersparen will, mountet man das Subvolume nun einfach einmalig mit mount /mnt/samba (als root).

Samba

Zuallererst wird das samba Paket mit apt install samba (als root) installiert. Samba verlangt, dass zu einem Samba-Nutzer auch immer ein Linux-Nutzer vorhanden ist. Der Linux-Nutzer muss sich nicht am System anmelden können. Er muss lediglich existieren. Also erstellen wir zunächst zwei Linux- und danach die entsprechenden Samba-Nutzer:

# useradd -s /bin/false bob
# useradd -s /bin/false alice
# smbpasswd -a bob
New SMB password:
Retype new SMB password:
Added user bob.
# smbpasswd -a alice
New SMB password:
Retype new SMB password:
Added user alice.

Da unser NAS für die Familie gedacht ist, und man sich ggf. gegenseitig Dateien verfügbar machen möchte, richten wir noch eine Gruppe familie für die Linux-Nutzer ein:

# groupadd familie
# usermod -a -G familie bob
# usermod -a -G familie alice

Exemplarisch richten wir nun zwei Shares ein. Einen familie Share, der zum Austausch von Dateien dient. Alle Mitglieder der Familie haben Lese- und Schreibrechte für alle Dateien. Und wir richten noch einen media Share ein. Dieser gehört nur einem Nutzer. Falls später noch weitere (Lese-)Zugriff darauf bekommen, sollen die Dateien vorausschaunder Weise auch für die Gruppe familie lesbar sein. Zunächst also erstellen wir die entsprechenden Verzeichnisse und setzen komplette Lese- und Schreibrechte:

# mkdir /mnt/samba/{familie,media}
# chmod 0777 /mnt/samba/{familie,media}

Nun erstellen wir die Samba-Konfigurationsdatei und sichern vorher noch die Originaldatei:

# mv /etc/samba/smb.conf /etc/samba/smb.orig
[global]
workgroup = WORKGROUP
security = user
map to guest = bad password

[familie]
path = /mnt/samba/familie
public = yes
writable = yes
comment = smb share
printable = no
guest ok = yes
force group = familie
valid users = @familie
create mask = 0660
directory mask = 0770

[media]
path = /mnt/samba/media
writable = yes
printable = no
guest ok = no
valid users = bob
create mask = 0640
directory mask = 0750
force user = bob
force group = familie

Nach einem Neustart der Samba-Dienste stehen unsere Shares zur Verfügung:

# sudo systemctl restart smbd.service
# sudo systemctl restart nmbd.service

Nun können die Shares aus dem Heimnetz eingehängt und verwendet werden.

Damit ist das vorläufige Ende der Artikelserie rund um das ODROID-HC4 basierte NAS erreicht. Meistens wird sich das NAS langweilen. Bei dem geringen Stromverbrauch, der sich durch Einsatz von SSDs natürlich noch einmal deutlich verringern liesse, ist das jedoch nicht weiter tragisch. Vielleicht wird es gelegentlich noch weitere Teile geben, wo noch Details besprochen oder weitere Dienste eingerichtet werden.