traceroute -d
権限のある「標準」ユーザーとして認証しようとしていますsudo
。ところで実行させれば sudo traceroute -d
ユーザーとして実行になるroot
ので、一般ユーザーとして実行する方法を知りたいです。私は基本的にユーザースーパーユーザー(別名ルート)を作成するためにいくつかの方法を試しましたが、成功しませんでした。
動作する唯一の方法は、/etc/passwdのuidとグループIDを0に変更することです。ただし、これによりユーザー「identity」が「root」に変わります。たとえば、whoamiを実行すると、「標準」ユーザー名の代わりに「root」が表示されます。
これが必要なのは、 --uid-owner に基づくいくつかのネットワークパスがあり、デバッグを試みていますが、sudo b / cで実行することは意味がなく、「root」ユーザーとして実行されるためです。別のパスがあります。
答え1
traceroute
で実行する必要はありませんroot
。ただ機能だけが必要ですCAP_NET_ADMIN
。したがってtraceroute
、カーネルがファイル機能をサポートしてブロックするLinuxセキュリティモジュール(SELinux、AppArmor)がない場合は、ファイルのファイル機能として設定できます。
setcap CAP_NET_ADMIN+ep /usr/sbin/traceroute
traceroute
実行中pscap
。これはプロセスのUID / EUIDには影響しません。
どうすればいいかわかりませんが、私が知っている限り、AppArmor(そしておそらくSELinux)を使っていくつかの機能を持つプロセスを実行することも可能です。もちろん、主な使命は利用可能な機能を制限することです。