How-to-simply...

Set ethernet connection MAC address on Fedora/RHEL

  • 1 # List eth connection details
    nmcli -t -f NAME,UUID,DEVICE,TYPE c show | awk -F: '{cmd="cat /sys/class/net/"$3"/address 2>/dev/null"; cmd | getline mac; close(cmd); if(mac=="") mac="N/A"; print $0 ":" mac}' | grep 802-3-ethernet
  • 2 # Assign interface MAC to a variable
    IFACE_MAC=$(ip link show eth0 | awk '/ether/ {print $2}')
  • 3 # Set eth MAC address
    nmcli c modify ${CONN_NAME} 802-3-ethernet.mac-address ${IFACE_MAC}
  • N Use empty string "" instead of ${IFACE_MAC} for dynamic asignment.

References