Inleiding
In een eerder artikel beschreef ik het inrichten van een OpenWrt-router die tevens via Samba bestanden kon delen met andere netwerkgebruikers. Op zich werkte deze setup naar behoren, maar het was een hels karwei om in te richten. Bovendien stoorden mij een aantal kleinigheden:
- Samba biedt geen ondersteuning voor twee of meer bestanden in dezelfde map die
enkel verschillen in hoofd- en kleine letters van hun bestandsnaam. Dat betekent
onder meer dat je een bestand
Document.txt
niet kan hernoemen naardOCUMENT.txt
of vice versa. - Alle bestanden hebben dezelfde lees-, schrijf- en uitvoerrechten. Met name dit laatste was altijd te zien op de commandline.
Zou er geen andere mogelijkheid bestaan om bestanden te delen in een lokaal netwerk? Liefst met ondersteuning voor hoofd- en kleine letters en bestandsrechten voor lezen, schrijven en uitvoeren.
NFS
Toen herinnerde ik me NFS
, het Network-FileSystem dat al sinds mensenheugenis
deel uitmaakt van Unix en Linux. Ik zocht en vond de documentatie om één en
ander op mijn OpenWrt-router in te richten en binnen no-time was de overstap een
feit.
In principe bestaat de installatie op de router (server) uit twee delen. Ten
eerste wordt het pakket nfs-kernel-server
geïnstalleerd. Daarna worden in
/etc/exports
de te delen mappen met hun eigenschappen ingesteld.
Exports
Als eerste wordt het pad genoteerd van de map die moet worden gedeeld. Daarna
volgt ofwel een asterisk (*
) voor ALLE netwerkgebruikers, of een reeks
IP-adressen in CIDR-notatie, of één specifiek IP-adres.
/pad/naar/map1 *(rw)
/pad/naar/map2 192.168.1.0/24(rw)
/pad/naar/map3 192.168.1.12(rw,all_squash,anonuid=1000,anongid=1000)
De opties tussen ronde haken bepalen hoe de share omgaat met lees- en
schrijfverzoeken (ro
= read-only, alleen-lezen, rw
= read-write,
lezen-schrijven). Zie ook bijvoorbeeld de manpage van exports
.
Met all_squash
, anonuid
en anongid
wordt alle lees- en schrijfverzoeken
als één gebruiker/groep uitgevoerd. Dit is voor de meeste netwerken voldoende -
zo ook het mijne.
Ubuntu en Raspbian
Op mijn client-pc's met Ubuntu was het voldoende om het pakket nfs-common
te
installeren en de Samba-regel in /etc/fstab
te vervangen door een behoorlijk
ingekorte regel met NFS.
# Oude Samba-mount
#//192.168.1.1/map /mnt/map cifs credentials=/home/ikke/.smbcreds,uid=1000,gid=1000,iocharset=utf8,nobrl,vers=2.0 0 0
# Nieuwe NFS-mount
192.168.1.1:/mnt/map /mnt/map nfs auto,_netdev 0 0
Op Raspbian, het besturingssysteem van de Raspberry Pi, moest daarnaast ook nog een extra commando worden uitgevoerd voordat de NFS-share toegankelijk is:
systemctl start rpcbind.service;