Linux 애플리케이션에서 ioctl을 통해 Wi-Fi 어댑터에 대한 루트가 아닌 액세스 - 권한을 부여하는 방법은 무엇입니까?

Linux 애플리케이션에서 ioctl을 통해 Wi-Fi 어댑터에 대한 루트가 아닌 액세스 - 권한을 부여하는 방법은 무엇입니까?

Odroid 보드의 Ubuntu 20.04에서 Qt5 c 애플리케이션을 디버깅하려고 합니다. 애플리케이션은 ioctl()을 통해 Wi-Fi 어댑터와 통신합니다. 예를 들면 다음과 같습니다.

int fd = iw_sockets_open();
struct ifreq ifreq;
//ifreq.ifr_name holds "wlxe894f617ebe6" from "iw dev" output
if (ioctl(fd, SIOCSIFFLAGS, &ifreq) == -1) {
  return FALSE;
}

문제는 sudo로 실행할 때만 작동한다는 것입니다. QtCreator에서 실행할 때 위의 ioctl() 호출에서 실패하고 -1을 반환하고 "작업이 허용되지 않음"이라는 perror()를 반환합니다. sudo에서는 정상적으로 작동하고 더 잘 작동합니다.

lsusb는 어댑터 이름을 다음과 같이 지정합니다.

Bus 001 Device 012: ID 148f:5572 Ralink Technology, Corp. RT5572 Wireless Adapter

iw dev는 다음을 제공합니다:

phy#0
        Interface wlxe894f617ebe6
                ifindex 3
                wdev 0x1
                addr e8:94:f6:17:eb:e6
                type managed
                txpower 20.00 dBm

또한 어댑터의 /dev/ 디렉토리에 해당 파일이 없는 것 같습니다. 이 경우 ioctl()에 대한 사용자 액세스 권한을 어떻게 부여합니까?

다른 USB 장치처럼 액세스 권한을 부여하려고 시도했습니다.

SUBSYSTEM=="usb", ATTRS{idVendor}=="148f", ATTRS{idProduct}=="5572", MODE="0666"

/etc/udev/rules.d/50-myusb.rules에 있지만 결과가 없습니다. "wlan" 또는 이와 유사한 일부 그룹에 사용자를 추가해야 한다고 생각하지만 여기서 관련될 수 있는 그룹 이름을 찾을 수 없습니다.

관련 정보