루트가 아닌 사용자가 timedatectl을 사용하도록 허용

루트가 아닌 사용자가 timedatectl을 사용하도록 허용

나는 작은 리눅스 박스를 가지고 있다가능한휴대용 장치가 장치에 연결되면 장치와 시간을 동기화하도록 선택합니다. 내 프로그램은 항상 루트로 실행되며 저는 단지 date --set명령을 사용합니다. 하지만 해당 프로그램을 권한이 낮은 사용자에게 옮기려고 합니다. 지금 사용하고 있으니 직접 날짜 대신 시간을 맞춰서 systemd사용하면 될 것 같습니다 . timedatectl나는 이것을 수행하는 방법을 스스로 증명했습니다. 하지만 루트가 아닌 곳에서 구동하는 방법을 모르겠습니다.

특정 sudo 항목을 사용할 수 있지만 내 프로그램이 sudo를 실행하지 않게 하고 싶습니다. 이것이 유일한 방법이라면 나는 무엇을 해야 할지 압니다. 이것이 유일한 방법이라면 질문에 대답하십시오 :)

내 사용자를 그룹의 구성원으로 만들면 그렇게 systemd-timesync할 수 있기를 바랐지만 그룹이 있든 없든 다음 오류가 발생합니다.

> timedatectl set-time "2017-3-2 01:40:30"
Failed to set time: The name org.freedesktop.PolicyKit1 was not provided by any .service files

이것이 무엇을 의미하는지, 어떻게 고칠 수 있는지, 이 작업을 수행해야 하는지, 또는 이것이 가능한지조차 모르겠습니다.

답변1

나는 을 사용하겠습니다 sudo. 귀하는 이 접근 방식을 꺼린다고 밝혔지만 사용자에게 단일 명령을 실행할 수 있는 루트 액세스 권한만 부여했습니다 timedatectl.

이것~해야 한다이 문제는 PolicyKit을 사용하여 해결할 수도 있지만 실제로는 사용자가 루트로 단일 명령을 실행하도록 허용하는 것과 동일한 결과를 생성합니다. 따라서 위험은 비슷하며 문제 해결 방법을 이미 알고 있습니다 sudo.

관련 정보