Unixのset-user-IDメカニズムを説明できる人はいますか?このデザイン決定の根拠は何でしたか?効果的なユーザーIDメカニズムとどう違いますか?
ベストアンサー1
おそらく、UNIXでは、ファイルに対する一般的な読み取り、書き込み、および実行権限を知っているでしょう。
ただし、多くのアプリケーションでは、このタイプの権限構造(たとえば、特定のユーザーに特定のファイルを読み取るための完全な権限を付与したり、ファイルをまったく読み取る権限を付与しないなど)はあまりにも粗雑です。したがって、Unixには別の許可ビットであるset-user-ID
ビットが含まれています。実行可能ファイルにこのビットが設定されると、所有者以外のユーザーがファイルを実行するたびに、そのユーザーは所有者の他のファイルにアクセスするときに所有者のすべてのファイルの読み取り/書き込み/実行権限を取得します。
ファイルのユーザー ID ビット設定を設定するには、次のように入力します。
chmod u+s filename
group-otherの実行権限も設定していることを確認してください。他のグループに対する読み取り権限もあれば良いでしょう。これはすべて1つの文で可能です
chmod 4755 filename
保存されたUIDとも呼ばれます。開始されたファイルにはSet-UIDビットがあり、保存されたUIDはファイル所有者のUIDになります。それ以外の場合、保存されたUIDは実際のUIDになります。
有効なuidとは何ですか?
このUIDは、特定のタスクを実行するためのプロセスの権限を評価するために使用されます。 EUIDは実際のUIDに変更でき、EUID!= 0の場合はスーパーユーザーUIDに変更できます。 EUID = 0の場合は、何でも変更できます。
はい
そのようなプログラムの例ですpasswd
。完全なリストを見ると、Set-UIDビットがあり、所有者が「root」であることがわかります。通常のユーザー(「mtk」など)で実行すると、次のようpasswd
になります。
Real-UID = mtk
Effective-UID = mtk
Saved-UID = root