aboutsummaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <greg@kroah.com>2002-07-22 00:06:28 -0700
committerGreg Kroah-Hartman <greg@kroah.com>2002-07-22 00:06:28 -0700
commitf121b8fca19b1b805255d5bd0a6247ad0cbe812a (patch)
tree28afb661a9a58f4572b9410b018751ccd99d5a75 /security
parenta8bffd28269fc6efe1d4b8ce347091221bc2aa59 (diff)
parente175ac64b5edef3fa804d6cdb0f1e10ddb4b81a8 (diff)
downloadhistory-f121b8fca19b1b805255d5bd0a6247ad0cbe812a.tar.gz
merge
Diffstat (limited to 'security')
-rw-r--r--security/capability.c366
-rw-r--r--security/dummy.c370
2 files changed, 732 insertions, 4 deletions
diff --git a/security/capability.c b/security/capability.c
index 66f57b705ff6cb..0cb1bff019b29b 100644
--- a/security/capability.c
+++ b/security/capability.c
@@ -37,6 +37,16 @@ static int cap_sys_security (unsigned int id, unsigned int call,
return -ENOSYS;
}
+static int cap_quotactl (int cmds, int type, int id, struct super_block *sb)
+{
+ return 0;
+}
+
+static int cap_quota_on (struct file *f)
+{
+ return 0;
+}
+
static int cap_ptrace (struct task_struct *parent, struct task_struct *child)
{
/* Derived from arch/i386/kernel/ptrace.c:sys_ptrace. */
@@ -95,6 +105,11 @@ static void cap_capset_set (struct task_struct *target,
target->cap_permitted = *permitted;
}
+static int cap_acct (struct file *file)
+{
+ return 0;
+}
+
static int cap_bprm_alloc_security (struct linux_binprm *bprm)
{
return 0;
@@ -189,6 +204,294 @@ static void cap_bprm_compute_creds (struct linux_binprm *bprm)
current->keep_capabilities = 0;
}
+static int cap_sb_alloc_security (struct super_block *sb)
+{
+ return 0;
+}
+
+static void cap_sb_free_security (struct super_block *sb)
+{
+ return;
+}
+
+static int cap_sb_statfs (struct super_block *sb)
+{
+ return 0;
+}
+
+static int cap_mount (char *dev_name, struct nameidata *nd, char *type,
+ unsigned long flags, void *data)
+{
+ return 0;
+}
+
+static int cap_check_sb (struct vfsmount *mnt, struct nameidata *nd)
+{
+ return 0;
+}
+
+static int cap_umount (struct vfsmount *mnt, int flags)
+{
+ return 0;
+}
+
+static void cap_umount_close (struct vfsmount *mnt)
+{
+ return;
+}
+
+static void cap_umount_busy (struct vfsmount *mnt)
+{
+ return;
+}
+
+static void cap_post_remount (struct vfsmount *mnt, unsigned long flags,
+ void *data)
+{
+ return;
+}
+
+static void cap_post_mountroot (void)
+{
+ return;
+}
+
+static void cap_post_addmount (struct vfsmount *mnt, struct nameidata *nd)
+{
+ return;
+}
+
+static int cap_pivotroot (struct nameidata *old_nd, struct nameidata *new_nd)
+{
+ return 0;
+}
+
+static void cap_post_pivotroot (struct nameidata *old_nd, struct nameidata *new_nd)
+{
+ return;
+}
+
+static int cap_inode_alloc_security (struct inode *inode)
+{
+ return 0;
+}
+
+static void cap_inode_free_security (struct inode *inode)
+{
+ return;
+}
+
+static int cap_inode_create (struct inode *inode, struct dentry *dentry,
+ int mask)
+{
+ return 0;
+}
+
+static void cap_inode_post_create (struct inode *inode, struct dentry *dentry,
+ int mask)
+{
+ return;
+}
+
+static int cap_inode_link (struct dentry *old_dentry, struct inode *inode,
+ struct dentry *new_dentry)
+{
+ return 0;
+}
+
+static void cap_inode_post_link (struct dentry *old_dentry, struct inode *inode,
+ struct dentry *new_dentry)
+{
+ return;
+}
+
+static int cap_inode_unlink (struct inode *inode, struct dentry *dentry)
+{
+ return 0;
+}
+
+static int cap_inode_symlink (struct inode *inode, struct dentry *dentry,
+ const char *name)
+{
+ return 0;
+}
+
+static void cap_inode_post_symlink (struct inode *inode, struct dentry *dentry,
+ const char *name)
+{
+ return;
+}
+
+static int cap_inode_mkdir (struct inode *inode, struct dentry *dentry,
+ int mask)
+{
+ return 0;
+}
+
+static void cap_inode_post_mkdir (struct inode *inode, struct dentry *dentry,
+ int mask)
+{
+ return;
+}
+
+static int cap_inode_rmdir (struct inode *inode, struct dentry *dentry)
+{
+ return 0;
+}
+
+static int cap_inode_mknod (struct inode *inode, struct dentry *dentry,
+ int major, dev_t minor)
+{
+ return 0;
+}
+
+static void cap_inode_post_mknod (struct inode *inode, struct dentry *dentry,
+ int major, dev_t minor)
+{
+ return;
+}
+
+static int cap_inode_rename (struct inode *old_inode, struct dentry *old_dentry,
+ struct inode *new_inode, struct dentry *new_dentry)
+{
+ return 0;
+}
+
+static void cap_inode_post_rename (struct inode *old_inode,
+ struct dentry *old_dentry,
+ struct inode *new_inode,
+ struct dentry *new_dentry)
+{
+ return;
+}
+
+static int cap_inode_readlink (struct dentry *dentry)
+{
+ return 0;
+}
+
+static int cap_inode_follow_link (struct dentry *dentry,
+ struct nameidata *nameidata)
+{
+ return 0;
+}
+
+static int cap_inode_permission (struct inode *inode, int mask)
+{
+ return 0;
+}
+
+static int cap_inode_permission_lite (struct inode *inode, int mask)
+{
+ return 0;
+}
+
+static int cap_inode_setattr (struct dentry *dentry, struct iattr *iattr)
+{
+ return 0;
+}
+
+static int cap_inode_getattr (struct vfsmount *mnt, struct dentry *dentry)
+{
+ return 0;
+}
+
+static void cap_post_lookup (struct inode *ino, struct dentry *d)
+{
+ return;
+}
+
+static void cap_delete (struct inode *ino)
+{
+ return;
+}
+
+static int cap_inode_setxattr (struct dentry *dentry, char *name, void *value,
+ size_t size, int flags)
+{
+ return 0;
+}
+
+static int cap_inode_getxattr (struct dentry *dentry, char *name)
+{
+ return 0;
+}
+
+static int cap_inode_listxattr (struct dentry *dentry)
+{
+ return 0;
+}
+
+static int cap_inode_removexattr (struct dentry *dentry, char *name)
+{
+ return 0;
+}
+
+static int cap_file_permission (struct file *file, int mask)
+{
+ return 0;
+}
+
+static int cap_file_alloc_security (struct file *file)
+{
+ return 0;
+}
+
+static void cap_file_free_security (struct file *file)
+{
+ return;
+}
+
+static int cap_file_llseek (struct file *file)
+{
+ return 0;
+}
+
+static int cap_file_ioctl (struct file *file, unsigned int command,
+ unsigned long arg)
+{
+ return 0;
+}
+
+static int cap_file_mmap (struct file *file, unsigned long prot,
+ unsigned long flags)
+{
+ return 0;
+}
+
+static int cap_file_mprotect (struct vm_area_struct *vma, unsigned long prot)
+{
+ return 0;
+}
+
+static int cap_file_lock (struct file *file, unsigned int cmd, int blocking)
+{
+ return 0;
+}
+
+static int cap_file_fcntl (struct file *file, unsigned int cmd,
+ unsigned long arg)
+{
+ return 0;
+}
+
+static int cap_file_set_fowner (struct file *file)
+{
+ return 0;
+}
+
+static int cap_file_send_sigiotask (struct task_struct *tsk,
+ struct fown_struct *fown, int fd,
+ int reason)
+{
+ return 0;
+}
+
+static int cap_file_receive (struct file *file)
+{
+ return 0;
+}
+
static int cap_task_create (unsigned long clone_flags)
{
return 0;
@@ -391,15 +694,74 @@ static struct security_operations capability_ops = {
.capget = cap_capget,
.capset_check = cap_capset_check,
.capset_set = cap_capset_set,
+ .acct = cap_acct,
.capable = cap_capable,
.sys_security = cap_sys_security,
-
+ .quotactl = cap_quotactl,
+ .quota_on = cap_quota_on,
+
.bprm_alloc_security = cap_bprm_alloc_security,
.bprm_free_security = cap_bprm_free_security,
.bprm_compute_creds = cap_bprm_compute_creds,
.bprm_set_security = cap_bprm_set_security,
.bprm_check_security = cap_bprm_check_security,
+
+ sb_alloc_security: cap_sb_alloc_security,
+ sb_free_security: cap_sb_free_security,
+ sb_statfs: cap_sb_statfs,
+ sb_mount: cap_mount,
+ sb_check_sb: cap_check_sb,
+ sb_umount: cap_umount,
+ sb_umount_close: cap_umount_close,
+ sb_umount_busy: cap_umount_busy,
+ sb_post_remount: cap_post_remount,
+ sb_post_mountroot: cap_post_mountroot,
+ sb_post_addmount: cap_post_addmount,
+ sb_pivotroot: cap_pivotroot,
+ sb_post_pivotroot: cap_post_pivotroot,
+
+ inode_alloc_security: cap_inode_alloc_security,
+ inode_free_security: cap_inode_free_security,
+ inode_create: cap_inode_create,
+ inode_post_create: cap_inode_post_create,
+ inode_link: cap_inode_link,
+ inode_post_link: cap_inode_post_link,
+ inode_unlink: cap_inode_unlink,
+ inode_symlink: cap_inode_symlink,
+ inode_post_symlink: cap_inode_post_symlink,
+ inode_mkdir: cap_inode_mkdir,
+ inode_post_mkdir: cap_inode_post_mkdir,
+ inode_rmdir: cap_inode_rmdir,
+ inode_mknod: cap_inode_mknod,
+ inode_post_mknod: cap_inode_post_mknod,
+ inode_rename: cap_inode_rename,
+ inode_post_rename: cap_inode_post_rename,
+ inode_readlink: cap_inode_readlink,
+ inode_follow_link: cap_inode_follow_link,
+ inode_permission: cap_inode_permission,
+ inode_permission_lite: cap_inode_permission_lite,
+ inode_setattr: cap_inode_setattr,
+ inode_getattr: cap_inode_getattr,
+ inode_post_lookup: cap_post_lookup,
+ inode_delete: cap_delete,
+ inode_setxattr: cap_inode_setxattr,
+ inode_getxattr: cap_inode_getxattr,
+ inode_listxattr: cap_inode_listxattr,
+ inode_removexattr: cap_inode_removexattr,
+ file_permission: cap_file_permission,
+ file_alloc_security: cap_file_alloc_security,
+ file_free_security: cap_file_free_security,
+ file_llseek: cap_file_llseek,
+ file_ioctl: cap_file_ioctl,
+ file_mmap: cap_file_mmap,
+ file_mprotect: cap_file_mprotect,
+ file_lock: cap_file_lock,
+ file_fcntl: cap_file_fcntl,
+ file_set_fowner: cap_file_set_fowner,
+ file_send_sigiotask: cap_file_send_sigiotask,
+ file_receive: cap_file_receive,
+
.task_create = cap_task_create,
.task_alloc_security = cap_task_alloc_security,
.task_free_security = cap_task_free_security,
@@ -419,7 +781,7 @@ static struct security_operations capability_ops = {
.task_prctl = cap_task_prctl,
.task_kmod_set_label = cap_task_kmod_set_label,
.task_reparent_to_init = cap_task_reparent_to_init,
-
+
.register_security = cap_register,
.unregister_security = cap_unregister,
};
diff --git a/security/dummy.c b/security/dummy.c
index e3a4dc9cb2349b..cba138a5cbb928 100644
--- a/security/dummy.c
+++ b/security/dummy.c
@@ -46,6 +46,11 @@ static void dummy_capset_set (struct task_struct *target,
return;
}
+static int dummy_acct (struct file *file)
+{
+ return 0;
+}
+
static int dummy_capable (struct task_struct *tsk, int cap)
{
if (cap_is_fs_cap (cap) ? tsk->fsuid == 0 : tsk->euid == 0)
@@ -62,6 +67,16 @@ static int dummy_sys_security (unsigned int id, unsigned int call,
return -ENOSYS;
}
+static int dummy_quotactl (int cmds, int type, int id, struct super_block *sb)
+{
+ return 0;
+}
+
+static int dummy_quota_on (struct file *f)
+{
+ return 0;
+}
+
static int dummy_bprm_alloc_security (struct linux_binprm *bprm)
{
return 0;
@@ -87,6 +102,298 @@ static int dummy_bprm_check_security (struct linux_binprm *bprm)
return 0;
}
+static int dummy_sb_alloc_security (struct super_block *sb)
+{
+ return 0;
+}
+
+static void dummy_sb_free_security (struct super_block *sb)
+{
+ return;
+}
+
+static int dummy_sb_statfs (struct super_block *sb)
+{
+ return 0;
+}
+
+static int dummy_mount (char *dev_name, struct nameidata *nd, char *type,
+ unsigned long flags, void *data)
+{
+ return 0;
+}
+
+static int dummy_check_sb (struct vfsmount *mnt, struct nameidata *nd)
+{
+ return 0;
+}
+
+static int dummy_umount (struct vfsmount *mnt, int flags)
+{
+ return 0;
+}
+
+static void dummy_umount_close (struct vfsmount *mnt)
+{
+ return;
+}
+
+static void dummy_umount_busy (struct vfsmount *mnt)
+{
+ return;
+}
+
+static void dummy_post_remount (struct vfsmount *mnt, unsigned long flags,
+ void *data)
+{
+ return;
+}
+
+
+static void dummy_post_mountroot (void)
+{
+ return;
+}
+
+static void dummy_post_addmount (struct vfsmount *mnt, struct nameidata *nd)
+{
+ return;
+}
+
+static int dummy_pivotroot (struct nameidata *old_nd, struct nameidata *new_nd)
+{
+ return 0;
+}
+
+static void dummy_post_pivotroot (struct nameidata *old_nd, struct nameidata *new_nd)
+{
+ return;
+}
+
+static int dummy_inode_alloc_security (struct inode *inode)
+{
+ return 0;
+}
+
+static void dummy_inode_free_security (struct inode *inode)
+{
+ return;
+}
+
+static int dummy_inode_create (struct inode *inode, struct dentry *dentry,
+ int mask)
+{
+ return 0;
+}
+
+static void dummy_inode_post_create (struct inode *inode, struct dentry *dentry,
+ int mask)
+{
+ return;
+}
+
+static int dummy_inode_link (struct dentry *old_dentry, struct inode *inode,
+ struct dentry *new_dentry)
+{
+ return 0;
+}
+
+static void dummy_inode_post_link (struct dentry *old_dentry,
+ struct inode *inode,
+ struct dentry *new_dentry)
+{
+ return;
+}
+
+static int dummy_inode_unlink (struct inode *inode, struct dentry *dentry)
+{
+ return 0;
+}
+
+static int dummy_inode_symlink (struct inode *inode, struct dentry *dentry,
+ const char *name)
+{
+ return 0;
+}
+
+static void dummy_inode_post_symlink (struct inode *inode,
+ struct dentry *dentry, const char *name)
+{
+ return;
+}
+
+static int dummy_inode_mkdir (struct inode *inode, struct dentry *dentry,
+ int mask)
+{
+ return 0;
+}
+
+static void dummy_inode_post_mkdir (struct inode *inode, struct dentry *dentry,
+ int mask)
+{
+ return;
+}
+
+static int dummy_inode_rmdir (struct inode *inode, struct dentry *dentry)
+{
+ return 0;
+}
+
+static int dummy_inode_mknod (struct inode *inode, struct dentry *dentry,
+ int major, dev_t minor)
+{
+ return 0;
+}
+
+static void dummy_inode_post_mknod (struct inode *inode, struct dentry *dentry,
+ int major, dev_t minor)
+{
+ return;
+}
+
+static int dummy_inode_rename (struct inode *old_inode,
+ struct dentry *old_dentry,
+ struct inode *new_inode,
+ struct dentry *new_dentry)
+{
+ return 0;
+}
+
+static void dummy_inode_post_rename (struct inode *old_inode,
+ struct dentry *old_dentry,
+ struct inode *new_inode,
+ struct dentry *new_dentry)
+{
+ return;
+}
+
+static int dummy_inode_readlink (struct dentry *dentry)
+{
+ return 0;
+}
+
+static int dummy_inode_follow_link (struct dentry *dentry,
+ struct nameidata *nameidata)
+{
+ return 0;
+}
+
+static int dummy_inode_permission (struct inode *inode, int mask)
+{
+ return 0;
+}
+
+static int dummy_inode_permission_lite (struct inode *inode, int mask)
+{
+ return 0;
+}
+
+static int dummy_inode_setattr (struct dentry *dentry, struct iattr *iattr)
+{
+ return 0;
+}
+
+static int dummy_inode_getattr (struct vfsmount *mnt, struct dentry *dentry)
+{
+ return 0;
+}
+
+static void dummy_post_lookup (struct inode *ino, struct dentry *d)
+{
+ return;
+}
+
+static void dummy_delete (struct inode *ino)
+{
+ return;
+}
+
+static int dummy_inode_setxattr (struct dentry *dentry, char *name, void *value,
+ size_t size, int flags)
+{
+ return 0;
+}
+
+static int dummy_inode_getxattr (struct dentry *dentry, char *name)
+{
+ return 0;
+}
+
+static int dummy_inode_listxattr (struct dentry *dentry)
+{
+ return 0;
+}
+
+static int dummy_inode_removexattr (struct dentry *dentry, char *name)
+{
+ return 0;
+}
+
+static int dummy_file_permission (struct file *file, int mask)
+{
+ return 0;
+}
+
+static int dummy_file_alloc_security (struct file *file)
+{
+ return 0;
+}
+
+static void dummy_file_free_security (struct file *file)
+{
+ return;
+}
+
+static int dummy_file_llseek (struct file *file)
+{
+ return 0;
+}
+
+static int dummy_file_ioctl (struct file *file, unsigned int command,
+ unsigned long arg)
+{
+ return 0;
+}
+
+static int dummy_file_mmap (struct file *file, unsigned long prot,
+ unsigned long flags)
+{
+ return 0;
+}
+
+static int dummy_file_mprotect (struct vm_area_struct *vma, unsigned long prot)
+{
+ return 0;
+}
+
+static int dummy_file_lock (struct file *file, unsigned int cmd, int blocking)
+{
+ return 0;
+}
+
+static int dummy_file_fcntl (struct file *file, unsigned int cmd,
+ unsigned long arg)
+{
+ return 0;
+}
+
+static int dummy_file_set_fowner (struct file *file)
+{
+ return 0;
+}
+
+static int dummy_file_send_sigiotask (struct task_struct *tsk,
+ struct fown_struct *fown, int fd,
+ int reason)
+{
+ return 0;
+}
+
+static int dummy_file_receive (struct file *file)
+{
+ return 0;
+}
+
static int dummy_task_create (unsigned long clone_flags)
{
return 0;
@@ -201,15 +508,74 @@ struct security_operations dummy_security_ops = {
.capget = dummy_capget,
.capset_check = dummy_capset_check,
.capset_set = dummy_capset_set,
+ .acct = dummy_act,
.capable = dummy_capable,
.sys_security = dummy_sys_security,
-
+ quotactl: dummy_quotactl,
+ quota_on: dummy_quota_on,
+
.bprm_alloc_security = dummy_bprm_alloc_security,
.bprm_free_security = dummy_bprm_free_security,
.bprm_compute_creds = dummy_bprm_compute_creds,
.bprm_set_security = dummy_bprm_set_security,
.bprm_check_security = dummy_bprm_check_security,
+ sb_alloc_security: dummy_sb_alloc_security,
+ sb_free_security: dummy_sb_free_security,
+ sb_statfs: dummy_sb_statfs,
+ sb_mount: dummy_mount,
+ sb_check_sb: dummy_check_sb,
+ sb_umount: dummy_umount,
+ sb_umount_close: dummy_umount_close,
+ sb_umount_busy: dummy_umount_busy,
+ sb_post_remount: dummy_post_remount,
+ sb_post_mountroot: dummy_post_mountroot,
+ sb_post_addmount: dummy_post_addmount,
+ sb_pivotroot: dummy_pivotroot,
+ sb_post_pivotroot: dummy_post_pivotroot,
+
+ inode_alloc_security: dummy_inode_alloc_security,
+ inode_free_security: dummy_inode_free_security,
+ inode_create: dummy_inode_create,
+ inode_post_create: dummy_inode_post_create,
+ inode_link: dummy_inode_link,
+ inode_post_link: dummy_inode_post_link,
+ inode_unlink: dummy_inode_unlink,
+ inode_symlink: dummy_inode_symlink,
+ inode_post_symlink: dummy_inode_post_symlink,
+ inode_mkdir: dummy_inode_mkdir,
+ inode_post_mkdir: dummy_inode_post_mkdir,
+ inode_rmdir: dummy_inode_rmdir,
+ inode_mknod: dummy_inode_mknod,
+ inode_post_mknod: dummy_inode_post_mknod,
+ inode_rename: dummy_inode_rename,
+ inode_post_rename: dummy_inode_post_rename,
+ inode_readlink: dummy_inode_readlink,
+ inode_follow_link: dummy_inode_follow_link,
+ inode_permission: dummy_inode_permission,
+ inode_permission_lite: dummy_inode_permission_lite,
+ inode_setattr: dummy_inode_setattr,
+ inode_getattr: dummy_inode_getattr,
+ inode_post_lookup: dummy_post_lookup,
+ inode_delete: dummy_delete,
+ inode_setxattr: dummy_inode_setxattr,
+ inode_getxattr: dummy_inode_getxattr,
+ inode_listxattr: dummy_inode_listxattr,
+ inode_removexattr: dummy_inode_removexattr,
+
+ file_permission: dummy_file_permission,
+ file_alloc_security: dummy_file_alloc_security,
+ file_free_security: dummy_file_free_security,
+ file_llseek: dummy_file_llseek,
+ file_ioctl: dummy_file_ioctl,
+ file_mmap: dummy_file_mmap,
+ file_mprotect: dummy_file_mprotect,
+ file_lock: dummy_file_lock,
+ file_fcntl: dummy_file_fcntl,
+ file_set_fowner: dummy_file_set_fowner,
+ file_send_sigiotask: dummy_file_send_sigiotask,
+ file_receive: dummy_file_receive,
+
.task_create = dummy_task_create,
.task_alloc_security = dummy_task_alloc_security,
.task_free_security = dummy_task_free_security,
@@ -229,7 +595,7 @@ struct security_operations dummy_security_ops = {
.task_prctl = dummy_task_prctl,
.task_kmod_set_label = dummy_task_kmod_set_label,
.task_reparent_to_init = dummy_task_reparent_to_init,
-
+
.register_security = dummy_register,
.unregister_security = dummy_unregister,
};