list-of-pwds
次のスクリプトの目的は、WiFiに接続するためにファイル内の正しいパスワードを見つけることです。正しいパスワードを見つけたら、検索を中止してください。
#!/usr/bin/bash
nmcli d wifi list
echo "Give me the SSID."
read ssid
if [[ -f $HOME/list-of-pwds ]]; then
:
else
>>$HOME/list-of-pwds
fi
echo -e "Place the passwords in $HOME/list-of-pwds.\nPress 'y' when ready to proceed?[Y/n]"
read proceed
if [[ "${proceed}" == 'y' ]]; then
while IFS="" read -u 7 -r l || [[ -n "${l}" ]]; do
nmcli connection add type wifi ifname wlp3s0 ssid "${ssid}" con-name "${ssid}" +802-11-wireless-security.key-mgmt WPA-PSK +802-11-wireless-security.psk "${l}"
if [[ "${?}" -eq 0 ]]; then
echo "Found password for ${ssid}: ${l}."
break
fi
done 7<$HOME/list-of-pwds
fi
#nmcli con show --active seems to return always 0 irrespectively on the connection status
#but nmcli con show --active|grep whatever returns 0 only when there is an active connection
list-of-pwds
次のようになります。
ana
game
bondage
domination
submission
masochism
thecorrrectPassword
tordfasre
最初の行に正しいパスワードがない場合は、
list-of-pwds
次のような結果が出力されます。
Error: Failed to add 'net' connection: 802-11-wireless-security.psk: property is invalid
Error: Failed to add 'net' connection: 802-11-wireless-security.psk: property is invalid
Error: Failed to add 'net' connection: 802-11-wireless-security.psk: property is invalid
Connection 'net' (66ab5db1-a662-43a0-bfbe-ee353a7e14d6) successfully added.
Found password for net: domination.
net
ssidはどこにありますか?私のWiFiのセキュリティはWPA2です。パスワードの長さは正しいが正しくない場合、 パスワードを求めるポップアップウィンドウが表示されます。。スクリプトが正しいパスワードを見つけた場合、そのようなポップアップは表示されません。たとえば、domination
パスワードの長さが正確であっても(ポップアップ表示)、正しいパスワードではなく(ポップアップ表示)、正しい
thecorrrectPassword
パスワードです(ポップアップは表示されません)。交換したのはまさにこのポップアップでしたが、nmcli d wifi connect "${ssid}" password "${l}"
問題nmcli connection add type wifi ifname wlp3s0 ssid "${ssid}" con-name "${ssid}" +802-11-wireless-security.key-mgmt WPA-PSK +802-11-wireless-security.psk "${l}"
は続いていました。
@tripleeeのヒントに従って、パスワードを含むファイルをコマンドライン引数として渡そうとしましたが、次のように修正しました。
802-11-wireless-security.psk:ana
802-11-wireless-security.psk:game
802-11-wireless-security.psk:bondage
802-11-wireless-security.psk:domination
802-11-wireless-security.psk:submission
802-11-wireless-security.psk:masochism
802-11-wireless-security.psk:thecorrectPassword
802-11-wireless-security.psk:torture
スクリプトを再作成します。
#!/usr/bin/bash
nmcli d wifi list
echo "Give me the SSID."
read ssid
if [[ -f $HOME/list-of-pwds ]]; then
:
else
>>$HOME/list-of-pwds
fi
echo -e "Place the passwords in $HOME/list-of-pwds.\nReady to proceed?[Y/n]"
read proceed
if [[ "${proceed}" == 'y' ]]; then
nmcli con add type wifi con-name "${ssid}" ssid "${ssid}"
nmcli con mod "${ssid}" wifi-sec.key-mgmt wpa-psk
nmcli connection up "${ssid}" ifname wlp3s0 passwd-file "$HOME/list-of-pwds"
fi
認証を要求するポップアップと次の標準出力を受け取りました。
Connection 'net' (dcaab1be-4d54-49f6-ac3b-30bc153806ae) successfully added.
Error: Connection activation failed: Secrets were required, but not provided
Hint: use 'journalctl -xe NM_CONNECTION=dcaab1be-4d54-49f6-ac3b-30bc153806ae + NM_DEVICE=wlp3s0' to get more details.
私は台本を知っていますnmcli
良い無差別代入ツールになる可能性は低いです。。つまり、無差別代入ツールのように動作するようにスクリプトを再構築できるかどうか疑問に思います。問題の分布は特定ですか(Ubuntu Desktop 22.04 LTSを使用していますか?)