mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-10-26 10:57:38 +08:00
lsm: add LSM_AUDIT_DATA_NS for namespace audit records
Add a new LSM audit data type LSM_AUDIT_DATA_NS that logs namespace information in audit records. Two fields are provided: - namespace_type: the CLONE_NEW* flag identifying the namespace type, logged in hexadecimal. - namespace_id: the unique 64-bit namespace identifier, retrievable from userspace via NS_GET_ID or listns(2). Unlike the proc inode number (inum), namespace_id is never recycled. For namespace creation denials, namespace_id is 0 because the namespace does not exist yet. A new audit data type is needed because no existing LSM_AUDIT_DATA_* type carries namespace information. The closest alternatives (e.g. LSM_AUDIT_DATA_TASK or LSM_AUDIT_DATA_NONE with custom strings) would either lose the namespace type or require ad-hoc formatting that bypasses the structured audit data union. Cc: Günther Noack <gnoack@google.com> Cc: Paul Moore <paul@paul-moore.com> Reviewed-by: Christian Brauner <brauner@kernel.org> Reviewed-by: Günther Noack <gnoack@google.com> Signed-off-by: Mickaël Salaün <mic@digikod.net> [PM: corrected audit fields in the description, subject tweaks] Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
1 parent
f675d2e955
commit
e26307d830
2 files changed
+9
No files matched your search
@@ -78,6 +78,7 @@ struct common_audit_data {
|
||||
#define LSM_AUDIT_DATA_NOTIFICATION 16
|
||||
#define LSM_AUDIT_DATA_ANONINODE 17
|
||||
#define LSM_AUDIT_DATA_NLMSGTYPE 18
|
||||
#define LSM_AUDIT_DATA_NS 19
|
||||
union {
|
||||
struct path path;
|
||||
struct dentry *dentry;
|
||||
@@ -100,6 +101,10 @@ struct common_audit_data {
|
||||
int reason;
|
||||
const char *anonclass;
|
||||
u16 nlmsg_type;
|
||||
struct {
|
||||
u32 ns_type;
|
||||
u64 ns_id;
|
||||
} ns;
|
||||
} u;
|
||||
/* this union contains LSM specific data */
|
||||
union {
|
||||
|
||||
@@ -403,6 +403,10 @@ void audit_log_lsm_data(struct audit_buffer *ab,
|
||||
case LSM_AUDIT_DATA_NLMSGTYPE:
|
||||
audit_log_format(ab, " nl-msgtype=%hu", a->u.nlmsg_type);
|
||||
break;
|
||||
case LSM_AUDIT_DATA_NS:
|
||||
audit_log_format(ab, " namespace_type=0x%x namespace_id=%llu",
|
||||
a->u.ns.ns_type, a->u.ns.ns_id);
|
||||
break;
|
||||
} /* switch (a->type) */
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user