주변 장치를 연결하는 데 사용하고 libusb
있으며 루트가 아닌 액세스를 허용하고 싶습니다. 이것이 어떻게 작동하는지, 솔직히 어떻게 작동하는지 잘 모르겠지만 분명히 /lib/udev/rules.d에 파일을 수정하거나 추가하여 액세스 그룹을 사용할 수 있습니다.
먼저 빠른 해결책을 찾고, 두 번째로 나중에 다시 교육할 수 있도록 장비와 규칙 시스템을 설명하는 곳을 찾습니다. 나에게 대답하지 못한 몇 가지 질문이있었습니다.
답변1
먼저 를 실행한 lsusb
다음 USB 주변 장치를 연결하고 lsusb
다시 실행하십시오. 두 목록을 비교하십시오. 두 번째 목록에는 주변 장치를 설명하는 줄이 하나 이상 있어야 합니다.
올바른 행을 식별한 후 ID xxxx:yyyy
해당 행에 숫자를 적어 두십시오. 이것들은공급업체 ID그리고제품 번호장비용.
하지만 먼저 udev 규칙 파일에 대한 몇 가지 원칙은 다음과 같습니다.
원하는 udev 규칙 파일을 추가할 수 있습니다 /etc/udev/rules.d
. 유일한 이름 요구 사항은 파일 이름에 접미사가 있어야 한다는 것입니다 .rules
.
의 파일은 /lib/udev/rules.d
Linux 배포판의 사전 패키지된 규칙용으로 예약되어 있습니다. udev 규칙에 영향을 미치는 새 패치가 시스템에 설치되면 기존 파일에 대한 변경 사항을 덮어쓰게 됩니다.
기존 규칙을 수정해야 하는 경우 대신복사/lib/udev/rules.d
/etc/udev/rules.d
파일의 원래 이름을 유지하면서 수정하려는 규칙 파일입니다 . /etc/udev/rules.d
유언장에 있는 모든 문서씌우다같은 이름을 가진 파일 /lib/udev/rules.d
. 복사본을 만든 후 /etc/udev/rules.d
필요에 따라 수정하고 나중에 특정 보안 업데이트를 설치할 때 변경 사항을 덮어쓰지 않도록 할 수 있습니다.
두 디렉터리의 규칙 파일은 간단한 영숫자 순서로 읽혀지며(덮어쓰기를 고려한 후) 충돌하는 규칙이 있는 경우 마지막 규칙이 적용됩니다. 규칙 파일 이름은 NN-descriptive-name.rules
NN이 전체 규칙 순서에서 파일 위치를 식별하는 위치 와 유사해야 한다는 관례가 있습니다 .
그런 다음 규칙을 작성하는 실제 작업이 시작됩니다.
장치 ID가 목록에 lsusb
있는 경우 xxxx:yyyy
해당 장치를 지정하는 udev 규칙 부분은 다음과 같습니다.
SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy"
이중 등호를 참고하세요. 이 규칙은 C, Java 및 기타 프로그래밍 언어와 유사합니다. 이중 등호는시험평등의 경우 단일 등호는 다음을 의미합니다.환경어떤 것에는 특정한 가치가 있습니다.
대부분의 최신 버전의 Linux에서는 TAG+="uaccess"
규칙 줄 끝에 을 사용하여 현재 시스템에 로컬로 로그인한 모든 사람이 특정 장치에 액세스할 수 있도록 지정할 수 있습니다.
일부 사용자만 장치에 액세스할 수 있어야 하는 경우 그룹을 만들고( sudo groupadd mydevice
) 그룹에 사용자를 추가한 다음( ) 규칙 줄 끝에서 usermod -a -G mydevice username
해당 그룹만 장치에 액세스할 수 있도록 설정합니다. GROUP="mydevice", MODE="0660"
그룹에 추가된 사람들은 ssh
원격으로 시스템에 연결할 수 있으며 그룹 구성원이 아닌 사람들은 장치를 전혀 사용할 수 없습니다.
참고: 새 그룹 멤버십은 다음에 로그인할 때 적용됩니다. 따라서 새 그룹에 자신을 추가하는 경우 장치를 테스트하기 전에 로그아웃했다가 다시 로그인해야 합니다.
시스템의 모든 사람이 장치에 액세스할 수 있도록 허용하려면 MODE="0666"
규칙 줄 끝에 이를 지정하면 됩니다. (이 작업을 수행하기 전에 두 번 생각해야 합니다.)
그것들을 하나로 합치다
따라서 기존 규칙 파일을 특별히 수정할 필요가 없으면 고유한 규칙 파일을 만들 수 있습니다 /etc/udev/rules.d/99-mydevice.rules
.
sudo <your-favorite-text-editor> /etc/udev/rules.d/99-mydevice.rules
로컬로 로그인한 사용자만 장치를 사용하도록 허용하려는 경우 파일 내용은 다음과 같아야 합니다.
SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", TAG+="uaccess"
규칙 파일을 저장한 후 다음 명령을 실행하여 새 규칙이 즉시 적용되도록 합니다.
udevadm control --reload-rules
그룹 기반 솔루션을 사용하는 경우 지금 로그아웃했다가 다시 로그인하세요.