Pourquoi nethogs n'est-il pas installé avec le bit setuid?

J'utilise nethogs depuis un certain time maintenant, ayant sudo chaque fois, alors que ping a le bit setuid mis. Aujourd'hui je l'ai mis pour les nethogs et ça marche:

 $ ls -l $(which nethogs) $(which ping) -rwxr-xr-x 1 root root 64496 Nov 2 2011 /usr/sbin/nethogs -rwsr-xr-x 1 root root 44168 May 7 17:21 /bin/ping $ sudo chmod u+s $(which nethogs) $ ls -l $(which nethogs) -rwsr-xr-x 1 root root 64496 Nov 2 2011 /usr/sbin/nethogs $ nethogs 

Pouvez-vous penser à une raison pour ne pas l'installer par défaut comme ça?

    ping est setuid parce que, bien que "safe", il faut pouvoir ouvrir les sockets raw. Par conséquent, il a besoin de la capacité CAP_NET_RAW ou d'être root.

    nethogs est différent pour plusieurs raisons: il ne nécessite pas seulement un access privilégié à la stack réseau, mais aussi des informations sur les autres users. Sur un système multi-user, vous ne voulez peut-être pas que n'importe quel user puisse voir qui utilise quoi.

    Une autre raison est que nethogs est un programme assez compliqué. Les programmes exécutant setuid doivent être sécurisés : un débordement de tampon, par exemple, peut conduire à une élévation arbitraire des privilèges. ping prend un certain soin pour être sûr, et détecte même qui le fait fonctionner pour se comporter différemment ( ping -f ne fonctionne que si vous êtes en fait root, par exemple). Il est plus facile d'avoir confiance en cela dans un petit programme non interactif que dans un outil plus vaste comme nethogs .

    Exiger que l'user dispose d'un access root évite déjà ces sortes de problèmes ou les délègue à sudo . Il n'y a pas (autant que) d'inquiétude à propos de l'élévation des privilèges lorsque vous êtes déjà root. En général, les programmes ne sont pas définis par défaut sauf si leur fonction est vitale, comme passwd .

    Cela dit, sur un système mono-user, ou sur lequel vous n'êtes pas concerné par ces problèmes, le rendre paramétrable pour votre propre convenance n'est pas un problème important.