1
2
3
4
5
6
7
8
9
10
11
12
13
14 #ifndef _SAFESETID_H
15 #define _SAFESETID_H
16
17 #include <linux/types.h>
18 #include <linux/uidgid.h>
19 #include <linux/hashtable.h>
20
21
22 extern int safesetid_initialized;
23
24 enum sid_policy_type {
25 SIDPOL_DEFAULT,
26 SIDPOL_CONSTRAINED,
27 SIDPOL_ALLOWED
28 };
29
30
31
32
33
34 struct setuid_rule {
35 struct hlist_node next;
36 kuid_t src_uid;
37 kuid_t dst_uid;
38 };
39
40 #define SETID_HASH_BITS 8
41
42 struct setuid_ruleset {
43 DECLARE_HASHTABLE(rules, SETID_HASH_BITS);
44 char *policy_str;
45 struct rcu_head rcu;
46 };
47
48 enum sid_policy_type _setuid_policy_lookup(struct setuid_ruleset *policy,
49 kuid_t src, kuid_t dst);
50
51 extern struct setuid_ruleset __rcu *safesetid_setuid_rules;
52
53 #endif