diff --git a/src/libotutil/ot-unix-utils.c b/src/libotutil/ot-unix-utils.c index 7a3192fe..bf2310de 100644 --- a/src/libotutil/ot-unix-utils.c +++ b/src/libotutil/ot-unix-utils.c @@ -32,6 +32,9 @@ #include #include #include +#include +#include +#include #include /* Ensure that a pathname component @name does not contain the special Unix @@ -107,5 +110,12 @@ ot_util_path_split_validate (const char *path, GPtrArray **out_components, GErro gboolean ot_util_process_privileged (void) { - return geteuid() == 0; + if (geteuid() != 0) + return FALSE; + + // https://github.com/containers/bootc/blob/c88fcfd6e145863408bde7d4706937dd323f64e2/lib/src/cli.rs#L621 + if (prctl (PR_CAPBSET_READ, CAP_SYS_ADMIN) != 1) + return FALSE; + + return TRUE; }