]>
Commit | Line | Data |
---|---|---|
53e1b683 | 1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
a5c32cff | 2 | |
11c3a366 TA |
3 | #include <sys/stat.h> |
4 | ||
d7b8eec7 | 5 | #include "fileio-label.h" |
11c3a366 | 6 | #include "fileio.h" |
93cc7779 | 7 | #include "selinux-util.h" |
a5c32cff | 8 | |
39c38d77 | 9 | int write_string_file_atomic_label_ts(const char *fn, const char *line, struct timespec *ts) { |
a5c32cff HH |
10 | int r; |
11 | ||
ecabcf8b | 12 | r = mac_selinux_create_file_prepare(fn, S_IFREG); |
f7f628b5 | 13 | if (r < 0) |
a5c32cff HH |
14 | return r; |
15 | ||
39c38d77 | 16 | r = write_string_file_ts(fn, line, WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_ATOMIC, ts); |
a5c32cff | 17 | |
ecabcf8b | 18 | mac_selinux_create_file_clear(); |
a5c32cff HH |
19 | |
20 | return r; | |
21 | } | |
22 | ||
6e11e7e6 LP |
23 | int create_shutdown_run_nologin_or_warn(void) { |
24 | int r; | |
25 | ||
26 | /* This is used twice: once in systemd-user-sessions.service, in order to block logins when we actually go | |
27 | * down, and once in systemd-logind.service when shutdowns are scheduled, and logins are to be turned off a bit | |
28 | * in advance. We use the same wording of the message in both cases. */ | |
29 | ||
30 | r = write_string_file_atomic_label("/run/nologin", | |
31 | "System is going down. Unprivileged users are not permitted to log in anymore. " | |
32 | "For technical details, see pam_nologin(8)."); | |
33 | if (r < 0) | |
34 | return log_error_errno(r, "Failed to create /run/nologin: %m"); | |
35 | ||
36 | return 0; | |
37 | } |