From 0c15643108fc42526170e57a8cad1498c4283859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Z=C3=A1le=C5=A1=C3=A1k?= Date: Wed, 13 Nov 2024 04:34:22 +0100 Subject: [PATCH] update ucidefaults.sh --- ucidefaults.sh | 109 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 ucidefaults.sh diff --git a/ucidefaults.sh b/ucidefaults.sh new file mode 100644 index 0000000..4d00c71 --- /dev/null +++ b/ucidefaults.sh @@ -0,0 +1,109 @@ +#!/bin/sh + +root_password="Jednokolka" +ssh_key_rsa="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILQqqspfQuf2aNIbu6riGMTU3g5ZRcKgnRUqDSHe3/VU pixx@desktop" +ssh_key_ed25519="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC6psgHgWrYgSSLAvGlGhOd3c9cht26WUz9Y5s+bYByryPdoOzFnF6DXZm+l/5W0F7NAfJc1m8sAhcLLxscMtmhfZ+12GNcwl3pIFyPW8rrKml1P7DIX2GQUefngb4duRkTThX2/H5hfrZqoXvGLF82KdleGKQXoXOCmAsJiD+DwNTp66QANN0MAriiBvj3fxPzBvW9uzYSiLLHQj80/xK2sItp4Wa4EZ8lYbwaxR2buX/8n+3TrrmsPo1gWMRCjGJVA1R9cSgMKGzU3O1nQTg+yPw5jkRXHpsoa2Oh+mgxFhatkjUZ5p4fTWypF4L22w6B4vvTw2dFHIwBF/pbNf2pc9K6iVHxuta2Y7q7M+q/LTcPKLFZCg1cLm8T/1iG5ZZzqaHldVadfEDlhD9EE5DS8CnxyK/eZwHxNQhVde6d/PAmQ2hwij6V+ipiqDyQ1rIbXA8D88hrGyiMwIfIQAxpO7btL2V1eF7F62oP12H9iMNQ6DA4BfBG/GSuDMZeWW0Yly3eHzF75tthuYyGTlLrmHXAv15Y9OtzW4wkd6BrKE24NGMTFJG0g+LX/Tb2ff2zKp0HxDee1wkqEHtl0WmQnzIfZ5DUzoYBhW4FcEYi23CNlj6w3Pwc4qt7dXf5MYBxmOoQlfCfl5E8qJMTKxFrVy3UudsFvz7RZU/iAc0g9Q== pixx@desktop" + + +. /lib/functions.sh +. /usr/share/libubox/jshn.sh + +delete_wireless() { + local name="$1" + uci -q del wireless."$name" +} + +delete_network() { + local name="$1" + if [[ $name != "loopback" ]]; then + uci -q del network."$name" + fi +} + +# log potential errors +exec >/tmp/setup.log 2>&1 + +#odstraneni vychozi konfigurace +config_load wireless +config_foreach delete_wireless wifi-iface +config_load network +config_foreach delete_network interface +config_foreach delete_network device + +#ziskani puvodniho wan rozhrani +json_load_file /etc/board.json +json_select "network" +if json_is_a "wan" object; then + json_select "wan" +else + json_select "lan" +fi +json_get_var wan_device "device" + +#ziskani nastaveni switche +json_select .. +json_select .. +if json_is_a "switch" object; then + echo "not DSA" + json_get_keys keys switch + json_select "switch" + for key in $keys; do + json_select $key + json_select "roles" + idx=1 + while json_is_a $idx object + do + json_select $idx + json_get_var device "device" + if [[ $device == $wan_device ]]; then + json_get_var ports "ports" + ports=$(echo $ports | sed -r 's/\b([0-9]+)\b/\1t/g') + switchid=$key + fi + idx=$(( idx + 1 )) + json_select .. + done + done +else + echo "is DSA" +fi + +wan_device=$(echo $wan_device | sed -r 's/\..*$|$/\.99/g') + +#nastavení switche +if [ ! -z ${ports+x} ]; then + config_foreach delete_network switch_vlan + + uci add network switch_vlan + uci set network.@switch_vlan[-1].device="${switchid}" + uci set network.@switch_vlan[-1].vlan='99' + uci set network.@switch_vlan[-1].ports="${ports}" + uci set network.@switch_vlan[-1].vid='99' + uci set network.@switch_vlan[-1].description='mgmnt' +fi + +#vytvoreni sitoveho rozhrani pro management +uci set network.mgmnt=interface +uci set network.mgmnt.proto='dhcp' +uci set network.mgmnt.device=${wan_device} + +#nastaveni root hesla +if [ -n "$root_password" ]; then + (echo "$root_password"; sleep 1; echo "$root_password") | passwd > /dev/null +fi + +#nastaveni ssh +uci -q set dropbear.@dropbear[0].PasswordAuth='off' +uci -q set dropbear.@dropbear[0].RootPasswordAuth='off' +if [ -n "$ssh_key_rsa" ]; then + echo $ssh_key_rsa >> /etc/dropbear/authorized_keys +fi +if [ -n "$ssh_key_ed25519" ]; then + echo $ssh_key_ed25519 >> /etc/dropbear/authorized_keys +fi + +uci commit network +uci commit wireless +uci commit dropbear + +echo "All done!" \ No newline at end of file