루트 권한 없이 iwlist 스캔

루트 권한 없이 iwlist 스캔

무선 인터페이스 중 하나를 스캔해야 하는 애플리케이션을 작성 중입니다. 과거에는 내 프로그램이 실행되어 sudo코드에서 사용되었습니다.

iwlist wlanX scan

하지만 이제는 루트 권한 없이 프로그램을 실행하도록 허용하고 싶습니다. 내가 이 일을 할 수 있는 능력을 바꾸면 /sbin/iwlist상대적으로 안전할까요 cap_net_admin+eip? Iwlist상세한 무선 정보를 표시하는 데에만 사용되므로 이 명령에 대한 더 넓은 액세스 권한을 갖는 것은 그다지 위험하지 않을 수 있습니다.

답변1

sudo그룹 구성원이 비밀번호 없이 명령을 실행할 수 있도록 구성할 수 있습니다 . 파일 visudo편집 의 경우 sudoers:

# visudo

다음과 유사한 내용을 추가합니다.

%mygroup ALL = (root) NOPASSWD: iwlist wlanX scan

파일 하단에 추가합니다(여기서 mygroup그룹 이름 앞에는 퍼센트 기호가 옵니다).

%mygroup로 변경하여 단일 사용자가 이 프로그램을 실행하도록 허용할 수도 있습니다. myuser여기서 myuser사용자 이름은 누락된 퍼센트 기호에 유의하세요.

%mygroup또는 로 바꿔서 모든 사람이 스캔하도록 허용할 수 있습니다 ALL.

사용하면 모든 명령이 capabilities허용되지만 , 위와 같이 구성하면 특정 옵션이 있는 하나의 명령으로만 제한됩니다. 이는 더욱 안전해야 합니다.cap_net_adminiwlistsudo

또 다른 (일반적인) 이유는 구성이 를 sudo사용하는 것보다 이식성이 더 뛰어나기 때문입니다 capabilites. 하지만 Linux만 사용하는 경우에는 관련이 없습니다.

답변2

중독되지 않은 iwlist scan경우wpa_requester설치 후 다음을 시도해 볼 수 있습니다.

wpa_cli -i wlan0 scan > /dev/null; sleep 5; wpa_cli -i wlan0 scan_results

실행하는 데 루트 권한이 필요하지 않습니다. 출력은 csv 형식과 유사하며 구문 분석하기 쉽습니다.

bssid / frequency / signal level / flags / ssid
aa:bb:cc:dd:ee:aa   5220    -26 [WPA2-PSK-CCMP][WPS][ESS]   AP-5G
aa:bb:cc:dd:ee:bb   5745    -62 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]  AP2
aa:bb:cc:dd:ee:cc   2412    -50 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]  AP3

답변3

sudo비밀번호를 요구하지 않도록 구성할 수 있습니다 .

visudo다음 줄을 입력 하고 추가합니다.

myuser ALL=(root) NOPASSWD: /sbin/iw wlan0 scan
myuser ALL=(root) NOPASSWD: /sbin/iwlist wlan0 scan

또는

%mygroup ALL=(root) NOPASSWD: /sbin/iw wlan0 scan
%mygroup ALL=(root) NOPASSWD: /sbin/iwlist wlan0 scan

전체 경로를 지정해야 iw하고 여전히 run을 사용해야 sudo하지만 이제 비밀번호를 입력하라는 메시지가 표시되지 않습니다.

sudo iw wlan0 scan

감사해요@garethTheRed이 답변의 일부입니다.

답변4

시스템에서 Network Manager를 사용하는 경우 sudo 권한이 필요하지 않습니다. 그냥 실행하세요:

nmcli dev wifi rescan

이 명령을 실행하면(30초 동안 지속될 수 있음) 사용 가능한 WiFi 네트워크의 전체 목록이 다른 도구에서도 표시됩니다.

예를 들어, 내 테스트에서는 다음과 같습니다.

iwlist scan             # lists 1 AP
nmcli dev wifi rescan
iwlist scan             # lists 8 APs

관련 정보