nethogs
私はこれをしばらく使用しており、sudo
毎回setuidビットを設定する必要がありましたping
。今日私はそれをnethogsに設定して動作しました。
$ 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
基本的にこのようにインストールされない理由を考えることはできますか?
答え1
ping
setuidはかなり「安全」ですが、生のソケットを開くことができるはずです。ついにかかるCAP_NET_RAW
能力があるかルートになります。
nethogs
いくつかの理由で異なります。ネットワークスタックへの特権アクセスが必要なだけでなく、他のユーザーに関する情報も表示することに注目する価値があります。マルチユーザーシステムでは、誰が誰を使用しているのかわからないようにしたいと思います。
nethogs
もう一つの理由は、これがかなり複雑な手順であるためです。 setuid プログラムの実行追加のセキュリティが必要: たとえば、バッファオーバーフローによってランダムな特権の昇格が発生する可能性があります。ping
安全のためには、誰が実際に実行しているかを検出し、異なる動作をするように注意する必要があります(たとえば、ping -f
実際にはルートの場合にのみ機能します)。 nethogs
.
ユーザーにrootアクセス権を要求すると、すでにこれらの問題を回避または委任できますsudo
。すでにルートの場合は、権限の上昇について心配する必要はありません。通常、プログラムは機能にとって重要でない限り、デフォルトではsetuidを設定しませんpasswd
。
つまり、シングルユーザーシステムやこれらの問題に興味がないシステムでは、自分の便宜のためにsetuidに設定することは大きな問題ではありません。