web-dev-qa-db-fra.com

iwconfig ne signale pas la qualité de la liaison sauf s’il est exécuté en tant que sudo

J'utilise Ubuntu 13.10 sur un Macbook Pro Retina fin 2013 (démarré via Refind ).

Mon problème est que l'exécution de iwconfig ne génère pas Link Quality ou Signal Level sauf si vous exécutez Sudo.

me:~$ Sudo iwconfig
eth0      IEEE 802.11abg  ESSID:"redacted_essid"  
          Mode:Managed  Frequency:2.447 GHz  Access Point: RE:DA:CT:ED:XX:XX   
          Bit Rate=144 Mb/s   Tx-Power=200 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=70/70  Signal level=-35 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

Pas comme Sudo:

me:~$ iwconfig  
eth0      IEEE 802.11abg  ESSID:"redacted_essid"  
          Mode:Managed  Frequency:2.447 GHz  Access Point: RE:DA:CT:ED:XX:XX   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

lo        no wireless extensions.

Est-ce normal et puis-je faire quelque chose pour que cela fonctionne sans les autorisations de super-utilisateur?

Ma raison est que le Widget Wifi vicieux pour Awesome Window Manager s'attend à pouvoir interroger iwconfig pour obtenir ces informations non pas en tant que root: http://git.sysphere.org/vicious/tree/widgets/ wifi.lua

Merci beaucoup.

4
doctororange

La commande iwconfig est une commande d’administration du système (généralement réservée à root). Voir man iwconfig . Il est documenté dans la section 8 des pages de manuel. Pour en savoir plus sur les pages de manuel, voir this post .

Si vous essayez en terminal,

_$ type iwconfig 
iwconfig is hashed (/sbin/iwconfig)
_

et _/sbin_ contient des exécutables privilégiés. C'est la raison pour laquelle vous ne pouvez pas avoir toutes les fonctionnalités lorsque vous utilisez en tant qu'utilisateur non root. Il n'y a rien d'anormal.

Comment utiliser _Sudo iwconfig_ sans mot de passe  [ source ]

Vous pouvez utiliser la directive NOPASSWD dans votre fichier _/etc/sudoers_.

Si votre utilisateur s'appelle user et que votre hôte s'appelle Host, vous pouvez ajouter ces lignes à _/etc/sudoers_:

_user Host = (root) NOPASSWD: /sbin/iwconfig
_

Cela permettra à l'utilisateur user d'exécuter la commande _Sudo iwconfig_ sur Host sans entrer de mot de passe. Toutes les autres commandes Sudoed nécessitent toujours un mot de passe.

Il est recommandé d'utiliser _Sudo visudo_ pour éditer le fichier. Lisez ce billet de Nice avant de continuer. Vous pouvez également y trouver une alternative si vous ne souhaitez pas modifier votre _/etc/sudoers_


L'autre mauvais moyen [non recommandé] est de demander à Sudo de lire votre mot de passe à partir d'un fichier dans lequel votre mot de passe est déjà enregistré. Mais cela peut être de graves problèmes de sécurité . Le commutateur _-S_ permet à Sudo de lire un mot de passe à partir de l'entrée standard.

Si vous stockez votre mot de passe dans un fichier _mypsd.txt_ contenant uniquement votre mot de passe suivi d'un nouveau caractère de ligne. Ensuite, la commande suivante s’exécutera en lisant votre mot de passe à partir de ce fichier,

_cat /path/to/mypsd.txt | Sudo -S iwconfig
_
5
souravc

Encore une autre solution simple

Les autorisations de fichier par défaut de iwconfig dans Xubuntu 13.10 sont les suivantes:

$ ls -l /sbin/iwconfig
-rwxr-xr-x 1 root root 26152 Feb  03  2014 /sbin/iwconfig

Les commandes suivantes pourraient résoudre ce problème dans d'autres versions d'Ubuntu:

$ Sudo useradd -G Sudo <your user name>
$ Sudo chmod 755 /sbin/iwconfig

-- Cordialement.

0
suqed