Voici 2 commandes pour récupérer votre adresse IP locale qui n’ont pas besoin des droits root :
$ hostname -I 192.168.0.3
$ ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 70:52:04:73:48:2a brd ff:ff:ff:ff:ff:ff 3: wlan0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 5d:50:4a:46:8b:27 brd ff:ff:ff:ff:ff:ff inet 192.168.0.3/24 brd 192.168.0.1 scope global dynamic wlan0 valid_lft 8014sec preferred_lft 8014sec inet6 fe80::5d50:4aff:fe46:8b27/64 scope link valid_lft forever preferred_lft forever
$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 70:52:04:73:48:2a UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interruption:20 Mémoire:f1600000-f1620000 lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:237 errors:0 dropped:0 overruns:0 frame:0 TX packets:237 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:20363 (19.8 KiB) TX bytes:20363 (19.8 KiB) wlan0 Link encap:Ethernet HWaddr 5d:50:4a:46:8b:27 inet adr:192.168.0.3 Bcast:192.168.0.1 Masque:255.255.255.0 adr inet6: fe80::5d50:4aff:fe46:8b27/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:15053 errors:0 dropped:0 overruns:0 frame:0 TX packets:14008 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:13286403 (12.6 MiB) TX bytes:11979059 (11.4 MiB)
/sbin/ifconfig ?
Oui,
ifconfig
marche ici aussi sans Root.Pour faire complet :
ifconfig | grep 'inet adr'
(mais merci pour la première commande, que je ne connaissais pas. Elle peut retourner plusieurs IP par contre, conformément au nombre de cartes réseau et de la boucle locale)
Alors en fait ça dépend de la distribution…
Avec une debian wheezy par exemple et un user « normal » ça me donne « bash: ifconfig : commande introuvable », car « sbin » n’est pas dans le $PATH des utilisateurs.
User $PATH : /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Root $PATH : /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Donc ip c’est bien, en plus c’est l’avenir :-)
Sur Jessie, (la Debian stable actuelle), /sbin n’est pas dans le $PATH utilisateur. C’est à priori logique vu que /sbin ne comprend normalement que les programmes réservés à root.
Maintenant, il pourrait y avoir un alias ifconfig pour l’utilisateur…
Mais « ip » est la commande recommandée désormais donc ça fait sens de déprécier « ifconfig »
J’ai rajouté la commande « ifconfig » dans l’article, comme ça, pas de jaloux.
« ip addr » peut être raccourci en « ip a »
et en moins bavard :
ip -o -4 a
-o : une seule ligne par carte : pratique pour faire un pipe
-4 : uniquement IPv4
Et un alias sympa :
alias ipa=’ip -o -4 a | tr -s » » | cut -d » » -f2,4′
Merci pour le « hostname -I » que je ne connaissais pas.
Sinon, avec ifconfig, la technique du Hollandais volant est bien, mais comme pour « hostname -I » on ne récupère pas le nom de l’interface. Je propose :
ifconfig | grep -B 1 ‘adr’
Bref, il y a plein de façons et il n’y a jamais eu besoin de root. GG.
Prochain article, comment changer le répertoire courant sans les droits root ?