MS Services for Unix permission problems

Ric Werme ewerme at comcast.net
Fri Apr 27 17:09:25 EDT 2007


> > I have been able to mount it with mount -t nfs SFUserver:/nfs /sfu but I
> > get
> > > the error on ls -la /sfu.
> > > A df shows the right size.
> >
> > So, "df /sfu" also works?
> 
> 
> 
> # tbuskey at bos0it-buskey:/home/tbuskey
> $ sudo mount -t nfs  bos0lt-16zmpc1:/nfs /sfu
> # tbuskey at bos0it-buskey:/home/tbuskey
> $ ls -ald /sfu
> drwxrwxrwx 2 tbuskey wheel 64 Apr 27 14:05 /sfu/
> # tbuskey at bos0it-buskey:/home/tbuskey
> $ ls -al /sfu
> ls: reading directory /sfu: Input/output error
> total 0
> # tbuskey at bos0it-buskey:/home/tbuskey
> $ df /sfu
> Filesystem            Size  Used Avail Use% Mounted on
> bos0lt-16zmpc1:/nfs    56G   15G   41G  27% /sfu

The trace you sent separately has only three ACCESS calls, all failed.
It would have been nice to see the whole dialog to compare calls that
worked with those that didn't.

> I've got SFU only doing NFSv2.
> Linux issues a GETATTR then READDIR
> SFU replies READDIR with NFSERR_ACCES

Without a trace, I have no comment other than don't bother with V2.
It would be interesting if it worked, but there is little reason to use
V2.  I don't know enough about V4 to be very helpful.

> Switch SFU to v3 & restart
> Linux issues calls: ACCESS, ACCESS, ACCESS
> SFU replies ACCESS denied to 3rd call with AUTH_ERROR
>  (client must begin new session)

You must have remounted, right?

Ethereal says about the first ACCESS call in your trace (the other two are
essentially identical):

      1 15:51:11.806138 146.58.49.13          146.58.49.215         NFS      
V3 ACCESS Call (Reply In 2), FH:0x5ab2a646

Frame 1 (202 bytes on wire, 202 bytes captured)
Ethernet II, Src: Dell_a1:7a:85 (00:11:43:a1:7a:85), Dst: 00:18:8b:bd:3d:b3 
(00:18:8b:bd:3d:b3)
Internet Protocol, Src: 146.58.49.13 (146.58.49.13), Dst: 146.58.49.215 
(146.58.49.215)
Transmission Control Protocol, Src Port: 1017 (1017), Dst Port: nfs (2049), 
Seq: 0, Ack: 0, Len: 148
Remote Procedure Call, Type:Call XID:0x00929acc
    Fragment header: Last fragment, 144 bytes
    XID: 0x929acc (9607884)
    Message Type: Call (0)
    RPC Version: 2
    Program: NFS (100003)
    Program Version: 3
    Procedure: ACCESS (4)
    The reply to this request is in frame 2
    Credentials
    Verifier
Network File System, ACCESS Call FH:0x5ab2a646

No.     Time            Source                Destination           Protocol 
Info
      2 15:51:11.806346 146.58.49.215         146.58.49.13          NFS      
V3 ACCESS Reply (Call In 1)

Frame 2 (78 bytes on wire, 78 bytes captured)
Ethernet II, Src: 00:18:8b:bd:3d:b3 (00:18:8b:bd:3d:b3), Dst: Dell_a1:7a:85 
(00:11:43:a1:7a:85)
Internet Protocol, Src: 146.58.49.215 (146.58.49.215), Dst: 146.58.49.13 
(146.58.49.13)
Transmission Control Protocol, Src Port: nfs (2049), Dst Port: 1017 (1017), 
Seq: 0, Ack: 148, Len: 24
Remote Procedure Call, Type:Reply XID:0x00929acc
    Fragment header: Last fragment, 20 bytes
    XID: 0x929acc (9607884)
    Message Type: Reply (1)
    Program: NFS (100003)
    Program Version: 3
    Procedure: ACCESS (4)
    Reply State: denied (1)
    This is a reply to a request in frame 1
    Time from request: 0.000208000 seconds
    Reject State: AUTH_ERROR (1)
    Auth State: client must begin new session (2)

Frame 2 is the reply.  "Reply State: denied (1)" is indeed a RPC-level
rejection.  These normally do not occur.  The complaint, "Auth State: client
must begin new session (2)" may be quite misleading,
http://www.ietf.org/rfc/rfc1831.txt says:

         AUTH_REJECTEDCRED = 2,  /* client must begin new session    */

The "CRED", i.e. credentials, from the request are reasonable.  I didn't
include them above, but the request has:

    Credentials
        Flavor: AUTH_UNIX (1)
        Length: 64
        Stamp: 0x001fee68
        Machine Name: bos0it-buskey
        UID: 6882
        GID: 10
        Auxiliary GIDs
            GID: 10
            GID: 103
            GID: 104
            GID: 105
            GID: 156
            GID: 505
            GID: 55500

The UID/GID stuff shouldn't be rejected by RPC, it should just
be passed to NFS.  "Stamp: 0x001fee68" might be bogus, I think that should
be the Unix time, but the server may ignore it.  I'm not sure what to make
of the "client must begin new session" comment, I'd expect that to only
be used if AUTH_KERB was in use.

SFU's NFS support came from a vendor whose name I forget, but it was at
a time before NFS over TCP was common.  You might try using NFS over UDP.
Beyond that, time for Google, Microsoft Support, or someone who knows
more about Windows and SFU than I do.  Or Samba.

	-Ric Werme




More information about the gnhlug-discuss mailing list