Il s'agit d'une amélioration de la réponse précédente de Cyril Fessl. (Je n'ai pas la réputation nécessaire pour commenter.) Celle-ci fonctionne également pour Fedora, où les interfaces réseau peuvent maintenant avoir des noms comme wlan0
, wlp6s0
, em1
y enp0s20u2u1
). Cette variante n'essaie pas de faire correspondre le nom de l'interface, mais cherche plutôt dans /sys/class/net
pour obtenir des informations sur le dispositif. Fonctionne sur mon ordinateur portable Fedora 21 (noyau 3.18), et je pense qu'il fonctionnera également sur Debian >= 7.
#!/bin/sh
\[ $# -ge 2 \] || exit 1
DEBUG=false
STATEDIR=/var/run/nm-wired
mkdir -p $STATEDIR
IFACE=$1
ACTION=$2
myname=$(basename "$0") || exit 1
log() { logger -p user.info -t "${myname}\[$$\]" "$IFACE/$ACTION: $\*"; }
if $DEBUG; then
if \[ -e "/sys/class/net/$IFACE/device" \]; then
log "/sys/class/net/$IFACE/device exists"
else
log "/sys/class/net/$IFACE/device does not exist"
fi
if \[ -e "/sys/class/net/$IFACE/wireless" \]; then
log "/sys/class/net/$IFACE/wireless exists"
else
log "/sys/class/net/$IFACE/wireless does not exist"
fi
fi
case ${ACTION} in
up)
rm -rf $STATEDIR/$IFACE
# Don't do anything if this is not a physical device.
if \[ ! -e "/sys/class/net/$IFACE/device" \]; then
log "$IFACE not a physical device -- ignoring"
exit 0
fi
# Don't do anything if this is a wireless device.
if \[ -d "/sys/class/net/$IFACE/wireless" \]; then
log "$IFACE not a wired device -- ignoring"
exit 0
fi
# Keep track of wired devices. When they go down, the
# device node may go as well (e.g. USB Ethernet dongle),
# so we'd have no way of telling what type the device was.
touch $STATEDIR/$IFACE
# Now shut down WiFi.
log "shutting down WiFi"
nmcli r wifi off
;;
down)
# Check whether we previously recognised $IFACE as a
# physical, wired device.
if \[ ! -e $STATEDIR/$IFACE \]; then
log "$IFACE not a wired device -- ignoring"
exit 0
fi
rm -rf $STATEDIR/$IFACE
# Instead of checking a single file, we could also check
# whether there are still files in $STATEDIR. If so, we
# still have a wired device enabled...
log "enabling WiFi"
nmcli r wifi on
;;
esac
0 votes
La réponse à cette question varie d'un ordinateur à l'autre. Je ne sais pas si Ubuntu le permet, mais j'ai constaté que c'est une option du BIOS.
0 votes
Je ne veux pas dire
completely disable
le wlan, je veux dire désactiver Ubuntu pour qu'il essaie de se connecter à n'importe quel wlan si une connexion filaire est disponible. C'est donc une question de système d'exploitation.0 votes
En rapport avec unix.stackexchange.com/questions/487640/ y askubuntu.com/questions/1271491/
0 votes
Voir aussi l'exemple 14 sur manpages.ubuntu.com/manpages/focal/man7/nmcli-examples.7.html