実行可能ファイルに set-user-id ビットがオンであると仮定します。
プロセスが実行可能ファイルを実行すると、有効なユーザーIDを実行可能ファイルの所有者ユーザーIDに変更します。後ろにカーネルは、ファイルアクセステストによってファイルが実行可能であることを確認します。バラより https://stackoverflow.com/questions/41456225/how-and-when-does-exec-change-the- Effective-user-id-when-the-set-user-id-is-s そして プログラムファイルのset-user-IDの用途は何ですか?
これは、プロセスの元の有効なユーザーIDに基づいてテストに合格した場合でも、実行可能ファイルの所有者ユーザーIDがカーネルで実行されたファイルアクセステストに合格しないことを意味します。
一般的に、実行可能ファイルの所有者に実行権限がないことは言いますか?
ありがとうございます。
答え1
どのように機能するのかわかりません(主にこの構成がどのように使用されるのか見たことがないからです)。私の考えでは、SUIDが
seteuid()
起動プロセスの最後の部分(プログラム自体で実行が送信される直前)に効果的に呼び出されるため、問題にならないようです。後ろに実行のためにファイルがロードされるため、スキャンが発生するとすぐに(少なくともLinuxでは、データがメモリにロードされる前にスキャンが発生します)。意味が何を意味するかによって異なります。所有者が実行可能ビットを直接設定できるため(これを防ぐための追加の必須アクセス制御がないと仮定)、機能的には何も実行しないため、実際には真ではありません。有用な意味で意味があるかどうかについては、所有者が実行権限を持たず、他のユーザーが実行権限を持つことが意味のある状況を考えることができないので、同様にいいえと言いたいと思います。