일반 사용자가 sudo 없이 루트로 Qt C++ 프로그램을 실행할 수 있습니까?

일반 사용자가 sudo 없이 루트로 Qt C++ 프로그램을 실행할 수 있습니까?

저는 각 스레드가 하드웨어에 액세스해야 하는 GUI로 Qt를 사용하여 C++로 로봇 프로그램을 작성하고 있습니다. 하드웨어에 액세스하는 라이브러리는 pigpio라고 하며, 이는 /dev/mem을 수정하므로 루트 액세스가 필요합니다.

문제는 사용자가 루트 액세스 권한이 없고 GUI와 상호 작용하고 있으므로 어쨌든 비밀번호를 입력할 필요가 없다는 것입니다. 나는 setuid를 시도했지만 Qt는 이를 지원하지 않으며 GTK+도 지원하지 않습니다. 사용자가 비밀번호 없이 루트로 GUI를 어떻게 실행할 수 있습니까? 시스템은 Raspberry Pi 3B+의 Ubuntu 18.04입니다.

답변1

가장 좋은 해결책은 다음을 추가하여 시작 시 데몬을 실행할 수 있으므로 Pigpio 대신 Pigpiod를 사용하는 것입니다.

#!/bin/sh -e
pigpiod
exit 0

파일로

/etc/rc.local

아쉽게도 pigpiod의 API가 달라서 많은 코드를 다시 작성해야 했지만 테스트 프로그램은 작동하고 있습니다.

관련 정보