Install some binaries with the setuid bit
This commit is contained in:
parent
36df9cc6c9
commit
9def673a2b
@ -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})
|
||||
|
Loading…
Reference in New Issue
Block a user