On 10/19/07, Jan Stary <[EMAIL PROTECTED]> wrote:
> > > > Again: set WRKOBJDIR on the client side and you don't need
> > > > to be writing in the remotely mounted tree at all.
>
> > I'm already setting WRKOBJDIR outside nfs-dir, the problem is more for
> > /usr/ports/packages .. i'd like it to be shared too, to install the
> > same package on various sparc64 for example. And this dir needs to be
> > root-writable, as it uses sudo..
>
> You also need to set DISTDIR and PKGREPOSITORYBASE
> - see examples in the FAQ.

I now several workarounds and tweaks like this exists :) I just want
to understand why this setup doesn't work.

> > I'd put it outside nfs if i don't find a solution, but btw i'm more
> > interested in understanding why -maproot=root doesn't work in my case
>
> Send your complete server:/etc/exports, client:/etc/fstab,
> verbose log of server:mountd, server:nfsd, and a full (-s 65000) tcpdump
> of the communication.

server is spud, client for tests is renton (10.246.200.10).
server:/etc/exports:
/nfsroot/net_sparc64 -ro allison
/nfsroot/open_sparc64 -ro swanney
/usr/ports -maproot=0:0 renton swanney lizzy

client fstab:
spud:/usr/ports /usr/ports nfs rw,nosuid 0 0

mountd -d output:
Got line /nfsroot/net_sparc64 -ro allison
Making new ep fs=0x0,0xfc214a5e
doing opt -ro allison
got host allison
exporting /nfsroot/net_sparc64
Got line /nfsroot/open_sparc64 -ro swanney
Found ep fs=0x0,0xfc214a5e
doing opt -ro swanney
got host swanney.fr.homeunix.org
exporting /nfsroot/open_sparc64
Got line /usr/ports -maproot=0:0 renton swanney lizzy
Found ep fs=0x0,0xfc214a5e
doing opt -maproot=0:0 renton swanney lizzy
got host renton.fr.homeunix.org
got host swanney.fr.homeunix.org
got host lizzy.fr.homeunix.org
exporting /usr/ports
exporting /usr/ports
exporting /usr/ports
unexporting / /
Getting mount list.
Here we go.
Got mount request from 10.246.200.10
rpcpath: /usr/ports
Mount successful for /usr/ports by 10.246.200.10.

(here i've ran sudo mount /usr/ports on the client)

renton:~/ $ls -ld /usr/ports
drwxrwxr-x  47 root  wsrc  1024 Oct 19 19:12 /usr/ports (same on
client and server)
renton:~/ $id
uid=1000(landry) gid=1000(landry) groups=1000(landry), 0(wheel), 9(wsrc)
renton:~/ $touch /usr/ports/test
renton:~/

Here i have tcpdump output (same for server and client) for this
sucessful file creation :
19:56:29.030254 renton.695 > spud.nfsd: xid 0xbb06905b (NFSv3) 112
lookup fh 33,252/664798720 "test"
19:56:29.030771 spud.nfsd > renton.695: xid 0xbb06905b reply ok 116
lookup ERROR: No such file or directory
19:56:29.030843 renton.695 > spud.nfsd: xid 0xbb069116 (NFSv3) 112
lookup fh 33,252/664798720 "test"
19:56:29.031099 spud.nfsd > renton.695: xid 0xbb069116 reply ok 116
lookup ERROR: No such file or directory
19:56:29.031131 renton.695 > spud.nfsd: xid 0xbb069170 (NFSv3) 144
create fh 33,252/664798720 "test"
19:56:29.033013 spud.nfsd > renton.695: xid 0xbb069170 reply ok 268
create fh 33,252/3064333824
19:56:29.033097 renton.695 > spud.nfsd: xid 0xbb069202 (NFSv3) 104
getattr fh 33,252/3064333824
19:56:29.033363 spud.nfsd > renton.695: xid 0xbb069202 reply ok 112
getattr REG 644 ids 1000/9 sz 0x0

Now i try to update attrs, it fails :
renton:~/ $sudo touch /usr/ports/test
touch: /usr/ports/test: Permission denied

19:57:52.066602 renton.695 > spud.nfsd: xid 0xbb0692d4 (NFSv3) 128
lookup fh 33,252/664798720 "test"
19:57:52.067288 spud.nfsd > renton.695: xid 0xbb0692d4 reply ok 236
lookup fh 33,252/3064333824
19:57:52.067380 renton.695 > spud.nfsd: xid 0xbb069303 (NFSv3) 124
access fh 33,252/664798720 0002
19:57:52.067688 spud.nfsd > renton.695: xid 0xbb069303 reply ok 120
access c 0002
19:57:52.067725 renton.695 > spud.nfsd: xid 0xbb0693f4 (NFSv3) 148
setattr fh 33,252/3064333824
19:57:52.068015 spud.nfsd > renton.695: xid 0xbb0693f4 reply ok 144
setattr ERROR: Permission denied
19:57:52.068051 renton.695 > spud.nfsd: xid 0xbb06947e (NFSv3) 124
access fh 33,252/664798720 0002
19:57:52.068299 spud.nfsd > renton.695: xid 0xbb06947e reply ok 120
access c 0002
19:57:52.068326 renton.695 > spud.nfsd: xid 0xbb06952e (NFSv3) 148
setattr fh 33,252/3064333824
19:57:52.068605 spud.nfsd > renton.695: xid 0xbb06952e reply ok 144
setattr ERROR: Permission denied

Now i try to create another file, it fails :
renton:~/ $sudo touch /usr/ports/test2
touch: /usr/ports/test2: Permission denied

19:58:24.546477 renton.695 > spud.nfsd: xid 0xbb0695bf (NFSv3) 132
lookup fh 33,252/664798720 "test2"
19:58:24.547033 spud.nfsd > renton.695: xid 0xbb0695bf reply ok 116
lookup ERROR: No such file or directory
19:58:24.547166 renton.695 > spud.nfsd: xid 0xbb06960d (NFSv3) 132
lookup fh 33,252/664798720 "test2"
19:58:24.547430 spud.nfsd > renton.695: xid 0xbb06960d reply ok 116
lookup ERROR: No such file or directory
19:58:24.547475 renton.695 > spud.nfsd: xid 0xbb069643 (NFSv3) 164
create fh 33,252/664798720 "test2"
19:58:24.547777 spud.nfsd > renton.695: xid 0xbb069643 reply ok 60
create ERROR: Permission denied

(btw, as root on server i can touch/create files in /usr/ports)
I suppose next step is ktrace'ing nfsd, as it has no -d/debug/verbose
option... i really have no idea what doesn't work. Tried with
maproot=root and =0 too.

Thanks for any help.

Landry

Reply via email to