From 9def673a2bddc30657425888e446b4c9f6ecc9a6 Mon Sep 17 00:00:00 2001 From: Přemysl Eric Janouch
Date: Wed, 27 Mar 2024 08:26:49 +0100 Subject: Install some binaries with the setuid bit --- CMakeLists.txt | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 27dab0c..f1d4292 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ configure_file (${PROJECT_SOURCE_DIR}/config.h.in include_directories (${PROJECT_BINARY_DIR}) # Build -set (targets wmstatus paswitch siprandom big-brother) +set (targets wmstatus paswitch siprandom) if ("${CMAKE_SYSTEM_NAME}" STREQUAL Linux) # These use Linux i2c APIs, but can be made to work on macOS list (APPEND targets brightness input-switch) @@ -47,7 +47,7 @@ elseif (APPLE) add_definitions (-D_DARWIN_C_SOURCE) endif () -foreach (name ${targets}) +foreach (name big-brother ${targets}) add_executable (${name} ${name}.c) endforeach () @@ -93,7 +93,20 @@ if (WITH_GDM) install (TARGETS gdm-switch-user DESTINATION ${CMAKE_INSTALL_BINDIR}) endif () -list (REMOVE_ITEM targets big-brother) +# These should be accessible by users, but need to touch system devices. +# Use the setuid bit, for simplicity. +foreach (target brightness input-switch) + if (${target} IN_LIST targets) + list (REMOVE_ITEM targets ${target}) + install (TARGETS ${target} DESTINATION ${CMAKE_INSTALL_BINDIR} + PERMISSIONS + OWNER_WRITE OWNER_READ OWNER_EXECUTE + GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE + SETUID) + endif () +endforeach () + install (TARGETS ${targets} DESTINATION ${CMAKE_INSTALL_BINDIR}) install (PROGRAMS shellify DESTINATION ${CMAKE_INSTALL_BINDIR}) install (FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) -- cgit v1.2.3-70-g09d2