ima: rename PATH_CHECK to FILE_CHECK
With the movement of the ima hooks functions were renamed from *path* to *file* since they always deal with struct file. This patch renames some of the ima internal flags to make them consistent with the rest of the code. Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com> Signed-off-by: Eric Paris <eparis@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
9bbb6cad01
commit
1e93d0052d
5 changed files with 17 additions and 14 deletions
|
@ -20,7 +20,7 @@ Description:
|
||||||
lsm: [[subj_user=] [subj_role=] [subj_type=]
|
lsm: [[subj_user=] [subj_role=] [subj_type=]
|
||||||
[obj_user=] [obj_role=] [obj_type=]]
|
[obj_user=] [obj_role=] [obj_type=]]
|
||||||
|
|
||||||
base: func:= [BPRM_CHECK][FILE_MMAP][INODE_PERMISSION]
|
base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK]
|
||||||
mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC]
|
mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC]
|
||||||
fsmagic:= hex value
|
fsmagic:= hex value
|
||||||
uid:= decimal value
|
uid:= decimal value
|
||||||
|
@ -40,11 +40,11 @@ Description:
|
||||||
|
|
||||||
measure func=BPRM_CHECK
|
measure func=BPRM_CHECK
|
||||||
measure func=FILE_MMAP mask=MAY_EXEC
|
measure func=FILE_MMAP mask=MAY_EXEC
|
||||||
measure func=INODE_PERM mask=MAY_READ uid=0
|
measure func=FILE_CHECK mask=MAY_READ uid=0
|
||||||
|
|
||||||
The default policy measures all executables in bprm_check,
|
The default policy measures all executables in bprm_check,
|
||||||
all files mmapped executable in file_mmap, and all files
|
all files mmapped executable in file_mmap, and all files
|
||||||
open for read by root in inode_permission.
|
open for read by root in do_filp_open.
|
||||||
|
|
||||||
Examples of LSM specific definitions:
|
Examples of LSM specific definitions:
|
||||||
|
|
||||||
|
@ -54,8 +54,8 @@ Description:
|
||||||
|
|
||||||
dont_measure obj_type=var_log_t
|
dont_measure obj_type=var_log_t
|
||||||
dont_measure obj_type=auditd_log_t
|
dont_measure obj_type=auditd_log_t
|
||||||
measure subj_user=system_u func=INODE_PERM mask=MAY_READ
|
measure subj_user=system_u func=FILE_CHECK mask=MAY_READ
|
||||||
measure subj_role=system_r func=INODE_PERM mask=MAY_READ
|
measure subj_role=system_r func=FILE_CHECK mask=MAY_READ
|
||||||
|
|
||||||
Smack:
|
Smack:
|
||||||
measure subj_user=_ func=INODE_PERM mask=MAY_READ
|
measure subj_user=_ func=FILE_CHECK mask=MAY_READ
|
||||||
|
|
|
@ -130,7 +130,7 @@ void iint_free(struct kref *kref);
|
||||||
void iint_rcu_free(struct rcu_head *rcu);
|
void iint_rcu_free(struct rcu_head *rcu);
|
||||||
|
|
||||||
/* IMA policy related functions */
|
/* IMA policy related functions */
|
||||||
enum ima_hooks { PATH_CHECK = 1, FILE_MMAP, BPRM_CHECK };
|
enum ima_hooks { FILE_CHECK = 1, FILE_MMAP, BPRM_CHECK };
|
||||||
|
|
||||||
int ima_match_policy(struct inode *inode, enum ima_hooks func, int mask);
|
int ima_match_policy(struct inode *inode, enum ima_hooks func, int mask);
|
||||||
void ima_init_policy(void);
|
void ima_init_policy(void);
|
||||||
|
|
|
@ -95,12 +95,12 @@ void ima_add_violation(struct inode *inode, const unsigned char *filename,
|
||||||
* ima_must_measure - measure decision based on policy.
|
* ima_must_measure - measure decision based on policy.
|
||||||
* @inode: pointer to inode to measure
|
* @inode: pointer to inode to measure
|
||||||
* @mask: contains the permission mask (MAY_READ, MAY_WRITE, MAY_EXECUTE)
|
* @mask: contains the permission mask (MAY_READ, MAY_WRITE, MAY_EXECUTE)
|
||||||
* @function: calling function (PATH_CHECK, BPRM_CHECK, FILE_MMAP)
|
* @function: calling function (FILE_CHECK, BPRM_CHECK, FILE_MMAP)
|
||||||
*
|
*
|
||||||
* The policy is defined in terms of keypairs:
|
* The policy is defined in terms of keypairs:
|
||||||
* subj=, obj=, type=, func=, mask=, fsmagic=
|
* subj=, obj=, type=, func=, mask=, fsmagic=
|
||||||
* subj,obj, and type: are LSM specific.
|
* subj,obj, and type: are LSM specific.
|
||||||
* func: PATH_CHECK | BPRM_CHECK | FILE_MMAP
|
* func: FILE_CHECK | BPRM_CHECK | FILE_MMAP
|
||||||
* mask: contains the permission mask
|
* mask: contains the permission mask
|
||||||
* fsmagic: hex value
|
* fsmagic: hex value
|
||||||
*
|
*
|
||||||
|
|
|
@ -153,7 +153,7 @@ void ima_counts_get(struct file *file)
|
||||||
if (!iint)
|
if (!iint)
|
||||||
return;
|
return;
|
||||||
mutex_lock(&iint->mutex);
|
mutex_lock(&iint->mutex);
|
||||||
rc = ima_must_measure(iint, inode, MAY_READ, PATH_CHECK);
|
rc = ima_must_measure(iint, inode, MAY_READ, FILE_CHECK);
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
@ -312,7 +312,7 @@ int ima_file_check(struct file *file, int mask)
|
||||||
|
|
||||||
rc = process_measurement(file, file->f_dentry->d_name.name,
|
rc = process_measurement(file, file->f_dentry->d_name.name,
|
||||||
mask & (MAY_READ | MAY_WRITE | MAY_EXEC),
|
mask & (MAY_READ | MAY_WRITE | MAY_EXEC),
|
||||||
PATH_CHECK);
|
FILE_CHECK);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(ima_file_check);
|
EXPORT_SYMBOL_GPL(ima_file_check);
|
||||||
|
|
|
@ -67,7 +67,7 @@ static struct ima_measure_rule_entry default_rules[] = {
|
||||||
.flags = IMA_FUNC | IMA_MASK},
|
.flags = IMA_FUNC | IMA_MASK},
|
||||||
{.action = MEASURE,.func = BPRM_CHECK,.mask = MAY_EXEC,
|
{.action = MEASURE,.func = BPRM_CHECK,.mask = MAY_EXEC,
|
||||||
.flags = IMA_FUNC | IMA_MASK},
|
.flags = IMA_FUNC | IMA_MASK},
|
||||||
{.action = MEASURE,.func = PATH_CHECK,.mask = MAY_READ,.uid = 0,
|
{.action = MEASURE,.func = FILE_CHECK,.mask = MAY_READ,.uid = 0,
|
||||||
.flags = IMA_FUNC | IMA_MASK | IMA_UID},
|
.flags = IMA_FUNC | IMA_MASK | IMA_UID},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -282,8 +282,11 @@ static int ima_parse_rule(char *rule, struct ima_measure_rule_entry *entry)
|
||||||
break;
|
break;
|
||||||
case Opt_func:
|
case Opt_func:
|
||||||
audit_log_format(ab, "func=%s ", args[0].from);
|
audit_log_format(ab, "func=%s ", args[0].from);
|
||||||
if (strcmp(args[0].from, "PATH_CHECK") == 0)
|
if (strcmp(args[0].from, "FILE_CHECK") == 0)
|
||||||
entry->func = PATH_CHECK;
|
entry->func = FILE_CHECK;
|
||||||
|
/* PATH_CHECK is for backwards compat */
|
||||||
|
else if (strcmp(args[0].from, "PATH_CHECK") == 0)
|
||||||
|
entry->func = FILE_CHECK;
|
||||||
else if (strcmp(args[0].from, "FILE_MMAP") == 0)
|
else if (strcmp(args[0].from, "FILE_MMAP") == 0)
|
||||||
entry->func = FILE_MMAP;
|
entry->func = FILE_MMAP;
|
||||||
else if (strcmp(args[0].from, "BPRM_CHECK") == 0)
|
else if (strcmp(args[0].from, "BPRM_CHECK") == 0)
|
||||||
|
|
Loading…
Reference in a new issue