public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] NFS: Change default behavior when "sec=" is not specified by user
Date: Tue, 01 Sep 2009 15:31:19 -0400	[thread overview]
Message-ID: <1251833479.18608.69.camel@heimdal.trondhjem.org> (raw)
In-Reply-To: <D11105A9-4FAB-4F5C-BF02-BE489520C150@oracle.com>

On Tue, 2009-09-01 at 14:58 -0400, Chuck Lever wrote:
> On Sep 1, 2009, at 2:25 PM, Trond Myklebust wrote:
> > On Tue, 2009-09-01 at 14:07 -0400, Chuck Lever wrote:
> >> OK, one more corner case.
> >>
> >> What if the mount doesn't specify "sec=" and the only flavor in the
> >> server's auth list is AUTH_NULL?  Seems like we should allow that  
> >> one.
> >
> > Amend the above statement to "the only flavour in the server's auth  
> > list
> > that is supported by the client", and I'll agree.
> 
> > If a server advertises auth_dh, auth_krb4 and auth_null, then we  
> > should
> > definitely try auth_null rather than failing.
> 
> What if the list has AUTH_GSS_KRB5 and AUTH_NULL?  Should the kernel  
> try AUTH_GSS flavors if it can't tell whether gssd is running or there  
> is a valid local keytab?

Firstly, we can tell if gssd is running. There is a timeout period of 30
seconds, but after that timeout, if there are no listeners on the end of
the gssd pipe, the rpc_pipefs code will return ETIMEDOUT.

> How does the kernel construct a list of client-supported auth flavors?

Although we do have the auth_flavors[] list, we don't currently have a
list that enumerates all the supported pseudoflavours. Instead, we have
auth_flavors[], and then a separate list of all the rpcsec_gss auth
mechanisms that are currently loaded into kernel memory.
I suggest we need to unify the information in those two lists, perhaps
by having everyone register into a separate list of all pseudoflavours
that are acceptable as parameters for rpcauth_create().

> > We should also try it if the server is broken, and returns an empty
> > list, but only after first attempting to cycle through all the other
> > flavours that are supported by the client.
> 
> 
> If the server returns an empty list, we can't negotiate.  We are  
> fairly certain only old Linux servers return an empty list, in which  
> case the client can assume all we've got is AUTH_NULL and AUTH_UNIX.   

...or RPCSEC_GSS/krb5

> I think allowing the mount to proceed with AUTH_UNIX is the best  
> choice here.

As I said, this functionality is in also required in order to make NFSv4
security negotiation work.

Trond


  reply	other threads:[~2009-09-01 19:31 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-01 14:31 [PATCH] NFS: Change default behavior when "sec=" is not specified by user Chuck Lever
     [not found] ` <20090901143012.3978.11441.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
2009-09-01 15:05   ` J. Bruce Fields
2009-09-01 15:10     ` Chuck Lever
2009-09-01 15:18       ` J. Bruce Fields
2009-09-01 15:52         ` Chuck Lever
2009-09-01 16:09           ` J. Bruce Fields
2009-09-01 16:29             ` Chuck Lever
2009-09-01 16:38               ` J. Bruce Fields
2009-09-01 18:07                 ` Chuck Lever
2009-09-01 18:21                   ` J. Bruce Fields
2009-09-01 18:25                   ` Trond Myklebust
     [not found]                     ` <1251829540.18608.31.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-09-01 18:28                       ` Trond Myklebust
     [not found]                         ` <1251829737.18608.34.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-09-01 18:35                           ` Trond Myklebust
2009-09-01 18:58                       ` Chuck Lever
2009-09-01 19:31                         ` Trond Myklebust [this message]
     [not found]                           ` <1251833479.18608.69.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-09-01 19:33                             ` Trond Myklebust
2009-09-01 20:10                             ` Chuck Lever
2009-09-01 20:15                               ` J. Bruce Fields
2009-09-01 20:31                                 ` Chuck Lever
2009-09-01 21:22                                   ` Trond Myklebust
     [not found]                                     ` <1251840160.8463.20.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-09-02 14:16                                       ` Chuck Lever
2009-09-01 18:33                   ` Peter Staubach
2009-09-01 18:50                     ` J. Bruce Fields
2009-09-01 18:52                       ` Peter Staubach
2009-09-01 19:16                         ` J. Bruce Fields
2009-09-01 19:24                           ` Peter Staubach
2009-09-01 20:05                             ` J. Bruce Fields

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1251833479.18608.69.camel@heimdal.trondhjem.org \
    --to=trond.myklebust@fys.uio.no \
    --cc=bfields@fieldses.org \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox