Linux에서 "장치 파일에 대한 쓰기 권한을 얻는 방법"은 무엇입니까?

Linux에서 "장치 파일에 대한 쓰기 권한을 얻는 방법"은 무엇입니까?

방금 화면 밝기 조절을 위해 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

옵션:

  1. 권장사항: sudo일반 사용자로 실행할 수 있도록 구성합니다.

  2. 밝기ctl을 실행하는 스크립트를 작성하려면 suid root를 사용하세요. (패키지 관리자를 사용했다고 가정하면 다음 업그레이드에서는 유지되지 않으므로 Brightnessctl에서 직접 suid root를 시도하지 마십시오.) 스크립트 작성 방법에 따라 보안 허점이 발생할 수 있습니다.

  3. 문제가 있는 장치 파일을 식별하고 udev 규칙을 작성하여 생성 후 권한을 설정합니다. 글을 쓰거나 디버그하는 것은 재미가 없습니다.


또한 루트 액세스 없이 amixer를 사용하여 볼륨을 설정할 수 있기를 원합니다.

루트 없이도 잘 작동 하므로 amixer이 경우 배포판/컴퓨터에 이상한 설정이 있는 것으로 의심됩니다. 또는 귀하의 배포판이 나와 유사한 경우 오디오 작업을 수행할 권한이 있는 그룹의 구성원으로 사용법이 설정되어 있지 않습니다( audio내 배포판에서는 편집하거나 /etc/group배포판에서 제공하는 도구만 사용).

답변3

video자신을 그룹 에 추가해야 input제대로 brightnessctl작동합니다. 바라보다https://github.com/Hummer12007/brightnessctl/issues/63.

관련 정보