From: Kyle Moffett <mrmacman_g4@mac.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: David Howells <dhowells@redhat.com>,
viro@ftp.linux.org.uk, sds@tycho.nsa.gov, casey@schaufler-ca.com,
linux-fsdevel@vger.kernel.org, nfsv4@linux-nfs.org,
linux-kernel@vger.kernel.org, selinux@tycho.nsa.gov,
linux-security-module@vger.kernel.org
Subject: Re: Adding a security parameter to VFS functions
Date: Thu, 16 Aug 2007 19:30:42 -0400 [thread overview]
Message-ID: <08F0A127-BBEE-4B80-8AE7-1EB7CB815C16@mac.com> (raw)
In-Reply-To: <alpine.LFD.0.999.0708161550140.30176@woody.linux-foundation.org>
On Aug 16, 2007, at 18:57:24, Linus Torvalds wrote:
> On Wed, 15 Aug 2007, David Howells wrote:
>> Would you object greatly to functions like vfs_mkdir() gaining a
>> security parameter? What I'm thinking of is this:
>> int vfs_mkdir(struct inode *dir, struct dentry *dentry, int mode,
>> struct security *security)
>
> I personally consider this an affront to everythign that is decent.
>
> Why the *hell* would mkdir() be so magical as to need something
> like that?
Not speaking directly for David, but I believe the reason is for
background kernel code which needs to do filesystem access during a
thread's execution with *completely* different security context from
that of the thread. Examples should be reasonably obvious; kNFSd is
one, but it also includes anything where the kernel would poke
directly into the filesystem, such as network filesystem cachefiles.
> Make it something sane, like a "struct nameidata" instead, and make
> it at least try to look like the path creation that is done by "open
> ()". Or create a "struct file *" or something.
>
> I can imagine having "mkdir()" being passed similar data as "open
> ()" (ie "lookup()"), but I cannot _possibly_ imagine it ever being
> valid to pass in something totally made-up to just mkdir(), and
> nothing else. There's something fundamentally wrong there.
I would offer the suggestion of using the described "struct security"
in-place in the task struct, in place of using all those fields
individually. That would be, in effect the "default" security
context for any given task, if "NULL" is passed to the appropriate
vfs function. For CacheFiles and kNFSd, they could each allocate
their own during initialization or new-connection and pass that to
any "mkdir()", etc that they do on behalf of a given client.
> What makes mkdir() so magical?
>
> Also, what about all the other ops? Why is mkdir() special, but not
> "mknod()"? Why is "mkdir()" special, but not "rmdir()"? Really,
> none of this seems to make any sense unless you describe what is so
> magical about mkdir().
I think mkdir() was just an example he was using, probably because it
was the first VFS call he needed to set a security context on. Next
would come anything which CacheFiles or NFSd call on the underlying
filesystem.
Cheers,
Kyle Moffett
next prev parent reply other threads:[~2007-08-16 23:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-15 11:40 David Howells
2007-08-15 16:23 ` Casey Schaufler
2007-08-15 16:52 ` David Howells
2007-08-16 22:20 ` Andreas Gruenbacher
2007-08-16 22:36 ` Andreas Gruenbacher
2007-08-16 22:57 ` Linus Torvalds
2007-08-16 23:30 ` Kyle Moffett [this message]
2007-08-16 23:34 ` Al Viro
2007-08-17 18:05 ` Andreas Gruenbacher
2007-08-20 12:09 ` David Howells
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=08F0A127-BBEE-4B80-8AE7-1EB7CB815C16@mac.com \
--to=mrmacman_g4@mac.com \
--cc=casey@schaufler-ca.com \
--cc=dhowells@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=sds@tycho.nsa.gov \
--cc=selinux@tycho.nsa.gov \
--cc=torvalds@linux-foundation.org \
--cc=viro@ftp.linux.org.uk \
/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
all inboxes | Powered by JetHome®