방금 화면 밝기 조절을 위해 Brightnessctl을 설치했는데 루트로만 작동합니다. 그렇지 않으면 "장치 파일에 대한 쓰기 권한을 얻었습니다"라는 조언이 인쇄됩니다. 이를 수행하는 올바른 방법은 무엇입니까? 또한 루트 권한 없이 amixer를 사용하여 볼륨을 설정할 수 있기를 원합니다. 이는 동일한 문제라고 생각합니다.
답변1
많은 장치 액세스 문제는 그룹 멤버십 변경으로 해결될 수 있습니다.
sudo journalctl --follow
장치가 연결되어 있는 동안 시청하여 장치 이름을 찾을 수 있습니다. 또는 ls -1 /dev >dev.before
장치를 연결하고 10초 동안 기다리십시오 ls -1 /dev >dev.after;diff dev.{before,after}
.
특히 ls -l
그룹 표시 권한(두 번째 " rwx
" 삼중항)이 " rw
"(예: " -rw-rw----
")인 경우 장치를 소유한 그룹에 자신을 추가하면 rw
액세스 권한이 부여됩니다.
그게 다야 :
# change to your device name
device="/dev/dvdrw"
sudo adduser $USER $(stat -c "%G" $device)
이를 통해 장치를 사용할 수 있는 그룹의 구성원이 될 수 있습니다 rw
.하지만 한 가지 단계가 더 있습니다.
모든 프로세스를 새 그룹의 구성원으로 만들려면 로그아웃한 후 로그인하세요. 그룹 멤버십은 시간 기준으로 설정됩니다 login
.
새 그룹에서 단일 프로세스를 생성하려면(테스트용, 로그아웃/로그인 전):
newgrp $(stat -c "%G" $device)
또는 그룹 이름을 입력하세요. 바라보다 man newgrp
.
답변2
옵션:
권장사항:
sudo
일반 사용자로 실행할 수 있도록 구성합니다.밝기ctl을 실행하는 스크립트를 작성하려면 suid root를 사용하세요. (패키지 관리자를 사용했다고 가정하면 다음 업그레이드에서는 유지되지 않으므로 Brightnessctl에서 직접 suid root를 시도하지 마십시오.) 스크립트 작성 방법에 따라 보안 허점이 발생할 수 있습니다.
문제가 있는 장치 파일을 식별하고 udev 규칙을 작성하여 생성 후 권한을 설정합니다. 글을 쓰거나 디버그하는 것은 재미가 없습니다.
또한 루트 액세스 없이 amixer를 사용하여 볼륨을 설정할 수 있기를 원합니다.
루트 없이도 잘 작동 하므로 amixer
이 경우 배포판/컴퓨터에 이상한 설정이 있는 것으로 의심됩니다. 또는 귀하의 배포판이 나와 유사한 경우 오디오 작업을 수행할 권한이 있는 그룹의 구성원으로 사용법이 설정되어 있지 않습니다( audio
내 배포판에서는 편집하거나 /etc/group
배포판에서 제공하는 도구만 사용).
답변3
video
자신을 그룹 에 추가해야 input
제대로 brightnessctl
작동합니다. 바라보다https://github.com/Hummer12007/brightnessctl/issues/63.