wlan-static для live-sysv, wifi в сети со статической адресацией |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
wlan-static для live-sysv, wifi в сети со статической адресацией |
Поделиться |
12.2.2018, 17:33
Сообщение
#1
|
|
Крупный специалист Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: 1 |
Текущий вариант скриптов для конфигурирования WiFi на беспроводной статике.
Конфигуратор интерактивный: - По-русски задаёт простые вопросы и просит ввода. Пароль на точку доступа не знаю как скрыть при вводе. Не сохранять в историю можно покиливанием сессии: kill -9 $$ В конфигуратор скорее всего надо добавить подсказки запроса ввода, отображающие формат ввода в качестве примеров ввода. Кроме пароля к точке доступа. Для пользователя, который по уровню близок к нулю. Скрипты завязаны именно на лайв live-sysv, поскольку он уже на первом старте конфигурирует dhcp и сеть на первом старте _уже_ сконфигурирована как dhcp, а для статики это надо выкручивать назад. Сначала запускается конфигуратор: - Просьба конфигуратора ввода чего-то - ввод пользователем. Выполняется один раз. После конфигуратора и после каждого старта лайва запускается старт-скрипт для поднятия сети. В скриптах много мусора, он будет болтаться вплоть до релиза. Конфигуратор:: Код $ cat /run/media/user/alt-live-storage/usr/sbin/wlan-static-conf #!/bin/bash rfkill unblock all sleep 1 killall dhcpcd &>/dev/null chkconfig livecd-net-eth off &>/dev/null # /etc/rc.d/init.d/network stop &>/dev/null # chkconfig network off &>/dev/null # Блокировка dhcp # # Вручную в option для интерфейсов, # сменить в BOOTPROTO с dhcp на static # ## Перевод BOOTPROTO с dhcp на static grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \ while read NETIFACE do sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/' /etc/net/ifaces/$NETIFACE/options done /etc/rc.d/init.d/network restart &>/dev/null # Настройка, тест, не удалять!!! ## Очистка предыдущих настроек сети #ETCDIR=/etc/net/ifaces #[ -d "$ETCDIR" ] || return 1 #RMDIR=`find "$ETCDIR" -mindepth 1 -maxdepth 1 -xtype d -name "*"|sort -u|grep -E -vw 'ifaces/default|ifaces/lo|ifaces/unknown'` #rm -rf "$ETCDIR" # Для отладки, следующие два блока не раскомментировать!!! # Это необходимый мусор!!! # Создание каталогов сетевых интерфейсов #SYSDIR=/sys/class/net #[ -d "$SYSDIR" ] || return 1 #} #find "$SYSDIR" -mindepth 1 -maxdepth 1 -xtype d -printf '%f\n' | # while read IFACE; do # read TYPE < "$SYSDIR/$IFACE/type" # [ "$TYPE" = 1 ] && echo "$IFACE" # ethernet # done #} > #[ -n "$1" ] || return 1 #[ -d "$ETCDIR" ] || return 2 #IFACEDIR="$ETCDIR/$1" #[ ! -d "$IFACEDIR" ] || return 0 #echo -n "$1 " # NB: 3 seconds means STP ports will stay down => unconfigured #mkdir -p "$IFACEDIR" && { # echo TYPE=eth # echo BOOTPROTO=dhcp # echo DHCP_TIMEOUT=7 #} > "$IFACEDIR/options" echo -e "\nКонфигуратор WIFI в сети со статической адресацией\nОшибки не обрабатываются, будьте внимательны" # Конфигурирование DNS echo -e "\nВведите IP адрес первого DNS сервера:" read DNS1 echo -e "\nВведите IP адрес второго DNS сервера:" read DNS2 # # DNS-ы для беспроводного интерфейса. Отладочный блок!!! # #WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'` #D=`echo -e "nameserver $DNS1\nnameserver $DNS2"` # echo "$D" >/etc/net/ifaces/$WLANIFACE/resolv.conf # /sbin/resolvconf -a "$WLANIFACE" </etc/net/ifaces/$WLANIFACE/resolv.conf D=`echo -e "nameserver $DNS1\nnameserver $DNS2"` grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \ while read NETIFACE do # Настройка, тест, отладочная часть, не удалять!!! # mkdir -p /etc/net/ifaces/$NETIFACE # echo TYPE=eth >/etc/net/ifaces/$NETIFACE/options echo "$D" >/etc/net/ifaces/$NETIFACE/resolv.conf /sbin/resolvconf -a "$NETIFACE" </etc/net/ifaces/$NETIFACE/resolv.conf done # Имя беспроводного интерфейса WIFI WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'` echo WLANIFACE=$WLANIFACE >/etc/net/wlan-static ip link set $WLANIFACE up # Конфигурирование точки доступа echo -e "\nДоступные точки доступа:" iwlist $WLANIFACE scan | grep -i ssid echo -e "\nВведите имя точки доступа:" read NAMESSID echo -e "\nВведите пароль:" read PASWSSID wpa_passphrase $NAMESSID $PASWSSID > /etc/wpa_supplicant/wpa_supplicant.conf echo -e "\nВведите ваш IP адрес:" read IPADDR echo IPADDR=$IPADDR >>/etc/net/wlan-static echo -e "\nВведите сетевую маску:" read NETMASK echo NETMASK=$NETMASK >>/etc/net/wlan-static echo -e "\nВведите IP адрес шлюза:" read IPGATE echo IPGATE=$IPGATE >>/etc/net/wlan-static echo -e "\nДля поднятия беспроводной сети WIFI,\nс правами root запустите wlan-static-start\n" Стартер-скрипт: Код $ cat /run/media/user/alt-live-storage/usr/sbin/wlan-static-start #!/bin/bash rfkill unblock all sleep 2 killall wpa_supplicant &>/dev/null WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'` IPADDR=`grep IPADDR /etc/net/wlan-static | awk -F '=' '{print $2}'` NETMASK=`grep NETMASK /etc/net/wlan-static | awk -F '=' '{print $2}'` IPGATE=`grep IPGATE /etc/net/wlan-static | awk -F '=' '{print $2}'` ip link set $WLANIFACE up #grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \ #while read NETIFACE # do ## Настройка, тест, отладочная часть, не удалять!!! # /sbin/resolvconf -a "$NETIFACE" </etc/net/ifaces/$NETIFACE/resolv.conf #done wpa_supplicant -B -D wext -i $WLANIFACE -c /etc/wpa_supplicant/wpa_supplicant.conf ip addr add $IPADDR/$NETMASK dev $WLANIFACE ip route add default via $IPGATE echo -e "\nПосле загрузки или перезагрузки компьютера,\nдля поднятия беспроводной сети WIFI,\nвыполните эту команду.\n" |
|
|
13.2.2018, 23:07
Сообщение
#2
|
|
Крупный специалист Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: 1 |
Вот гадство-то, а?..
Как же не хотелось грохать первоначальные настройки (dhcp), а пришлось. Всё на HP Compaq NX6110 работает, беспроводная статика поднимается, но стоило загрузить лайв на G50-80, как всё рухнуло в один момент. Пришлось раскомментировать блок изничтожающий всё что не входит в пакет etcnet и методом псевдонаучных размышлений вставить пару-тройку (?) строк дополнительно. В текущей инкарнации скрипт конфинурации позволяет конфигурировать и переконфигурировать беспроводную сеть на статике без перезагрузки. Задаёт тупые вопросы с подсказками и требует таких же тупых ответов. После завершения настройки, конфигуратор подскажет что нужно запустить и как. Всё ещё много закомментированного мусора в скриптах. И что-то мне подсказывает, что он может пригодиться. В этой инкарнации, скрипты отработали и на NX6110 и на G50-80. И с повторным переконфигурированием и с перезагрузкой. Знаю что кто-то наверняка найдёт в них косяки, но тапками не кидаться. Скрипт конфигуратора WiFi в сети со статической адресацией (проверен на NX6110 и G50-80) Код #!/bin/bash rfkill unblock all sleep 1 killall dhcpcd &>/dev/null chkconfig livecd-net-eth off &>/dev/null # /etc/rc.d/init.d/network stop &>/dev/null # chkconfig network off &>/dev/null # Блокировка dhcp # # Вручную в option для интерфейсов, # сменить в BOOTPROTO с dhcp на static # ### Перевод BOOTPROTO с dhcp на static #grep . /sys/class/net/*/uevent | grep -v 'net/lo/'| grep INTERFACE | awk -F '=' '{print $2}' | \ #while read NETIFACE # do # sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/' /etc/net/ifaces/$NETIFACE/options #done #/etc/rc.d/init.d/network restart &>/dev/null # Настройка, тест, не удалять!!! ## Очистка предыдущих настроек сети ETCDIR=/etc/net/ifaces [ -d "$ETCDIR" ] || return 1 RMDIR=`find "$ETCDIR" -mindepth 1 -maxdepth 1 -xtype d -name "*"|sort -u|grep -E -vw 'ifaces/default|ifaces/lo|ifaces/unknown'` rm -rf "$ETCDIR" killall wpa_supplicant &>/dev/null rm -f /etc/wpa_supplicant/wpa_supplicant.conf &>/dev/null /etc/rc.d/init.d/network restart &>/dev/null #WLAN=`grep INTERFACE /sys/class/net/wlan0/uevent | cut -f2 -d '='` #mkdir -p $ETCDIR/$WLAN #touch $ETCDIR/$WLAN/resolv.conf #touch $ETCDIR/$WLAN/options #{ # echo TYPE=eth # echo BOOTPROTO=dhcp # echo DHCP_TIMEOUT=7 #} > "$ETCDIR/$WLAN/options # Для отладки, следующие два блока не раскомментировать!!! # Это необходимый мусор!!! # Создание каталогов сетевых интерфейсов #SYSDIR=/sys/class/net #[ -d "$SYSDIR" ] || return 1 #} #find "$SYSDIR" -mindepth 1 -maxdepth 1 -xtype d -printf '%f\n' | # while read IFACE; do # read TYPE < "$SYSDIR/$IFACE/type" # [ "$TYPE" = 1 ] && echo "$IFACE" # ethernet # done #} > #[ -n "$1" ] || return 1 #[ -d "$ETCDIR" ] || return 2 #IFACEDIR="$ETCDIR/$1" #[ ! -d "$IFACEDIR" ] || return 0 #echo -n "$1 " # NB: 3 seconds means STP ports will stay down => unconfigured #mkdir -p "$IFACEDIR" && { # echo TYPE=eth # echo BOOTPROTO=dhcp # echo DHCP_TIMEOUT=7 #} > "$IFACEDIR/options" echo -e "\nКонфигуратор WIFI в сети со статической адресацией\nОшибки не обрабатываются, будьте внимательны" # Конфигурирование DNS echo -e "\nВведите IP адрес первого DNS сервера:" echo "Например: 8.8.8.8" read DNS1 echo -e "\nВведите IP адрес второго DNS сервера:" echo "Например: 8.8.4.4" read DNS2 # # DNS-ы для беспроводного интерфейса. Отладочный блок!!! # #WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'` #D=`echo -e "nameserver $DNS1\nnameserver $DNS2"` # echo "$D" >/etc/net/ifaces/$WLANIFACE/resolv.conf # /sbin/resolvconf -a "$WLANIFACE" </etc/net/ifaces/$WLANIFACE/resolv.conf # Конфигурироание интерфейсов D=`echo -e "nameserver $DNS1\nnameserver $DNS2"` grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \ while read NETIFACE do # Настройка, тест, отладочная часть, не удалять!!! mkdir -p $ETCDIR/$NETIFACE echo TYPE=eth >$ETCDIR/$NETIFACE/options echo BOOTPROTO=static >>$ETCDIR/$NETIFACE/options echo "$D" >$ETCDIR/$NETIFACE/resolv.conf /sbin/resolvconf -a "$NETIFACE" <$ETCDIR/$NETIFACE/resolv.conf done /etc/rc.d/init.d/network restart &>/dev/null #D=`echo -e "nameserver $DNS1\nnameserver $DNS2"` #grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \ #while read NETIFACE # do ## Настройка, тест, отладочная часть, не удалять!!! ## mkdir -p /etc/net/ifaces/$NETIFACE ## echo TYPE=eth >/etc/net/ifaces/$NETIFACE/options ## echo BOOTPROTO=static >>/etc/net/ifaces/$NETIFACE/options # echo "$D" >/etc/net/ifaces/$NETIFACE/resolv.conf # /sbin/resolvconf -a "$NETIFACE" </etc/net/ifaces/$NETIFACE/resolv.conf #done # Имя беспроводного интерфейса WIFI WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'` echo WLANIFACE=$WLANIFACE >/etc/net/wlan-static #ip link set $WLANIFACE down &>/dev/null #ip link set $WLANIFACE up ifdown $WLANIFACE ifup $WLANIFACE ip link set $WLANIFACE up sleep 1 # Конфигурирование точки доступа echo -e "\nДоступные точки доступа:" #iwlist $WLANIFACE scan | grep -i ssid #iw dev $WLANIFACE scan ap-force | grep -i ssid ifconfig $WLANIFACE up && iwlist $WLANIFACE scan | grep -i ssid echo -e "\nВведите имя точки доступа:" read NAMESSID echo -e "\nВведите пароль:" read PASWSSID wpa_passphrase $NAMESSID $PASWSSID > /etc/wpa_supplicant/wpa_supplicant.conf echo -e "\nВведите ваш IP адрес:" echo "Например: 192.168.1.3" read IPADDR echo IPADDR=$IPADDR >>/etc/net/wlan-static echo -e "\nВведите сетевую маску:" echo "Например: 255.255.255.0" read NETMASK echo NETMASK=$NETMASK >>/etc/net/wlan-static echo -e "\nВведите IP адрес шлюза:" echo "Например: 192.168.1.1" read IPGATE echo IPGATE=$IPGATE >>/etc/net/wlan-static echo -e "\nДля поднятия беспроводной сети WIFI,\nс правами root запустите wlan-static-start\n" Стартер-скрипт для поднятия WiFi в сети со статической адресацией (проверен на NX6110 и G50-80) Код #!/bin/bash rfkill unblock all sleep 2 killall wpa_supplicant &>/dev/null WLANIFACE=`grep INTERFACE $(grep -l wlan /sys/class/net/*/uevent)|awk -F '=' '{print $2}'` IPADDR=`grep IPADDR /etc/net/wlan-static | awk -F '=' '{print $2}'` NETMASK=`grep NETMASK /etc/net/wlan-static | awk -F '=' '{print $2}'` IPGATE=`grep IPGATE /etc/net/wlan-static | awk -F '=' '{print $2}'` ip link set $WLANIFACE up #grep . /sys/class/net/*/uevent | grep -v lo/ | grep INTERFACE | awk -F '=' '{print $2}' | \ #while read NETIFACE # do ## Настройка, тест, отладочная часть, не удалять!!! # /sbin/resolvconf -a "$NETIFACE" </etc/net/ifaces/$NETIFACE/resolv.conf #done wpa_supplicant -B -D wext -i $WLANIFACE -c /etc/wpa_supplicant/wpa_supplicant.conf ip addr add $IPADDR/$NETMASK dev $WLANIFACE ip route add default via $IPGATE sleep 1 echo -e "\nПосле загрузки или перезагрузки компьютера,\nдля поднятия беспроводной сети WIFI,\nвыполните эту команду.\n" Результат работы скриптов на скриншоте. Немного потыцкано Enter-ом чтобы скрыть пароль. Принимаются любые посказки как при вводе скрыть пароль при наборе, кодом в скриптах. Шоб не светить его при наборе, ибо нафик такой подарок не нужен.
Прикрепленные файлы
|
|
|
14.2.2018, 9:15
Сообщение
#3
|
|
Профессионал Группа: Активный Пользователь Сообщений: 1163 Регистрация: 10.4.2015 Вставить ник Цитата Пользователь №: 2798 Страна: Казахстан Город: Уральск Пол: Муж. Репутация: 5 |
Принимаются любые посказки как при вводе скрыть пароль при наборе, кодом в скриптах. Шоб не светить его при наборе, ибо нафик такой подарок не нужен. https://habrahabr.ru/company/ruvds/blog/326328/ Цитата Иногда то, что вводит пользователь в ответ на вопрос скрипта, лучше на экране не показывать. Например, так обычно делают, запрашивая пароли. Ключ -s команды read предотвращает отображение на экране данных, вводимых с клавиатуры. На самом деле, данные выводятся, но команда read делает цвет текста таким же, как цвет фона. Код #!/bin/bash read -s -p "Enter your password: " pass echo "Is your password really $pass? " Подойдет? |
|
|
14.2.2018, 9:27
Сообщение
#4
|
|
Профессионал Группа: Активный Пользователь Сообщений: 1163 Регистрация: 10.4.2015 Вставить ник Цитата Пользователь №: 2798 Страна: Казахстан Город: Уральск Пол: Муж. Репутация: 5 |
Варианты есть здесь: https://stackoverflow.com/questions/3980668...without-echoing
Один из них через выключение echo: Код #!/bin/sh # Read secret string read_secret() { # Disable echo. stty -echo # Set up trap to ensure echo is enabled before exiting if the script # is terminated while echo is disabled. trap 'stty echo' EXIT # Read secret. read "$@" # Enable echo. stty echo trap - EXIT # Print a newline because the newline entered by the user after # entering the passcode is not echoed. This ensures that the # next line of output begins at a new line. echo } |
|
|
14.2.2018, 12:48
Сообщение
#5
|
|
Крупный специалист Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: 1 |
thnx
|
|
|
14.2.2018, 21:23
Сообщение
#6
|
|
Профессионал Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: 20 |
Мужики, если что могу сделать сборку на этих выходных, либо через 2 недели ( следующая неделя выпадает по работе ). Вообщем смотрите сами , можно особенно не торопиться . Яндекс диск штука интересная показывает количество закачек.
Предыдущая версия 6 закачек, текущая 2 - делаем дистрибутив для себя и небольшого числа товарищей кому за ... и тех кто помнит cp/m, dos, is-dos , tr-dos и т.п. Я еще помню sp-dos в добавок к этому списку Сообщение отредактировал kostyalamer - 14.2.2018, 21:28 |
|
|
22.2.2018, 15:20
Сообщение
#7
|
|
Профессионал Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: 20 |
Юра как там скрипт продвигается ? Если что могу помочь с опакечиванием- хотя у меня с ним , как ты уже видел , иногда бывают разные грабли Кстати, все не так плохо - эту версию скачали 6 человек, так что работаем не только для себя.
|
|
|
Текстовая версия | Сейчас: 19.4.2024, 7:04 | |