]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
5b12334d LP |
2 | #pragma once |
3 | ||
5b12334d LP |
4 | #include <stdbool.h> |
5 | ||
6 | #include "sd-bus.h" | |
5b12334d | 7 | |
71be6406 LP |
8 | #include "pidref.h" |
9 | #include "user-util.h" | |
10 | ||
5b12334d LP |
11 | struct sd_bus_creds { |
12 | bool allocated; | |
13 | unsigned n_ref; | |
0f514420 | 14 | |
5b12334d | 15 | uint64_t mask; |
0f514420 | 16 | uint64_t augmented; |
5b12334d LP |
17 | |
18 | uid_t uid; | |
705a415f LP |
19 | uid_t euid; |
20 | uid_t suid; | |
21 | uid_t fsuid; | |
5b12334d | 22 | gid_t gid; |
705a415f LP |
23 | gid_t egid; |
24 | gid_t sgid; | |
25 | gid_t fsgid; | |
26 | ||
02581590 LP |
27 | gid_t *supplementary_gids; |
28 | unsigned n_supplementary_gids; | |
29 | ||
1386e47d | 30 | pid_t ppid; |
5b12334d | 31 | pid_t pid; |
5b12334d | 32 | pid_t tid; |
71be6406 | 33 | int pidfd; |
5b12334d LP |
34 | |
35 | char *comm; | |
36 | char *tid_comm; | |
37 | char *exe; | |
38 | ||
39 | char *cmdline; | |
49b832c5 | 40 | size_t cmdline_size; |
5b12334d LP |
41 | char **cmdline_array; |
42 | ||
43 | char *cgroup; | |
44 | char *session; | |
45 | char *unit; | |
46 | char *user_unit; | |
47 | char *slice; | |
329ac4bc | 48 | char *user_slice; |
5b12334d | 49 | |
4761e880 LP |
50 | char *tty; |
51 | ||
7d9fcc2b | 52 | uint32_t *capability; |
5b12334d LP |
53 | |
54 | uint32_t audit_session_id; | |
55 | uid_t audit_login_uid; | |
56 | ||
57 | char *label; | |
49b832c5 LP |
58 | |
59 | char *unique_name; | |
60 | ||
65dae17a | 61 | char **well_known_names; |
fb6d9b77 LP |
62 | bool well_known_names_driver:1; |
63 | bool well_known_names_local:1; | |
751bc6ac LP |
64 | |
65 | char *cgroup_root; | |
cccb0b2c | 66 | |
455971c1 | 67 | char *description, *unescaped_description; |
5b12334d LP |
68 | }; |
69 | ||
71be6406 LP |
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 | ||
5b12334d LP |
82 | sd_bus_creds* bus_creds_new(void); |
83 | ||
84 | void bus_creds_done(sd_bus_creds *c); | |
85 | ||
71be6406 | 86 | int bus_creds_add_more(sd_bus_creds *c, uint64_t mask, PidRef *pidref, pid_t tid); |
49b832c5 LP |
87 | |
88 | int bus_creds_extend_by_pid(sd_bus_creds *c, uint64_t mask, sd_bus_creds **ret); |