일반 사용자가 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가 달라서 코드를 많이 다시 작성해야 하는데 테스트 프로그램은 작동하고 있습니다.

관련 정보