#!/bin/sh # Set an interface as managed / unmanaged by Network Manager # 2013 Laurent Ghigonis # /etc/NetworkManager/NetworkManager.conf # [keyfile] # unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4 NMCONF=/etc/NetworkManager/NetworkManager.conf progname=`basename $0` usage_exit() { echo "usage: $progname " echo echo "actions:" echo "status # Default action" echo "manage " echo "unmanage " echo "restart" exit 1 } iface_status() { iface=$2 mac=`ifconfig -a |grep -A5 $iface |grep ether |head -n1 |awk '{print $2}'` echo "Corresponding MAC : $mac" [[ $mac = "" ]] && echo "empty MAC !" && exit 1 grep "mac:$mac" $NMCONF >/dev/null unmanaged=$? } [ X"$1" = X"-h" ] && usage_exit action=$1 case $action in m|manage) iface_status $@ [[ $unmanaged -ne 0 ]] && echo "Already managed" && exit 1 sudo sed -i s/"mac:fe:ff:ff:ff:ff:ff"// $NMCONF ;; u|unmanage) iface_status $@ [[ $unmanaged -eq 0 ]] && echo "Already unmanaged" && exit 1 sudo sed -i s/"\(unmanaged-devices=\)"/"\1mac:$mac;"/ $NMCONF ;; r|restart) # done below ;; *) echo $NMCONF cat $NMCONF exit 1 esac sudo systemctl restart NetworkManager.service