사용자 루트, 그룹은 루트이지만 궁극적으로 소유권이 /dev/에서 변경됩니다.

사용자 루트, 그룹은 루트이지만 궁극적으로 소유권이 /dev/에서 변경됩니다.

/dev/좋습니다...그래서 chown 및 chmod를 사용하여 주변 장치의 일부 파일에 액세스하는 많은 튜토리얼의 지침을 따랐습니다 .

chown과 chmod는 재부팅을 통과하지 못합니다. 그것은 중요하지 않습니다. 내가 보고 있는 문제는 chmod 및/또는 chown을 성공적으로 사용한 후에도 및/또는 /dev/같은 디렉터리 파일을 조작할 수 없다는 것과 관련이 있습니다 .gpioi2c

그래서 현재 사용자에 대한 명명 체계를 설정한 다음 해당 사용자에 대한 그룹을 설정했지만 여전히 내 파일에 액세스할 수 없습니다. 나는 사양에 따라 , 및 /dev/bone/와 같은 일부 주변 파일에 대한 파일을 채우도록 지시하는 내장 컴퓨터를 사용하고 있습니다 .pwmuarti2c

특별한 점 /dev/은 내부에서 파일을 제어하는 ​​것이 /dev/chown 및 chmod를 사용하여 추가된 명령 권한 및 사용자:그룹의 영향을 받지 않는다는 것입니다.

여전히 /sys/class/gpio/ 및/또는 /sys/class/pwm/을 사용하지 않고 /dev/에 빌드하는 방법을 교육하려고 합니다.

답변1

/dev/시스템이 시작되면 디렉토리 트리가 다시 생성됩니다. 결국 하드웨어를 추가/제거했을 수도 있습니다.

많은 장치 액세스 문제는 그룹 멤버십 변경으로 해결될 수 있는 권한 문제입니다.

sudo journalctl --follow연결된 장치를 보면 장치 이름을 찾을 수 있습니다. 또는 ls -1 -l /dev >dev.before장치를 연결하고 10초 동안 기다리십시오 ls -1 -l /dev >dev.after;diff dev.{before,after}.

특히 ls -l 그룹 표시 권한(두 번째 " rwx" 삼중항)이 " rw"(예: " -rw-rw----")인 경우 장치를 소유한 그룹에 자신을 추가하면 rw액세스 권한이 부여됩니다.

그게 다야 :

# change to your device name 
device="/dev/YourDevice"
sudo adduser $USER $(stat -c "%G" $device)

이를 통해 장치를 사용할 수 있는 그룹의 구성원이 될 수 있습니다 rw.하지만 한 가지 단계가 더 있습니다.

모든 프로세스를 새 그룹의 구성원으로 만들려면 로그아웃한 후 로그인하세요. 그룹 멤버십은 시간 기준으로 설정됩니다 login.

새 그룹에서 단일 프로세스를 생성하려면(테스트용, 로그아웃/로그인 전):

newgrp $(stat -c "%G" $device)  

또는 그룹 이름을 입력하세요. 바라보다 man newgrp.

관련 정보