Я хочу позвонить CMake
из setuid
исполняемый на Linux. Код для callcmake.cpp:
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
setuid(geteuid());
system("cmake ..");
}
а затем я набрал следующее под учетной записью A
g++ callcmake.cpp -o callcmake
chmod 4755 callcmake
Я попытался запустить этот callcmake с другой учетной записью B, cmake имеет следующий вывод:
CMake Ошибка в /usr/share/cmake-2.8/Modules/CMakeDetermineSystem.cmake:172 (CONFIGURE_FILE):
configure_file Проблема с настройкой файла
Стек вызовов (самый последний вызов сначала):
CMakeLists.txt: 4 (проект)— Идентификатор компилятора C неизвестен
CMake Ошибка в /usr/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:177 (CONFIGURE_FILE):
configure_file Проблема с настройкой файла
Стек вызовов (самый последний вызов сначала):
CMakeLists.txt: 4 (проект)
Как я могу запустить cmake с помощью программы setuid?
Задача ещё не решена.