diff options
| author | Přemysl Eric Janouch <p@janouch.name> | 2024-03-27 08:26:49 +0100 | 
|---|---|---|
| committer | Přemysl Eric Janouch <p@janouch.name> | 2024-03-27 08:26:49 +0100 | 
| commit | 9def673a2bddc30657425888e446b4c9f6ecc9a6 (patch) | |
| tree | e8b6b09ecf0bd64def302fcb0db20ad8490d481e | |
| parent | 36df9cc6c96bdbc39c10fffc88d33dcc17decbf6 (diff) | |
| download | desktop-tools-9def673a2bddc30657425888e446b4c9f6ecc9a6.tar.gz desktop-tools-9def673a2bddc30657425888e446b4c9f6ecc9a6.tar.xz desktop-tools-9def673a2bddc30657425888e446b4c9f6ecc9a6.zip | |
Install some binaries with the setuid bit
| -rw-r--r-- | CMakeLists.txt | 19 | 
1 files 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}) | 
