Mac OS X, Ubuntu en NFS

03-06-2008 om 22:28 uur door Wieland

NFS share onder Mac OS XIk schreef enige tijd geleden al over mijn pogingen om mijn Macbook en mijn Linuxdesktop aan elkaar te knopen via NFS. Die mislukten jammerlijk, waarna ik voor het aloude AppleTalk koos.

Dat werkte, maar echt handig was het niet: AppleTalk is behoorlijk traag en wordt door Apple zelf niet meer serieus onderhouden. Mac OS X kan er nog mee overweg omwille van de communicatie met oude systemen, maar bij de UNIX-variant die het besturingssysteem feitelijk is, hoort natuurlijk NFS.

Vorige week verving ik de dualboot-setup (Fedora Linux en Windows XP Pro) op mijn desktop door de nieuwe Ubuntu, en besloot ik het nog een keer te proberen, en dit keer met meer succes.

Voor wie met de materie worstelt, lees verder!

Installeer eerst een NFS server, bijvoorbeeld vanuit een terminal:

sudo apt-get install nfs-kernel-server

Configureer dan je shares. Open /etc/exports in je favoriete teksteditor:

sudo vi /etc/exports

De algemene syntax is simpel:

/share host(option1,option2)

Waarbij host staat voor de client(s) die je toegang wilt geven, bijvoorbeeld in de vorm van een hostname, een ip-adres of een compleet subnet.

De precieze syntax is te vinden in de manpage voor exports(5). Belangrijk is in ieder geval de 'insecure'-optie. Mac OS X verbindt met NFS via hogere poortnummers, wat NFS-servers doorgaans niet toestaan tenzij je dat expliciet instelt. Denk, voor schrijftoegang, ook aan de optie 'rw'.

NFS kent geen wachtwoordauthenticatie, maar kijkt naar de UID en GID van gebruiker van de client. Stemmen die overeen met die van de eigenaar van de share, dan heeft de gebruiker normale toegang.

Elders op internet (ik ga niet linken) wordt daarom wel geadviseerd om je UID op je Mac te veranderen. DOE DAT NIET OF WEES VOORBEREID OP GROOTSCHALIG PUINRUIMEN!

De juiste manier om dit op te lossen is via mapping. Je kunt de NFS-server opdragen om client-ID's te vertalen naar andere ID's.

De simpelste configuratie vertaalt iedere client naar dezelfde UID en GID. Welke ID's de server kiest, is gelukkig in te stellen. Gebruik daarvoor de volgende drie opties:

all_squash - vertaalt de ID's van iedere client naar dezelfde waarden
anonuid=n - zet het UID op n
anongid=n - dito voor GID

De UID/GID van de eigenaar van mijn share zijn 1000/1000, dus /etc/exports ziet er op mijn server als volgt uit:

/share host(rw,insecure,all_squash,anonid=1000,anongid=1000)

Exporteer dan je shares vanuit een terminal met:

sudo exportfs -ra

Of start of herstart de NFS-server met:

sudo /etc/init.d/nfs-kernel-server restart

Verbindt vervolgens vanuit de Finder op je Mac (Appeltje-K) met je NFS-server (nfs://server/share). Een kind kad de was doen.

Eén duit in het zakje bij 'Mac OS X, Ubuntu en NFS'

  1. Rutger reageerde:

    Ik ben opeens zo blij met mijn iMac, waar bij ik gewoon afsluit door Appeltje > Zet uit te doen ;-)

Doe een duit in het zakje

XHTML: toegestane tags: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <del datetime=""> <em> <pre> <strong>