From: Casey Schaufler <casey@schaufler-ca.com>
To: Jamie Lokier <jamie@shareable.org>
Cc: Brad Boyer <flar-POGeQm5F+FGB+jHODAdFcQ@public.gmane.org>,
James Morris <jmorris@namei.org>,
linux-nfs@vger.kernel.org, linux-security-module@vger.kernel.org,
Trond Myklebust <Trond.Myklebust@netapp.com>,
"J. Bruce Fields" <bfields@fieldses.org>,
Neil Brown <neilb@suse.de>,
linux-fsdevel@vger.kernel.org,
Casey Schaufler <casey@schaufler-ca.com>
Subject: Re: [PATCH 0/6][v4][RFC] NFSv3: implement extended attribute protocol (XATTR)
Date: Mon, 15 Mar 2010 16:28:57 -0700 [thread overview]
Message-ID: <4B9EC2B9.3030800@schaufler-ca.com> (raw)
In-Reply-To: <20100315142803.GC15133@shareable.org>
Jamie Lokier wrote:
> Casey Schaufler wrote:
>
>> Jamie Lokier wrote:
>>
>>> Casey Schaufler wrote:
>>>
>>>
>>>> Jamie Lokier wrote:
>>>>
>>>>
>>>>> Brad Boyer wrote:
>>>>>
>>>>>
>>>>>
>>>>>> On Mon, Mar 08, 2010 at 09:49:27PM -0800, Casey Schaufler wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Another is to NFS mount the filesystem back on to the server,
>>>>>>> in which case James' scheme works just dandy. It's a trick that
>>>>>>> I've used more than once in the Unix world for this exact purpose.
>>>>>>> Of course you have to arrange your mount points in advance with
>>>>>>> malice aforethought, but that's likely something you're used to
>>>>>>> by now.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> That would definitely work, but it's not ideal. Obviously if it's
>>>>>> being accessed over NFS in one place it probably good enough
>>>>>> everywhere, but it's overhead that could be eliminated.
>>>>>>
>>>>>>
>>>>>>
>>>>> As a real example:
>>>>>
>>>>> Each user has a PC with their own home directory being local, fast
>>>>> storage, but /home is filled with NFS auto-mounts to everyone else's
>>>>> home directories, on their individual PCs. The auto-mount map has an
>>>>> exception, so the local user's home directory is a symlink to the
>>>>> local storage, instead of an NFS mount.
>>>>>
>>>>> A scheme like that works very well for occasional access to other
>>>>> peoples files, and for logging to each other's machines transparently,
>>>>> yet having fast performance for their own files when using their local
>>>>> machine.
>>>>>
>>>>> In an environment where I've used that, forcing local access to go
>>>>> over local NFS would have destroyed performance for things like big
>>>>> compiles, running find, git, grep etc. that people do on their own
>>>>> directories.
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Sure. The original objection can be readily addressed. There are
>>>> performance implications. Just like you'd have if the home directories
>>>> resided on a storage appliance. Some people pick security for the
>>>> masses over performance for the few. Some the other way round.
>>>> It's not an issue for people who want labeled NFS3 badly enough
>>>> to install it.
>>>>
>>>>
>>> It seems in this case, the performance implications are totally unnecassary.
>>>
>>> Why not a mount option for the xattr name translation?
>>>
>>>
>>>
>> As much as we might like it to be otherwise, an NFS mounted
>> filesystem behaves differently from an ext3 local filesystem.
>> To get consistent behavior the same mechanism needs to be used
>> for all of the machines on which the data is accessed. That
>> means using NFS everywhere because you can't use the local
>> filesystem in multiple places. Usually the variations can be
>> ignored, but there are cases where it matters.
>>
>
> Sure - but is this case one of them?
Well, that's the debate. If James' NFS3 labeling uses a different
namespace for the label attribute it could very well result in a
difference in behavior. Look at "ls -Z", which reports the value
of a specific attribute.
> If so, what's the difference?
>
> Sometimes a 10x performance improvement(*) is preferred over rigidly
> consistent behaviour, if the differences don't matter. Besides, if
> something is working over NFS, it almost certainly works locally.
> Problems only tend to occur the other way around.
>
> I've never yet had a problem running the combination of local mount
> locally and NFS mount remotely on the same filesystem. This change
> seems to be creating a problem where there wasn't one before - unless
> I'm missing something.
>
You're missing something. Privilege semantics are different. The
behavior of unlinked files is different. Locking is different. You
are correct that in most cases it does not matter. We're not talking
about the common case, we're talking about using xattrs to store
information that is used to make security decisions. It is quite
difficult to make security claims when an object can be accessed
under two different sets of semantics.
> (*) Measured during big "makes".
>
> -- Jamie
>
>
>
next prev parent reply other threads:[~2010-03-15 23:28 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-26 4:33 [PATCH 0/5][v3][RFC] NFSv3: implement extended attribute protocol (XATTR) James Morris
2010-02-26 4:34 ` [PATCH 1/5] NFSv3: convert client to generic xattr API James Morris
2010-02-26 4:35 ` [PATCH 2/5] NFSv3: add xattr API config option for client James Morris
[not found] ` <alpine.LRH.2.00.1002261457420.25193-CK9fWmtY32x9JUWOpEiw7w@public.gmane.org>
2010-02-26 4:36 ` Subject: [PATCH 3/5] NFSv3: add client implementation of XATTR protocol James Morris
2010-02-26 4:36 ` [PATCH 4/5] NFSv3: add server " James Morris
2010-02-26 4:37 ` [PATCH 5/5] NFSv3: Add server namespace support for XATTR protocol implementation James Morris
2010-02-26 13:46 ` Stephen Smalley
2010-03-01 0:49 ` Casey Schaufler
2010-03-01 1:17 ` Trond Myklebust
2010-03-01 8:09 ` James Morris
2010-03-08 10:42 ` [PATCH 0/6][v4][RFC] NFSv3: implement extended attribute protocol (XATTR) James Morris
2010-03-08 10:43 ` [PATCH 1/6] NFSv3: convert client to generic xattr API James Morris
[not found] ` <alpine.LRH.2.00.1003082122340.6314-CK9fWmtY32x9JUWOpEiw7w@public.gmane.org>
2010-03-08 10:43 ` [PATCH 2/6] NFSv3: add xattr API config option for client James Morris
2010-03-08 10:47 ` [PATCH 6/6] NFSv3: Add server namespace support for XATTR protocol implementation James Morris
2010-03-08 10:44 ` [PATCH 3/6] NFSv3: add client implementation of XATTR protocol James Morris
2010-03-08 10:45 ` [PATCH 4/6] NFSv3: add server " James Morris
2010-03-08 10:46 ` [PATCH 5/6] xattr: add new top level nfsd namespace and implement ext3 support James Morris
2010-03-09 3:59 ` [PATCH 0/6][v4][RFC] NFSv3: implement extended attribute protocol (XATTR) Brad Boyer
2010-03-09 5:49 ` Casey Schaufler
2010-03-09 7:04 ` Brad Boyer
2010-03-09 19:35 ` Jamie Lokier
2010-03-10 3:46 ` Casey Schaufler
2010-03-15 3:19 ` Jamie Lokier
2010-03-15 4:42 ` Casey Schaufler
2010-03-15 14:28 ` Jamie Lokier
2010-03-15 23:28 ` Casey Schaufler [this message]
2010-03-15 23:49 ` Trond Myklebust
2010-03-16 2:31 ` Casey Schaufler
2010-03-17 20:13 ` Eric Paris
2010-03-17 21:23 ` Casey Schaufler
2010-03-09 8:13 ` James Morris
2010-03-13 7:28 ` Brad Boyer
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=4B9EC2B9.3030800@schaufler-ca.com \
--to=casey@schaufler-ca.com \
--cc=Trond.Myklebust@netapp.com \
--cc=bfields@fieldses.org \
--cc=flar-POGeQm5F+FGB+jHODAdFcQ@public.gmane.org \
--cc=jamie@shareable.org \
--cc=jmorris@namei.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=neilb@suse.de \
/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