Si vous utilisez WSL (Windows Subsystem for Linux) avec une distribution Debian ou Ubuntu, vous avez remarqué que la commande ping
nécessite d’être exécutée avec sudo
pour fonctionner. Ce comportement est dû à l’absence de la capacité cap_net_raw
sur le binaire ping
, empêchant les utilisateurs non-root d’envoyer des requêtes ICMP.
germain@nuc13:~$ ping google.com
ping: socktype: SOCK_RAW
ping: socket: Operation not permitted
ping: => missing cap_net_raw+p capability or setuid?
1. Vérifier l’emplacement du binaire ping
which ping
Cela devrait afficher un chemin comme /usr/bin/ping
.
2. Ajouter la capacité cap_net_raw
sudo setcap cap_net_raw+p $(which ping)
3. Vérifier la config
getcap $(which ping)
# attendu :
/usr/bin/ping = cap_net_raw+p
4. Tester
ping google.com
# attendu :
PING google.com (142.250.185.46) 56(84) bytes of data.
64 bytes from 142.250.185.46: icmp_seq=1 ttl=117 time=12.4 ms
64 bytes from 142.250.185.46: icmp_seq=2 ttl=117 time=12.1 ms