4points · 1d ago

macOS 27: ifconfig command no longer prints hardware MAC address

Just a quick PSA. A handful of my scripts broke today after installing macOS 27. Turns out they decided to redact the interface hardware ether/MAC addresses, all of them report 02:00:00:00:00:00

(…unless you run with "sudo")

Luckily, you can still get the MAC addresses with

    networksetup -getmacaddress en0
news.ycombinator.com·by luckman212·1d ago

Discussion 8 comments

bestnew
⌘↵ to post · markdown supported
luckman212·1h ago
0
luckman212·2h ago
27.0.1 did not fix it, and I reproduced it on 2 more Macs, one was literally factory reset, just installed a fresh macOS 27, installed Homebrew, installed Bash5, ran ifconfig .... bug reproduced
0
luckman212·2h ago
Interestingly, running `ifconfig` from a Zsh shell still does show MAC addresses
0
ButlerianJihad·1h ago
ifconfig is deprecated in modern Linux. Is it not deprecated in BSD? Does Apple not provide the ip(8) command-line tools?

https://manpages.ubuntu.com/manpages/stonking/man8/ip.8.html

No, it seems that iproute2 is Linux-first, or Linux-only: https://en.wikipedia.org/wiki/Iproute2

Sad!

0
dTal·32m ago
Who says it's deprecated? If it's the same people who think my Ethernet port should be called "enp0s31f6" instead of "eth0", then I'm afraid I do not respect their authority...
0
lapcat·1d ago
I can't reproduce this.
0
luckman212·17h ago
It seems to only affect Bash 5.3.20 (Homebrew) - very odd:

    % /bin/bash --version
    GNU bash, version 3.2.57(1)-release (arm64-apple-darwin26)
    
    % /opt/homebrew/bin/bash --version
    GNU bash, version 5.3.20(1)-release (aarch64-apple-darwin27.0.0)
    
    % zsh -c '/sbin/ifconfig en0 | grep ether'
    ether d0:11:e5:1a:27:7a
    
    % /bin/bash -c '/sbin/ifconfig en0 | grep ether'
    ether d0:11:e5:1a:27:7a
    
    % /opt/homebrew/bin/bash -c '/sbin/ifconfig en0 | grep ether'
    ether 02:00:00:00:00:00
0
hrbrmstr·15h ago
it works fine in system bash for me
0
luckman212·9h ago
Yes it works in my system bash too (see above) - seems to be some sort of obscure Bash bug...
0