It's generally preferrable to conditionalize on the actual ability to do
something then the context we run in.
#include "macro.h"
#include "execute.h"
-
+#include "capability.h"
#include "kmod-setup.h"
static void systemd_kmod_log(
}
int kmod_setup(void) {
+
static const struct {
const char *module;
const char *path;
unsigned int i;
int r;
+ if (have_effective_cap(CAP_SYS_MODULE) == 0)
+ return 0;
+
for (i = 0; i < ELEMENTSOF(kmod_table); i++) {
struct kmod_module *mod;
status_welcome();
#ifdef HAVE_KMOD
- if (detect_container(NULL) <= 0)
- kmod_setup();
+ kmod_setup();
#endif
hostname_setup();
machine_id_setup("");