プロセスが実行されると、 setuid は、 LD_PRELOAD や ptrace (デバッグ)など、プロセスを破壊する可能性のあるさまざまなものから保護されることを知っています。しかし、私は capabilities に対して行われているのと同じことについて何も見つけることができませんでした。私は仮定同じ種類のことが機能で行われると思います。そうしないと巨大なセキュリティホールが発生するためですが、文書化されていることを見つけることができませんでした/ verified。
前述のように このカーネルメーリングリストメッセージ では、プロセスに追加のセキュリティが必要かどうかがチェックされます cap_bprm_secureexec()
カーネルファイルsecurity/commoncap.c
は、機能をチェックします。次に、これは 補助ベクトル を介してプロセスにエクスポートされます。これには、 getauxval(AT_SECURE)
を介してアクセス/テストできます。 getauxval(AT_SECURE)
をテストプログラムに挿入しましたが、setuidを実行する場合と同じように、機能を設定して使用できる状態で実行すると、実際に1が返されました。そのため、機能にはsetuidと同じセキュリティ保護があります。