diff options
| author | Tobias Geerinckx-Rice <me@tobias.gr> | 2024-09-01 02:00:00 +0200 |
|---|---|---|
| committer | Tobias Geerinckx-Rice <me@tobias.gr> | 2024-09-08 02:00:00 +0200 |
| commit | 9c88f217bec9efeda02f934626a5da14014c2ab7 (patch) | |
| tree | 78ba2cfebf40db9ba244760388dcaa6b6d3ff54d | |
| parent | 3578fc58d29e2a74fcabbf1f99986e0f7018278b (diff) | |
services: Warn about unprivileged privileged-programs.
* gnu/services.scm (privileged-program->activation-gexp): Warn when a
privileged-program appears to lack all possible privilege.
Change-Id: I68ed8cb2cff88b11b090cf99a2cc7d6264b888e0
| -rw-r--r-- | gnu/services.scm | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/gnu/services.scm b/gnu/services.scm index f0bbbb27a51..8d0d5a08b45 100644 --- a/gnu/services.scm +++ b/gnu/services.scm | |||
| @@ -893,23 +893,26 @@ FILES must be a list of name/file-like object pairs." | |||
| 893 | 893 | ||
| 894 | (define (privileged-program->activation-gexp programs) | 894 | (define (privileged-program->activation-gexp programs) |
| 895 | "Return an activation gexp for privileged-program from PROGRAMS." | 895 | "Return an activation gexp for privileged-program from PROGRAMS." |
| 896 | (let ((programs (map (lambda (program) | 896 | (let ((programs |
| 897 | ;; FIXME This is really ugly, I didn't managed to use | 897 | (map (lambda (program) |
| 898 | ;; "inherit" | 898 | ;; FIXME This is really ugly, I didn't manage to use "inherit". |
| 899 | (let ((program-name (privileged-program-program program)) | 899 | (let ((program-name (privileged-program-program program)) |
| 900 | (setuid? (privileged-program-setuid? program)) | 900 | (setuid? (privileged-program-setuid? program)) |
| 901 | (setgid? (privileged-program-setgid? program)) | 901 | (setgid? (privileged-program-setgid? program)) |
| 902 | (user (privileged-program-user program)) | 902 | (user (privileged-program-user program)) |
| 903 | (group (privileged-program-group program)) | 903 | (group (privileged-program-group program)) |
| 904 | (capabilities (privileged-program-capabilities program))) | 904 | (capabilities (privileged-program-capabilities program))) |
| 905 | #~(privileged-program | 905 | (unless (or setuid? setgid? capabilities) |
| 906 | (setuid? #$setuid?) | 906 | (warning |
| 907 | (setgid? #$setgid?) | 907 | (G_ "so-called privileged-program ~s lacks any privilege~%") |
| 908 | (user #$user) | 908 | program-name)) |
| 909 | (group #$group) | 909 | #~(privileged-program (setuid? #$setuid?) |
| 910 | (capabilities #$capabilities) | 910 | (setgid? #$setgid?) |
| 911 | (program #$program-name)))) | 911 | (user #$user) |
| 912 | programs))) | 912 | (group #$group) |
| 913 | (capabilities #$capabilities) | ||
| 914 | (program #$program-name)))) | ||
| 915 | programs))) | ||
| 913 | (with-imported-modules (source-module-closure | 916 | (with-imported-modules (source-module-closure |
| 914 | '((gnu system privilege))) | 917 | '((gnu system privilege))) |
| 915 | #~(begin | 918 | #~(begin |
