]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd/sd-bus/bus-creds.h
Merge pull request #32684 from YHNdnzj/pr-followups
[thirdparty/systemd.git] / src / libsystemd / sd-bus / bus-creds.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3
4 #include <stdbool.h>
5
6 #include "sd-bus.h"
7
8 #include "pidref.h"
9 #include "user-util.h"
10
11 struct sd_bus_creds {
12 bool allocated;
13 unsigned n_ref;
14
15 uint64_t mask;
16 uint64_t augmented;
17
18 uid_t uid;
19 uid_t euid;
20 uid_t suid;
21 uid_t fsuid;
22 gid_t gid;
23 gid_t egid;
24 gid_t sgid;
25 gid_t fsgid;
26
27 gid_t *supplementary_gids;
28 unsigned n_supplementary_gids;
29
30 pid_t ppid;
31 pid_t pid;
32 pid_t tid;
33 int pidfd;
34
35 char *comm;
36 char *tid_comm;
37 char *exe;
38
39 char *cmdline;
40 size_t cmdline_size;
41 char **cmdline_array;
42
43 char *cgroup;
44 char *session;
45 char *unit;
46 char *user_unit;
47 char *slice;
48 char *user_slice;
49
50 char *tty;
51
52 uint32_t *capability;
53
54 uint32_t audit_session_id;
55 uid_t audit_login_uid;
56
57 char *label;
58
59 char *unique_name;
60
61 char **well_known_names;
62 bool well_known_names_driver:1;
63 bool well_known_names_local:1;
64
65 char *cgroup_root;
66
67 char *description, *unescaped_description;
68 };
69
70 #define SD_BUS_CREDS_INIT_FIELDS \
71 .uid = UID_INVALID, \
72 .euid = UID_INVALID, \
73 .suid = UID_INVALID, \
74 .fsuid = UID_INVALID, \
75 .gid = GID_INVALID, \
76 .egid = GID_INVALID, \
77 .sgid = GID_INVALID, \
78 .fsgid = GID_INVALID, \
79 .pidfd = -EBADF, \
80 .audit_login_uid = UID_INVALID
81
82 sd_bus_creds* bus_creds_new(void);
83
84 void bus_creds_done(sd_bus_creds *c);
85
86 int bus_creds_add_more(sd_bus_creds *c, uint64_t mask, PidRef *pidref, pid_t tid);
87
88 int bus_creds_extend_by_pid(sd_bus_creds *c, uint64_t mask, sd_bus_creds **ret);