From: "J. Bruce Fields" <bfields@fieldses.org>
To: Peter Staubach <staubach@redhat.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH] nfsd: permit unauthenticated stat of export root
Date: Thu, 7 Aug 2008 16:41:54 -0400 [thread overview]
Message-ID: <20080807204154.GR18904@fieldses.org> (raw)
In-Reply-To: <489B4F81.8000204@redhat.com>
On Thu, Aug 07, 2008 at 03:39:45PM -0400, Peter Staubach wrote:
> J. Bruce Fields wrote:
>> On Thu, Aug 07, 2008 at 02:23:40PM -0400, Peter Staubach wrote:
>>
>>> J. Bruce Fields wrote:
>>>
>>>> From: J. Bruce Fields <bfields@citi.umich.edu>
>>>>
>>>> RFC 2623 section 2.3.2 permits the server to bypass gss authentication
>>>> checks for certain operations that a client may perform when mounting.
>>>> In the case of a client that doesn't have some form of credentials
>>>> available to it on boot, this allows it to perform the mount unattended.
>>>> (Presumably real file access won't be needed until a user with
>>>> credentials logs in.)
>>>>
>>>> Being slightly more lenient allows lots of old clients to access
>>>> krb5-only exports, with the only loss being a small amount of
>>>> information leaked about the root directory of the export.
>>>>
>>>> This affects on v2 and v3; v4 still requires authentication for all
>>>> access.
>>>>
>>>> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
>>>> ---
>>>> fs/nfsd/nfs3proc.c | 5 +++--
>>>> fs/nfsd/nfsfh.c | 30 ++++++++++++++++++++----------
>>>> fs/nfsd/nfsproc.c | 6 ++++--
>>>> fs/nfsd/vfs.c | 4 ++--
>>>> include/linux/nfsd/nfsd.h | 3 ++-
>>>> 5 files changed, 31 insertions(+), 17 deletions(-)
>>>>
>>>> I intend to submit this for 2.6.28
>>>>
>>>> diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c
>>>> index 4d617ea..1419142 100644
>>>> --- a/fs/nfsd/nfs3proc.c
>>>> +++ b/fs/nfsd/nfs3proc.c
>>>> @@ -530,7 +530,7 @@ nfsd3_proc_fsstat(struct svc_rqst * rqstp, struct nfsd_fhandle *argp,
>>>> dprintk("nfsd: FSSTAT(3) %s\n",
>>>> SVCFH_fmt(&argp->fh));
>>>> - nfserr = nfsd_statfs(rqstp, &argp->fh, &resp->stats);
>>>> + nfserr = nfsd_statfs(rqstp, &argp->fh, &resp->stats, 0);
>>>> fh_put(&argp->fh);
>>>> RETURN_STATUS(nfserr);
>>>> }
>>>> @@ -558,7 +558,8 @@ nfsd3_proc_fsinfo(struct svc_rqst * rqstp, struct nfsd_fhandle *argp,
>>>> resp->f_maxfilesize = ~(u32) 0;
>>>> resp->f_properties = NFS3_FSF_DEFAULT;
>>>> - nfserr = fh_verify(rqstp, &argp->fh, 0, NFSD_MAY_NOP);
>>>> + nfserr = fh_verify(rqstp, &argp->fh, 0,
>>>> + NFSD_MAY_NOP | NFSD_MAY_BYPASS_GSS_ON_ROOT);
>>>> /* Check special features of the file system. May request
>>>> * different read/write sizes for file systems known to have
>>>>
>>> I would think that you might want to have nfsd3_proc_getattr()
>>> in this list too. Some clients may need to generate a GETATTR
>>> if they need the attributes for the root node.
>>>
>>
>> Do you know of any? rfc 2623 makes it sound like those clients are out
>> of luck. And testing confirms that this patch is sufficient for the
>> linux client, at least.
>
> I believe that the Solaris client may. I think that it may
> use the attributes returned from the FSINFO call, if there
> are any, to prevent the additional GETATTR, but this should
> be tested. It might also be interesting to test out a
> readonly failover mount on the Solaris client to see what
> behavior that that exhibits.
OK, could be. Volunteers to test that welcomed--for now I think I'll
stick to the list in the RFC.
--b.
next prev parent reply other threads:[~2008-08-07 20:41 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-07 18:11 [PATCH] nfsd: permit unauthenticated stat of export root J. Bruce Fields
2008-08-07 18:23 ` Peter Staubach
2008-08-07 19:16 ` J. Bruce Fields
2008-08-07 19:39 ` Peter Staubach
2008-08-07 20:41 ` J. Bruce Fields [this message]
2008-08-08 20:21 ` J. Bruce Fields
2008-08-08 20:32 ` Peter Staubach
2008-08-08 20:39 ` J. Bruce Fields
2008-08-11 20:51 ` Peter Staubach
2008-08-11 21:26 ` J. Bruce Fields
2008-08-11 21:29 ` Peter Staubach
2008-08-11 22:11 ` J. Bruce Fields
2008-08-11 21:27 ` Peter Staubach
2008-08-11 21:38 ` Trond Myklebust
2008-08-12 15:43 ` 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=20080807204154.GR18904@fieldses.org \
--to=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
--cc=staubach@redhat.com \
/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