diff options
author | Scott Anderson <scott@anderso.nz> | 2020-04-28 20:44:05 +1200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-04-29 10:39:09 +0200 |
commit | 906c0766df2fec4bd32c316fd1b0d46fded5fc84 (patch) | |
tree | 2d32acf48e0638acfa55cd573413489e4d074517 /backend | |
parent | 98d949718c42a546466f79a4029b7d0d76650dc3 (diff) |
Remove libcap support
This is simply a false sense of security, and is worse than just using
setuid. CAP_SYS_ADMIN is an extremely serious capability that is
effectively as powerful as root.
It also required users to be in the input group, which allows any
process to keylog the entire system.
Diffstat (limited to 'backend')
-rw-r--r-- | backend/session/direct-ipc.c | 18 | ||||
-rw-r--r-- | backend/session/meson.build | 20 |
2 files changed, 0 insertions, 38 deletions
diff --git a/backend/session/direct-ipc.c b/backend/session/direct-ipc.c index 42ca00e1..94f34a88 100644 --- a/backend/session/direct-ipc.c +++ b/backend/session/direct-ipc.c @@ -24,23 +24,6 @@ enum { DRM_MAJOR = 226 }; -#if WLR_HAS_LIBCAP -#include <sys/capability.h> - -static bool have_permissions(void) { - cap_t cap = cap_get_proc(); - cap_flag_value_t val; - - if (!cap || cap_get_flag(cap, CAP_SYS_ADMIN, CAP_PERMITTED, &val) || val != CAP_SET) { - wlr_log(WLR_ERROR, "Do not have CAP_SYS_ADMIN; cannot become DRM master"); - cap_free(cap); - return false; - } - - cap_free(cap); - return true; -} -#else static bool have_permissions(void) { #ifdef __linux__ if (geteuid() != 0) { @@ -50,7 +33,6 @@ static bool have_permissions(void) { #endif return true; } -#endif static void send_msg(int sock, int fd, void *buf, size_t buf_len) { char control[CMSG_SPACE(sizeof(fd))] = {0}; diff --git a/backend/session/meson.build b/backend/session/meson.build index 65e4595d..81ff6d85 100644 --- a/backend/session/meson.build +++ b/backend/session/meson.build @@ -62,23 +62,3 @@ if logind_found wlr_files += files('logind.c') wlr_deps += logind endif - -# libcap - -msg = [] -if get_option('libcap').enabled() - msg += 'Install "libcap" or pass "-Dlibcap=disabled".' -endif -if not get_option('libcap').disabled() - msg += 'Required for POSIX capability support (Not needed if using logind).' -endif - -libcap = dependency('libcap', - required: get_option('libcap'), - not_found_message: '\n'.join(msg), -) -if libcap.found() - conf_data.set10('WLR_HAS_LIBCAP', true) - wlr_deps += libcap -endif - |