50 lines
1.6 KiB
Bash
Executable File
50 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Set passphrase for PiWifiAP wireless access point
|
|
|
|
current_user=`whoami`
|
|
if [ "$current_user" != "root" ]
|
|
then
|
|
echo "You must have root privileges to run this setup."
|
|
echo "Try 'sudo $0'"
|
|
exit 1
|
|
fi
|
|
|
|
source /etc/piwifiap/piwifiap.conf
|
|
|
|
wappassok="no"
|
|
while [[ "$wappassok" == "no" ]]
|
|
do
|
|
echo "You will need to set a passphrase for this access point. It should"
|
|
echo "be at least 8 characters in length and cannot be blank."
|
|
echo -n "Please enter the desired passphrase for this access point: "
|
|
read wappass
|
|
wappasslen=$(echo -n $wappass | wc -m)
|
|
if [[ "$wappass" == "" || $wappasslen -lt 8 ]]
|
|
then
|
|
echo "Passphrase doesn't satisfy requirements above. Try again."
|
|
else
|
|
wappassok="yes"
|
|
fi
|
|
done
|
|
|
|
case "$network_system" in
|
|
"systemd-networkd")
|
|
sed -i "/wpa_passphrase=.*/c wpa_passphrase=$wappass" /etc/hostapd/hostapd.conf
|
|
systemctl restart hostapd
|
|
sed -i 's|'wappass=.*'|'wappass="\'$wappass\'"'|' /etc/piwifiap/piwifiap.conf
|
|
sed -i 's|'802-11-wireless-security.psk:.*'|'802-11-wireless-security.psk:$wappass'|' /etc/piwifiap/piwifiap.secret
|
|
;;
|
|
"NetworkManager")
|
|
nmcli con down piwifi-hotspot
|
|
sed -i 's|'wappass=.*'|'wappass="\'$wappass\'"'|' /etc/piwifiap/piwifiap.conf
|
|
sed -i 's|'802-11-wireless-security.psk:.*'|'802-11-wireless-security.psk:$wappass'|' /etc/piwifiap/piwifiap.secret
|
|
nmcli con up piwifi-hotspot passwd-file /etc/piwifiap/piwifiap.secret
|
|
;;
|
|
*)
|
|
echo "Unable to determine what type of network configuration (systemd-networkd"
|
|
echo "or NetworkManager) your system uses."
|
|
echo "Cannot modify wireless access point parameters."
|
|
exit 2
|
|
;;
|
|
esac
|