From: David Howells <dhowells@redhat.com>
To: casey@schaufler-ca.com
Cc: akpm@osdl.org, LSM List <linux-security-module@vger.kernel.org>,
linux-kernel@vger.kernel.org, nfsv4@linux-nfs.org,
trond.myklebust@fys.uio.no, torvalds@osdl.org,
linux-cachefs@redhat.com, selinux@tycho.nsa.gov,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 00/16] Permit filesystem local caching [try #3]
Date: Sat, 11 Aug 2007 09:41:22 +0100 [thread overview]
Message-ID: <7504.1186821682@redhat.com> (raw)
In-Reply-To: <635572.72239.qm@web36611.mail.mud.yahoo.com>
Casey Schaufler <casey@schaufler-ca.com> wrote:
> How would you expect an LSM that is not SELinux to interface with
> CacheFiles?
You have to understand that I didn't know that much about the LSM interface,
so I asked advice of the Red Hat security people, who, naturally, pointed me
at the SELinux mailing list. I knew my stuff would have to work with SELinux
to be used with RH stuff.
Furthermore, as you pointed out, there aren't any other LSM modules upstream
yet for me to work against. I would like CacheFiles to work with all LSM
modules in general, but I don't know how to do that yet.
I'm open to suggestion as to how to modify things to support any LSM.
Btw, do you understand the problems that CacheFiles has to deal with? If I
set this down clearly, this may help you or someone else suggest a better way
to do things.
(1) Some random process tries to access a file on a network filesystem
(NFS example).
(2) NFS goes to the cache to attempt to read the data from there prior to
going to the network.
(3) The cache driver wants to access the files in the cache, but it's
running in the security context of either the aforementioned random
process, or one of FS-Cache's thread pool.
This security context, however, doesn't necessarily give it the rights
to access what's in the cache, so the driver has to be permitted to act
as a context appropriate to accessing the cache, without changing the
overall security context of the random process (which would impact
things trying to act on that process - kill() for example).
(4) Assuming the data is found in the cache, all well and good, but if it
isn't, the cache driver will have to create some files in the cache.
Now, if the cache driver just went ahead and created the files, they
could end up with their own security contexts being derived from the
random process's security context, thus potentially making it impossible
for other processes to access the cache.
So the file-creation part of the security context must also be
overridden temporarily, assuming that whatever LSM is in force has such
a concept.
Part of the problem is that the VFS does not pass around the security context
as which the VFS routines act, but rather gets them from the task_struct. For
the most part, this is entirely sufficient, but in the cache driver case, it's
a problem.
David
next prev parent reply other threads:[~2007-08-11 8:41 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-10 16:04 [PATCH 00/16] Permit filesystem local caching [try #3] David Howells
2007-08-10 16:05 ` [PATCH 01/16] FS-Cache: Release page->private after failed readahead " David Howells
2007-08-10 16:05 ` [PATCH 02/16] FS-Cache: Recruit a couple of page flags for cache management " David Howells
2007-08-10 16:05 ` [PATCH 03/16] FS-Cache: Provide an add_wait_queue_tail() function " David Howells
2007-08-10 16:05 ` [PATCH 04/16] FS-Cache: Generic filesystem caching facility " David Howells
2007-08-10 16:05 ` [PATCH 05/16] CacheFiles: Add missing copy_page export for ia64 " David Howells
2007-08-10 16:05 ` [PATCH 06/16] CacheFiles: Add a hook to write a single page of data to an inode " David Howells
2007-08-10 16:05 ` [PATCH 07/16] CacheFiles: Permit the page lock state to be monitored " David Howells
2007-08-10 16:05 ` [PATCH 08/16] CacheFiles: Export things for CacheFiles " David Howells
2007-08-10 16:05 ` [PATCH 09/16] CacheFiles: Permit a process's create SID to be overridden " David Howells
2007-08-10 16:52 ` Casey Schaufler
2007-08-10 16:05 ` [PATCH 10/16] CacheFiles: Add an act-as SID override in task_security_struct " David Howells
2007-08-10 16:05 ` [PATCH 11/16] CacheFiles: Permit an inode's security ID to be obtained " David Howells
2007-08-10 16:05 ` [PATCH 12/16] CacheFiles: Get the SID under which the CacheFiles module should operate " David Howells
2007-08-10 16:06 ` [PATCH 13/16] CacheFiles: A cache that backs onto a mounted filesystem " David Howells
2007-08-10 16:06 ` [PATCH 14/16] NFS: Use local caching " David Howells
2007-08-10 16:06 ` [PATCH 15/16] NFS: Configuration and mount option changes to enable local caching on NFS " David Howells
2007-08-10 16:06 ` [PATCH 16/16] NFS: Display local caching state " David Howells
2007-08-10 22:13 ` [PATCH 00/16] Permit filesystem local caching " Casey Schaufler
2007-08-11 8:41 ` David Howells [this message]
2007-08-11 15:56 ` Casey Schaufler
2007-08-13 10:54 ` David Howells
2007-08-13 13:46 ` Casey Schaufler
2007-08-13 14:51 ` David Howells
2007-08-13 14:57 ` Stephen Smalley
2007-08-13 15:42 ` Casey Schaufler
2007-08-13 15:22 ` David Howells
2007-08-13 16:20 ` Casey Schaufler
2007-08-13 16:31 ` David Howells
2007-08-13 16:58 ` Casey Schaufler
2007-08-13 19:52 ` David Howells
2007-08-13 21:44 ` Casey Schaufler
2007-08-14 9:39 ` David Howells
2007-08-14 15:53 ` Casey Schaufler
2007-08-14 17:42 ` Stephen Smalley
2007-08-15 16:30 ` Casey Schaufler
2007-08-14 17:58 ` David Howells
2007-08-14 17:50 ` Stephen Smalley
2007-08-13 13:50 ` Stephen Smalley
2007-08-13 15:10 ` Casey Schaufler
2007-08-13 13:01 ` Stephen Smalley
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=7504.1186821682@redhat.com \
--to=dhowells@redhat.com \
--cc=akpm@osdl.org \
--cc=casey@schaufler-ca.com \
--cc=linux-cachefs@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=nfsv4@linux-nfs.org \
--cc=selinux@tycho.nsa.gov \
--cc=torvalds@osdl.org \
--cc=trond.myklebust@fys.uio.no \
/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;
as well as URLs for NNTP newsgroup(s).