xref: /openbmc/linux/security/apparmor/include/capability.h (revision b97d6790d03b763eca08847a9a5869a4291b9f9a)
1b886d83cSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
20ed3b28aSJohn Johansen /*
30ed3b28aSJohn Johansen  * AppArmor security module
40ed3b28aSJohn Johansen  *
50ed3b28aSJohn Johansen  * This file contains AppArmor capability mediation definitions.
60ed3b28aSJohn Johansen  *
70ed3b28aSJohn Johansen  * Copyright (C) 1998-2008 Novell/SUSE
8dd0c6e86SJohn Johansen  * Copyright 2009-2013 Canonical Ltd.
90ed3b28aSJohn Johansen  */
100ed3b28aSJohn Johansen 
110ed3b28aSJohn Johansen #ifndef __AA_CAPABILITY_H
120ed3b28aSJohn Johansen #define __AA_CAPABILITY_H
130ed3b28aSJohn Johansen 
140ed3b28aSJohn Johansen #include <linux/sched.h>
150ed3b28aSJohn Johansen 
1684f1f787SJohn Johansen #include "apparmorfs.h"
1784f1f787SJohn Johansen 
18c70c86c4SJohn Johansen struct aa_label;
190ed3b28aSJohn Johansen 
200ed3b28aSJohn Johansen /* aa_caps - confinement data for capabilities
210ed3b28aSJohn Johansen  * @allowed: capabilities mask
220ed3b28aSJohn Johansen  * @audit: caps that are to be audited
23c70c86c4SJohn Johansen  * @denied: caps that are explicitly denied
240ed3b28aSJohn Johansen  * @quiet: caps that should not be audited
250ed3b28aSJohn Johansen  * @kill: caps that when requested will result in the task being killed
260ed3b28aSJohn Johansen  * @extended: caps that are subject finer grained mediation
270ed3b28aSJohn Johansen  */
280ed3b28aSJohn Johansen struct aa_caps {
290ed3b28aSJohn Johansen 	kernel_cap_t allow;
300ed3b28aSJohn Johansen 	kernel_cap_t audit;
31c70c86c4SJohn Johansen 	kernel_cap_t denied;
320ed3b28aSJohn Johansen 	kernel_cap_t quiet;
330ed3b28aSJohn Johansen 	kernel_cap_t kill;
340ed3b28aSJohn Johansen 	kernel_cap_t extended;
350ed3b28aSJohn Johansen };
360ed3b28aSJohn Johansen 
37c97204baSJohn Johansen extern struct aa_sfs_entry aa_sfs_entry_caps[];
3884f1f787SJohn Johansen 
39*690f33e1SJohn Johansen int aa_capable(const struct cred *subj_cred, struct aa_label *label,
40*690f33e1SJohn Johansen 	       int cap, unsigned int opts);
410ed3b28aSJohn Johansen 
aa_free_cap_rules(struct aa_caps * caps)420ed3b28aSJohn Johansen static inline void aa_free_cap_rules(struct aa_caps *caps)
430ed3b28aSJohn Johansen {
440ed3b28aSJohn Johansen 	/* NOP */
450ed3b28aSJohn Johansen }
460ed3b28aSJohn Johansen 
470ed3b28aSJohn Johansen #endif /* __AA_CAPBILITY_H */
48