Solaris NFSv4
um unter Solaris ein ZFS Dataset via NFS freizugeben reicht folgender Befehl aus:
zfs set sharenfs=ro=plex.intra.net,root=plex.intra.net data/oliver
ro kann dabei natürlich durch rw ersetzt werden. hinter den Parametern ro/rw/root kann man mit = IP/FQDN/@Subnet die Rechner eingrenzen die Zugriff haben sollen.
z.b. ro=@192.168.0.0/24,rw=plex.intra.net,root=192.168.0.16
Wichtig dabei ist, den root Parameter zu setzen, nur dann darf ein anderes System mounten! (sollte wohl anders sein)
gemountet wird dann mit
mount -t nfs4 galactica:/data/oliver /mnt -v
NFSv4 arbeitet nur noch mit usernamen, nicht mehr mit uids/gids. Daher können die uid und gid eines users auf dem Server und den Clients unterschiedlich sein, nur der Name ist ausschlaggebend. Um das Mapping zwischen den Namen und den IDs kümmert sich der rpc.ipmapd (Linux), nfsmapid (Solaris) bzw. nfsuserd (FreeBSD). Bei allen Clients und Servern muss die gleiche Domain gesetzt werden damit das Mapping klappt. In meinem Beispiel intra.net.
Unter openSUSE in /etc/idmapd.conf:
Domain = intra.net
Unter Solaris:
sharectl set -p nfsmapid_domain=intra.net nfs zum überprüfen: sharectl get -p nfsmapid_domain nfs
Anstatt einer UID (z.B. 103, 1000) wird nun der Name (z.B. Oliver@intra.net) übertragen.
Falls Probleme auftreten sollte man mal versuchen auf Solaris seite in der /etc/nfssec.conf die Zeile mit # AUTH_NONE auszukommentieren. Hier scheint die absprache mit Linux über die zu verwendende Auth-Methode nicht zu klappen.
siehe: http://blogs.fau.de/anfalas/2009/09/22/nfs-security-mit-opensolaris-client-und-linux-server/