LXC
Loading...
Searching...
No Matches
attach_options.h
1/* SPDX-License-Identifier: LGPL-2.1+ */
2
3#ifndef __LXC_ATTACH_OPTIONS_H
4#define __LXC_ATTACH_OPTIONS_H
5
6#include <sys/types.h>
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
15typedef enum lxc_attach_env_policy_t {
16 LXC_ATTACH_KEEP_ENV = 0,
17#define LXC_ATTACH_KEEP_ENV LXC_ATTACH_KEEP_ENV
18
19 LXC_ATTACH_CLEAR_ENV = 1,
20#define LXC_ATTACH_CLEAR_ENV LXC_ATTACH_CLEAR_ENV
21} lxc_attach_env_policy_t;
22
23enum {
24 /* The following are on by default: */
25 LXC_ATTACH_MOVE_TO_CGROUP = 0x00000001,
26#define LXC_ATTACH_MOVE_TO_CGROUP LXC_ATTACH_MOVE_TO_CGROUP
27
28 LXC_ATTACH_DROP_CAPABILITIES = 0x00000002,
29#define LXC_ATTACH_DROP_CAPABILITIES LXC_ATTACH_DROP_CAPABILITIES
30
31 LXC_ATTACH_SET_PERSONALITY = 0x00000004,
32#define LXC_ATTACH_SET_PERSONALITY LXC_ATTACH_SET_PERSONALITY
33
34 LXC_ATTACH_LSM_EXEC = 0x00000008,
35#define LXC_ATTACH_LSM_EXEC LXC_ATTACH_LSM_EXEC
36
37
38 /* The following are off by default: */
39 LXC_ATTACH_REMOUNT_PROC_SYS = 0x00010000,
40#define LXC_ATTACH_REMOUNT_PROC_SYS LXC_ATTACH_REMOUNT_PROC_SYS
41
42 LXC_ATTACH_LSM_NOW = 0x00020000,
43#define LXC_ATTACH_LSM_NOW LXC_ATTACH_LSM_NOW
44
45 /* Set PR_SET_NO_NEW_PRIVS to block execve() gainable privileges. */
46 LXC_ATTACH_NO_NEW_PRIVS = 0x00040000,
47#define LXC_ATTACH_NO_NEW_PRIVS LXC_ATTACH_NO_NEW_PRIVS
48
49 LXC_ATTACH_TERMINAL = 0x00080000,
50#define LXC_ATTACH_TERMINAL LXC_ATTACH_TERMINAL
51
52 LXC_ATTACH_LSM_LABEL = 0x00100000,
53#define LXC_ATTACH_LSM_LABEL LXC_ATTACH_LSM_LABEL
54
55 LXC_ATTACH_SETGROUPS = 0x00200000,
56#define LXC_ATTACH_SETGROUPS LXC_ATTACH_SETGROUPS
57
58
59 /* We have 16 bits for things that are on by default and 16 bits that
60 * are off by default, that should be sufficient to keep binary
61 * compatibility for a while
62 */
63 LXC_ATTACH_DEFAULT = 0x0000FFFF
64#define LXC_ATTACH_DEFAULT LXC_ATTACH_DEFAULT
65};
66
68#define LXC_ATTACH_LSM (LXC_ATTACH_LSM_EXEC | LXC_ATTACH_LSM_NOW | LXC_ATTACH_LSM_LABEL)
69
78typedef int (*lxc_attach_exec_t)(void* payload);
79
80typedef struct lxc_groups_t {
81 size_t size;
82 gid_t *list;