Comment un utilisateur non root peut-il surveiller le trafic réseau en ligne de commande?

0

Je sais que gnome-system-monitor peut afficher la bande passante même s’il est ouvert par un utilisateur non root. Mais des outils comme iftop, nethogs, etc. semblent tous nécessiter le travail de root. Comment permettre à un utilisateur régulier de faire ce que gnome-system-monitor fait? L’application que je vais utiliser est un script qui génère des débits en Mb / s toutes les n secondes, utilisé pour la canalisation vers une ligne d’état.

nullUser
la source
Les utilisateurs non root ne peuvent pas surveiller le trafic réseau. Ils peuvent cependant voir les totaux générés par le système
qasdfdsaq

Réponses:

4

Les données que vous souhaitez sont disponibles pour tout le monde, à l'adresse /proc/net/dev. Cependant, vous devrez calculer vous-même la bande passante, en prenant le delta et le temps entre deux valeurs.

N'oubliez pas cependant que ces compteurs peuvent déborder, en fonction de l'architecture de votre système et de la version du noyau. Un débordement peut survenir à 2 32 -1 (accessible en quelques secondes sur Gigabit Ethernet) ou à 2 64 -1 (pratiquement inutile).

Daniel B
la source
1

Dir /sys/class/net/${interface}/statistics/a tout ce dont vous avez besoin.

Script BASH basé sur ceci: check_bandwidth.sh

7171u
la source
0

Supposons que vous parlez de néthogs. Nous savons que nethogs appartient à root si nous le faisons ls -l $(which nethogs).

Tout ce dont nous avons besoin maintenant, c’est de changer le bit SUID afin que, lorsque vous exécutez nethogs, il s’exécute avec les autorisations de son propriétaire (c’est-à-dire root). Courir:

sudo chmod u+s $(which nethogs)

Et ça devrait marcher.

dualscyther
la source