/sys/class/backlight/acpi_video0/brightness
sudo
데스크탑 시작 시 마지막 백라이트 설정을 증가/감소, 설정, 검색 및 복원하는 간단한 스크립트를 제공하는 스크립트(via)를 통해 백라이트를 제어합니다 . xrandr
Nvidia 인터페이스는 sysfs 장치를 통해 구현되므로 옵션이 아닙니다.
동일한 작업을 수행하기 위해 슬라이더와 스핀박스를 제공하는 간단한 Qt 인터페이스를 작성했지만 사용자가 일부 인터페이스를 사용 su
하거나 sudo
거치지 않고도 설정을 수정할 수 있도록 프로그램에 높은 권한을 제공하는 방법에 대해 고민하고 있습니다. .execv
system
이것은 중복이 아닙니다사용자로 백라이트 제어(xbacklight 없음). (이것은 이미 스크립트로 수행한 작업입니다.)
이 질문은 프로그래밍 방법 질문에 가깝습니다(SO의 경우 약간 일반적임). 내가 이해하지 못하는 것은 다음을 수행하는 것이 더 나은지 여부입니다.
- 사용자가 밝기를 변경할 수 있도록 권한을 변경하는 udev 규칙을 작성한 다음 원래 권한을 복원하는 두 번째 규칙을 작성하시겠습니까? (하지만 프로그램 내에서 규칙을 실행하는 방법은 무엇입니까?)
- 전체 데스크톱 세션에 대한 사용자 권한을 변경하는 udev 규칙을 작성합니다(허용 가능 - 선호되지는 않지만 사용자가 시작 시가 아닌 로그인할 때 규칙을 트리거하는 방법은 무엇입니까?)
- 아직 발견하지 못한 코드에서 다른 권한 상승을 사용하고 있습니까?
간단하고 일반적인 해결책이 있어야 할 것 같지만 udev 문서를 살펴본 후 sysfs 파일의 권한(또는 소유자 또는 그룹)을 변경하고 복원하는 규칙은 간단하지만 프로그램에서 변경을 어떻게 트리거합니까? 시작 후 종료 시 원래 권한을 복원하시겠습니까?
/sys/class/backlight/acpi_video0/brightness
내가 선호하는 것은 쓰기 직전에 변경이 이루어졌다 가 즉시 복원되지 않는 한 sysfs 장치가 변경되지 않도록 프로그램 내에서 변경 사항을 처리하는 것입니다 .
저는 udev 전문가가 아닙니다. 기본적으로 매뉴얼 페이지와 1/2 다스 튜토리얼과위키피디아 페이지. 그렇게 하면서 나는 C/C++에서 규칙을 트리거하는 프로그래밍 방식을 발견하지 못했습니다(또는 그것을 봤을 때 인식하지 못했습니다). 그래서 udev가 솔루션을 제공할지는 모르겠지만, 파일 권한 관점에서 볼 때 프로그램 자체에 대한 권한을 높이는 안전한 방법을 찾는 것보다 더 나은 연구 영역처럼 보입니다.
그럼 udev가 존재하는 걸까요? 그렇다면 코드에서 트리거하는 방법은 무엇입니까? 아니면 전체 데스크톱 세션 동안 sysfs 파일에 대한 권한을 변경하는 데 만족하시나요? -- 그렇다면 부팅 대신 데스크톱 부팅 시 이를 트리거하는 방법은 무엇입니까?
udev가 아닌 경우 sysfs 파일에 직접 쓸 수 있도록 임시 권한 상승을 달성하는 안전한 방법이 있습니까?
최악의 시나리오에서는 간단히 execv
or를 사용하여 system
스크립트를 호출 하고 sudo
처리하도록 할 수 있지만 각 사용자에 대해 구성하고 or의 회원이 되도록 할 필요 없이 모든 사용자에 대해 처리할 수 있는 보다 우아한 방법을 찾고 있습니다. 그룹 /etc/sudoers
.wheel
sudo