2 скрипта:
- вынимает виртуальный привод в медеме (меня раздражает), опускает wlan0, выводит сообщение о успехе в виде уведомления.
- поднимает wlan0, рандомно меняет MAC адрес для wlan0 раз в 30 минут
1. /sh/udev_add.sh
#!/bin/bash
# При подключении модема отключить виртуальный привод и wlan0
sleep 30
if ifconfig | grep -oE usb0 &> /dev/null;
then /usr/bin/eject /dev/sr0 && sudo /sbin/ifconfig wlan0 down && export DISPLAY=:0.0 && sudo -u evg /usr/bin/notify-send "beeline remove OK" # есть модем
else sleep 1
fi
sleep 10
export DISPLAY=:0.0 && sudo -u evg /usr/bin/notify-send "UDEV OK"
2. /sh/udev_remove.sh
#!/bin/bash
while true; do
if ifconfig | grep -oE usb0 &> /dev/null;
then sudo ifconfig wlan0 down && sleep 5 && export DISPLAY=:0.0 && sudo -u evg /usr/bin/notify-send "Есть USB модем, соединение Wi-Fi не требуется" && eject /dev/sr0
else mac=$(dd if=/dev/random bs=1024 count=1 2>/dev/null|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')
sudo ifconfig wlan0 down
sudo ifconfig wlan0 hw ether $mac
sudo ifconfig wlan0 up
sleep 1
sudo service network-manager restart
sleep 5
export DISPLAY=:0.0 && sudo -u evg /usr/bin/notify-send --icon=/usr/share/icons/hicolor/48x48/apps/gcr-password.png --urgency normal --expire-time=90000 -i typing-monitor -h int:x:500 -h int:y:500 "$mac" "new MAC wlan0"
fi
export DISPLAY=:0.0 && sudo -u evg /usr/bin/notify-send "`ifconfig | grep "Link en" | awk '{print $1}'`" "Доступные интерфейсы"
sleep 1790
done
Следующий шаг, надо добавить эти скрипты к подключению\отключения устройства.
начнем со сбора информации:
# udevadm monitor --environment --udev
Нас интересует:
1. SUBSYSTEM
2. ID_VENDOR_ID
3. ID_MODEL_ID
Что с этим "богаством" делать?
Создаем файл в любимом текстовом редакторе:
sudo gedit\nano\leafpad /etc/udev/rules.d/90-usbmodem.rules
ACTION=="add", SUBSYSTEM=="block", ENV{ID_VENDOR_ID}=="19d2", ENV{ID_MODEL_ID}=="1403", RUN+="/sh/udev_add.sh"
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="19d2", ENV{ID_MODEL_ID}=="1403", RUN+="/sh/udev_remove.sh &"
Приказываем UDEV перечитать правила:
# udevadm control --reload-rules
Комментариев нет:
Отправить комментарий