Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/security/apparmor/include/audit.h
10817 views
1
/*
2
* AppArmor security module
3
*
4
* This file contains AppArmor auditing function definitions.
5
*
6
* Copyright (C) 1998-2008 Novell/SUSE
7
* Copyright 2009-2010 Canonical Ltd.
8
*
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License as
11
* published by the Free Software Foundation, version 2 of the
12
* License.
13
*/
14
15
#ifndef __AA_AUDIT_H
16
#define __AA_AUDIT_H
17
18
#include <linux/audit.h>
19
#include <linux/fs.h>
20
#include <linux/lsm_audit.h>
21
#include <linux/sched.h>
22
#include <linux/slab.h>
23
24
#include "file.h"
25
26
struct aa_profile;
27
28
extern const char *audit_mode_names[];
29
#define AUDIT_MAX_INDEX 5
30
31
#define AUDIT_APPARMOR_AUTO 0 /* auto choose audit message type */
32
33
enum audit_mode {
34
AUDIT_NORMAL, /* follow normal auditing of accesses */
35
AUDIT_QUIET_DENIED, /* quiet all denied access messages */
36
AUDIT_QUIET, /* quiet all messages */
37
AUDIT_NOQUIET, /* do not quiet audit messages */
38
AUDIT_ALL /* audit all accesses */
39
};
40
41
enum audit_type {
42
AUDIT_APPARMOR_AUDIT,
43
AUDIT_APPARMOR_ALLOWED,
44
AUDIT_APPARMOR_DENIED,
45
AUDIT_APPARMOR_HINT,
46
AUDIT_APPARMOR_STATUS,
47
AUDIT_APPARMOR_ERROR,
48
AUDIT_APPARMOR_KILL
49
};
50
51
extern const char *op_table[];
52
enum aa_ops {
53
OP_NULL,
54
55
OP_SYSCTL,
56
OP_CAPABLE,
57
58
OP_UNLINK,
59
OP_MKDIR,
60
OP_RMDIR,
61
OP_MKNOD,
62
OP_TRUNC,
63
OP_LINK,
64
OP_SYMLINK,
65
OP_RENAME_SRC,
66
OP_RENAME_DEST,
67
OP_CHMOD,
68
OP_CHOWN,
69
OP_GETATTR,
70
OP_OPEN,
71
72
OP_FPERM,
73
OP_FLOCK,
74
OP_FMMAP,
75
OP_FMPROT,
76
77
OP_CREATE,
78
OP_POST_CREATE,
79
OP_BIND,
80
OP_CONNECT,
81
OP_LISTEN,
82
OP_ACCEPT,
83
OP_SENDMSG,
84
OP_RECVMSG,
85
OP_GETSOCKNAME,
86
OP_GETPEERNAME,
87
OP_GETSOCKOPT,
88
OP_SETSOCKOPT,
89
OP_SOCK_SHUTDOWN,
90
91
OP_PTRACE,
92
93
OP_EXEC,
94
OP_CHANGE_HAT,
95
OP_CHANGE_PROFILE,
96
OP_CHANGE_ONEXEC,
97
98
OP_SETPROCATTR,
99
OP_SETRLIMIT,
100
101
OP_PROF_REPL,
102
OP_PROF_LOAD,
103
OP_PROF_RM,
104
};
105
106
107
/* define a short hand for apparmor_audit_data portion of common_audit_data */
108
#define aad apparmor_audit_data
109
110
void aa_audit_msg(int type, struct common_audit_data *sa,
111
void (*cb) (struct audit_buffer *, void *));
112
int aa_audit(int type, struct aa_profile *profile, gfp_t gfp,
113
struct common_audit_data *sa,
114
void (*cb) (struct audit_buffer *, void *));
115
116
static inline int complain_error(int error)
117
{
118
if (error == -EPERM || error == -EACCES)
119
return 0;
120
return error;
121
}
122
123
#endif /* __AA_AUDIT_H */
124
125