LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Tony Jones <tonyj@suse.de>
To: linux-kernel@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org, chrisw@sous-sol.org,
	Tony Jones <tonyj@suse.de>,
	linux-security-module@vger.kernel.org, agruen@suse.de
Subject: [RFC 0/28] Patches to pass vfsmount to LSM inode security hooks
Date: Mon, 05 Feb 2007 10:22:13 -0800	[thread overview]
Message-ID: <20070205182213.12164.40927.sendpatchset@ermintrude.int.wirex.com> (raw)

Introduction
------------

The following are a set of patches the goal of which is to pass vfsmounts
through select portions of the VFS layer sufficient to be visible to the LSM
inode operation hooks.

They are being posted now as a request for comment.  Presently the AppArmor
code - being a user of the LSM interface - does not receive the vfsmount 
correspoding to an operation and has to employ convoluted and slow mechanisms 
in an attempt to determine the vfsmount which are error prone. Therefore these
patches or some variant of them are viewed as a necessary precursor for the 
AppArmor code being resubmitted. 

It is currently planned to resubmit the AppArmor code to the list in the next 
month.  We apologise greatly for the silence since the last submission, a 
combination of research into different designs, other work pressures and just 
not doing the "right thing". Regardless, early discussion and feedback on 
the interface changes presented here is appreciated.

Limitations of the current patches
----------------------------------

NULL is passed for the vfsmount from all NFS functions,  this is analagous
to the current NULL nameidata for security_inode_permission.  NULL is also 
passed in certain cases for internal filesystem data which is not visible in
the normal namespace (Reiserfs being one example).

Struct vfsmount is passed to the LSM inode hooks rather than struct nameidata 
as the hooks do not require the intent data and also as a few hooks are called
when only a struct file is available.

Possible changes
----------------

A second parameter is now being passed to many functions. One alternative is 
to ammend the LSM interface (and struct nameidata) to use struct path instead
but this would be a larger change.

Patches
-------

security-create.diff
	Pass struct vfsmount to the inode_create LSM hook.
	
proc_setattr.diff
	Remove redundant check from proc_setattr().

remove_suid.diff
	Pass struct file down to remove_suid and children
	
vfs-notify_change.diff
	Add a vfsmount parameter to notify_change()
	
security-setattr.diff
	Pass struct vfsmount to the inode_setattr LSM hook
	
vfs-mkdir.diff
	Add struct vfsmount parameter to vfs_mkdir()
	
security-mkdir.diff
	Pass struct vfsmount to the inode_mkdir LSM hook
	
vfs-mknod.diff
	Add a struct vfsmount parameter to vfs_mknod()
	
security-mknod.diff
	Pass struct vfsmount to the inode_mknod LSM hook
	
vfs-symlink.diff
	Add a struct vfsmount parameter to vfs_symlink()
	
security-symlink.diff
	Pass struct vfsmount to the inode_symlink LSM hook.
	
security-readlink.diff
	Pass struct vfsmount to the inode_readlink LSM hook
	
vfs-link.diff
	Add struct vfsmount parameters to vfs_link()
	
security-link.diff
	Pass struct vfsmount to the inode_link LSM hook
	
vfs-rmdir.diff
	Add a struct vfsmount parameter to vfs_rmdir()
	
security-rmdir.diff
	Pass struct vfsmount to the inode_rmdir LSM hook
	
vfs-unlink.diff
	Add a struct vfsmount parameter to vfs_unlink()
	
security-unlink.diff
	Pass struct vfsmount to the inode_unlink LSM hook
	
vfs-rename.diff
	Add struct vfsmount parameters to vfs_rename()
	
security-rename.diff
	Pass struct vfsmount to the inode_rename LSM hook
	
vfs-setxattr.diff
	Add a struct vfsmount parameter to vfs_setxattr()
	
security-setxattr.diff
	Pass struct vfsmount to the inode_setxattr LSM hook
	
vfs-getxattr.diff
	Add a struct vfsmount parameter to vfs_getxattr()
	
security-getxattr.diff
	Pass struct vfsmount to the inode_getxattr LSM hook
	
vfs-listxattr.diff
	Add a struct vfsmount parameter to vfs_listxattr()
	
security-listxattr.diff
	Pass struct vfsmount to the inode_listxattr LSM hook
	
vfs-removexattr.diff
	Add a struct vfsmount parameter to vfs_removexattr()
	
