]>
Commit | Line | Data |
---|---|---|
1 | /* SPDX-License-Identifier: LGPL-2.1+ */ | |
2 | /*** | |
3 | Copyright 2016 Lennart Poettering | |
4 | ***/ | |
5 | ||
6 | #include <stdlib.h> | |
7 | ||
8 | #include "log.h" | |
9 | #include "nspawn-patch-uid.h" | |
10 | #include "user-util.h" | |
11 | #include "util.h" | |
12 | ||
13 | int main(int argc, char *argv[]) { | |
14 | uid_t shift, range; | |
15 | int r; | |
16 | ||
17 | log_set_max_level(LOG_DEBUG); | |
18 | log_parse_environment(); | |
19 | log_open(); | |
20 | ||
21 | if (argc != 4) { | |
22 | log_error("Expected PATH SHIFT RANGE parameters."); | |
23 | return EXIT_FAILURE; | |
24 | } | |
25 | ||
26 | r = parse_uid(argv[2], &shift); | |
27 | if (r < 0) { | |
28 | log_error_errno(r, "Failed to parse UID shift %s.", argv[2]); | |
29 | return EXIT_FAILURE; | |
30 | } | |
31 | ||
32 | r = parse_gid(argv[3], &range); | |
33 | if (r < 0) { | |
34 | log_error_errno(r, "Failed to parse UID range %s.", argv[3]); | |
35 | return EXIT_FAILURE; | |
36 | } | |
37 | ||
38 | r = path_patch_uid(argv[1], shift, range); | |
39 | if (r < 0) { | |
40 | log_error_errno(r, "Failed to patch directory tree: %m"); | |
41 | return EXIT_FAILURE; | |
42 | } | |
43 | ||
44 | log_info("Changed: %s", yes_no(r)); | |
45 | ||
46 | return EXIT_SUCCESS; | |
47 | } |