기본이 아닌 사용자가 직렬 장치 ttyUSB0을 사용하도록하려면 어떻게합니까? 두 번째 장치를

2 명의 사용자가있는 Ubuntu 11.10 시스템이 있습니다.

  • 첫 번째는 설치 중 작성되었습니다
  • 두 번째는 대신에 만들어졌습니다. sudoers 그룹에 속합니다.

이제 문제는 두 번째 장치를 사용하려고 할 때 ttyUSB0다음 오류가 반환 된다는 것입니다 .

"Could not open serial port /dev/ttyUSB0"

다음을 사용하여 문제를 해결할 수있었습니다.

sudo chown :second_user /dev/ttyUSB0

그러나 장치를 분리했다가 다시 연결하면 문제가 다시 발생합니다.

다른 사용자가 장치에 액세스 할 수있는 방법이 있습니까? 특정 그룹에 사용자를 추가해야한다고 가정합니다. 현재 소유자는 root이고 그룹은 dialout입니다. 그러나 그룹에 대해 잘 모르고 사용자를 추가하는 방법을 모르겠습니다.

감사!



답변

알다시피, /dev/ttyUSB0장치 그룹은 dialout입니다. 두 번째 사용자를 dialout그룹에 추가하기 만하면됩니다.

sudo adduser second_user dialout

second_user가 로그 아웃했다가 다시 로그인해야 적용됩니다.


답변

쉬운 방법 :

sudoedit /etc/udev/rules.d/50-myusb.rules

이 텍스트를 저장하십시오 :

KERNEL=="ttyUSB[0-9]*",MODE="0666"
KERNEL=="ttyACM[0-9]*",MODE="0666"

장치를 분리했다가 다시 연결하면 모든 사용자가 읽고 쓸 수 있습니다!


답변

UDEV를 사용할 수 있습니다. 장치를 꽂거나 뽑을 때마다 트리거하는 시스템입니다 (다른 것들 중에서). 이를 통해 권한 설정을 포함하여 발생하는 다양한 작업을 스크립팅합니다.

sudoedit /etc/udev/rules.d/50-ttyusb.rules이것을 실행 하고 거기에 붙입니다.

KERNEL=="ttyUSB[0-9]*",NAME="tts/USB%n",SYMLINK+="%k",GROUP="uucp",MODE="0666"

저장, 종료 및 다시 연결하면 작동해야합니다. 권한을 666으로 설정하면 누구나 장치에 쓸 수 있습니다.

나는 몇 년 전의이 페이지 를 기반으로하고 있지만 Jeremy의 솔루션 이 그렇지 않으면 이와 같은 것이 작동해야합니다 .


답변

환상적인-여기에 제공된 UDEV 솔루션은 저에게 딱 맞는 티켓이었습니다.

Wine을 통해 Icom의 CS-F3020_F5010_F5020 프로그램을 설치하고 다음과 같이 Com 포트에 대한 링크를 작성했습니다.

ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1 but nothing.

그런 다음 액세스 할 수 있도록 / dev / ttyUSB0에 대한 권한을 변경해야한다는 것을 깨달았습니다. USB를 연결 해제했다가 다시 꽂을 때까지 권한을 변경해야합니다.

전화 걸기 그룹에 사용자를 추가하려고 시도했지만 어떤 이유로 문제가 해결되지 않았습니다.

UDEV를 사용하면 퍼즐의 마지막 조각이 해결됩니다. 이제 Linux를 사용하여 Icom 라디오를 프로그래밍하고 더 이상 번거 로움없이 USB / 직렬 장치를 연결 및 분리 할 수 ​​있습니다. 우후 감사.


답변

udev 규칙은 작동하지만 서면 ttyUSB*으로 모든 사람이 모든 장치에 액세스 할 수있게하는 부작용이 있습니다. 이는 시스템에 무엇이 있는지에 따라 보안 위험이있을 수 있으므로 좋지 않습니다.

대신 더 선택적 udev 규칙을 사용하십시오. 예를 들어 스위치 세트를 작동시키는 USB 장치가 있습니다. dmesg가 연결되면 제조업체의 ID와 제품 코드 (이 경우 장치의 일련 번호)를 볼 수 있습니다. 추가 할 수 있습니다 :

ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001"

위의 커널 라인에 규칙이 해당 장치에만 적용됩니다. MODE변수에만 할당하는 것보다 그룹을 설정 하는 것이 더 좋습니다 .

GROUP="whatever", MODE="0660"

whatever‘ 그룹의 사람들 만 쓰기 권한을 갖습니다.

존 볼러


답변