security-removexattr.diff
	Pass struct vfsmount to the inode_removexattr LSM hook

             reply	other threads:[~2007-02-05 18:23 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-05 18:22 Tony Jones [this message]
2007-02-05 18:22 ` [RFC 1/28] Pass struct vfsmount to the inode_create LSM hook Tony Jones
2007-02-05 18:22 ` [RFC 2/28] Remove redundant check from proc_setattr() Tony Jones
2007-02-05 19:16   ` Chris Wright
2007-02-05 18:22 ` [RFC 3/28] Pass struct file down to remove_suid and children Tony Jones
2007-02-05 18:22 ` [RFC 4/28] Add a vfsmount parameter to notify_change() Tony Jones
2007-02-05 18:23 ` [RFC 5/28] Pass struct vfsmount to the inode_setattr LSM hook Tony Jones
2007-02-05 18:23 ` [RFC 6/28] Add struct vfsmount parameter to vfs_mkdir() Tony Jones
2007-02-05 18:23 ` [RFC 7/28] Pass struct vfsmount to the inode_mkdir LSM hook Tony Jones
2007-02-05 18:23 ` [RFC 8/28] Add a struct vfsmount parameter to vfs_mknod() Tony Jones
2007-02-05 18:23 ` [RFC 9/28] Pass struct vfsmount to the inode_mknod LSM hook Tony Jones
2007-02-05 18:23 ` [RFC 10/28] Add a struct vfsmount parameter to vfs_symlink() Tony Jones
2007-02-05 18:23 ` [RFC 11/28] Pass struct vfsmount to the inode_symlink LSM hook Tony Jones
2007-02-05 18:24 ` [RFC 12/28] Pass struct vfsmount to the inode_readlink " Tony Jones
2007-02-05 18:24 ` [RFC 13/28] Add struct vfsmount parameters to vfs_link() Tony Jones
2007-02-05 18:24 ` [RFC 14/28] Pass struct vfsmount to the inode_link LSM hook Tony Jones
2007-02-05 18:24 ` [RFC 15/28] Add a struct vfsmount parameter to vfs_rmdir() Tony Jones
2007-02-05 18:24 ` [RFC 16/28] Pass struct vfsmount to the inode_rmdir LSM hook Tony Jones
2007-02-05 18:24 ` [RFC 17/28] Add a struct vfsmount parameter to vfs_unlink() Tony Jones
2007-02-05 18:25 ` [RFC 18/28] Pass struct vfsmount to the inode_unlink LSM hook Tony Jones
2007-02-05 18:25 ` [RFC 19/28] Add struct vfsmount parameters to vfs_rename() Tony Jones
2007-02-05 18:25 ` [RFC 20/28] Pass struct vfsmount to the inode_rename LSM hook Tony Jones
2007-02-05 18:25 ` [RFC 21/28] Add a struct vfsmount parameter to vfs_setxattr() Tony Jones
2007-02-05 18:25 ` [RFC 22/28] Pass struct vfsmount to the inode_setxattr LSM hook Tony Jones
2007-02-05 18:25 ` [RFC 23/28] Add a struct vfsmount parameter to vfs_getxattr() Tony Jones
2007-02-05 18:25 ` [RFC 24/28] Pass struct vfsmount to the inode_getxattr LSM hook Tony Jones
2007-02-05 18:26 ` [RFC 25/28] Add a struct vfsmount parameter to vfs_listxattr() Tony Jones
2007-02-05 18:26 ` [RFC 26/28] Pass struct vfsmount to the inode_listxattr LSM hook Tony Jones
2007-02-05 18:26 ` [RFC 27/28] Add a struct vfsmount parameter to vfs_removexattr() Tony Jones
2007-02-05 18:26 ` [RFC 28/28] Pass struct vfsmount to the inode_removexattr LSM hook Tony Jones
2007-02-05 18:44 ` [RFC 0/28] Patches to pass vfsmount to LSM inode security hooks Christoph Hellwig
2007-02-05 18:58   ` Trond Myklebust
2007-02-05 19:02     ` Christoph Hellwig
2007-02-06  3:20       ` Andreas Gruenbacher
2007-02-06  8:51         ` Trond Myklebust
2007-02-06  9:48           ` Christoph Hellwig
2007-02-06 10:31             ` Neil Brown
2007-02-07  9:25           ` Andreas Gruenbacher
2007-02-06  9:47         ` Christoph Hellwig
2007-02-06 10:26           ` Neil Brown
2007-02-06 10:37             ` Christoph Hellwig
2007-02-12 18:32               ` J. Bruce Fields
2007-02-07  9:58           ` Andreas Gruenbacher
2007-02-07 12:11             ` Christoph Hellwig
2007-02-05 19:15     ` Chris Wright
2007-02-06  0:44   ` Andreas Gruenbacher
2007-02-06  2:13   ` Andreas Gruenbacher
2007-02-06  9:52     ` Christoph Hellwig
2007-02-07  9:04       ` Andreas Gruenbacher
2007-02-06 12:55     ` Stephen Smalley
2007-02-07  8:55       ` Andreas Gruenbacher
2007-02-07 15:43         ` Chris Wright
2007-02-07 16:06           ` Stephen Smalley
2007-02-07 16:25           ` Jeff Mahoney
2007-02-07 19:55             ` Andreas Gruenbacher
2007-02-05 19:26 ` Casey Schaufler
2007-02-05 19:39   ` Arjan van de Ven
2007-02-05 19:50   ` Chris Wright
2007-02-05 20:23     ` Casey Schaufler
2007-02-06  2:30     ` Andreas Gruenbacher
2007-02-06 14:20     ` Tetsuo Handa

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=20070205182213.12164.40927.sendpatchset@ermintrude.int.wirex.com \
    --to=tonyj@suse.de \
    --cc=agruen@suse.de \
    --cc=chrisw@sous-sol.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --subject='Re: [RFC 0/28] Patches to pass vfsmount to LSM inode security hooks' \
    /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

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).