chown
はなぜですか コマンドroot-only?
root以外のユーザーがchownを使用して所有するファイルを提供できないのはなぜですか?
承認された回答:
ほとんどのUNIXシステムは、ユーザーがファイルを「譲渡」することを防ぎます。つまり、ユーザーは chown
のみを実行できます。 ターゲットユーザーとグループの権限がある場合。 chown
を使用しているので ファイルを所有しているか、rootである必要があります(ユーザーが他のユーザーのファイルを適切に使用することはできません)。 chown
を実行できるのはrootのみです。 ファイルの所有者を別のユーザーに変更します。
この制限の理由は、ファイルを別のユーザーに渡すと、まれではあるが重要な状況で悪いことが起こる可能性があるためです。例:
- システムでディスククォータが有効になっている場合、アリスは自分だけがアクセスできるディレクトリの下に誰でも書き込み可能なファイルを作成し(したがって、他の誰もその誰も書き込み可能なファイルにアクセスできません)、
chown
> そのファイルを別のユーザーBillが所有するようにします。アリスだけがファイルを使用できる場合でも、ファイルはビルのディスククォータの下でカウントされます。 - アリスがファイルをビルに渡した場合、ビルがそのファイルを作成しなかったという痕跡はありません。これは、ファイルに違法またはその他の危険なデータが含まれている場合に問題になる可能性があります。
- 一部のプログラムでは、要求を認証するために、入力ファイルが特定のユーザーに属している必要があります(たとえば、ファイルには、プログラムがそのユーザーに代わって実行するいくつかの命令が含まれています)。ビルが構文的に正しい命令を含むファイルを作成したとしても、この特定の時間にそれらを実行することを意図していなかった可能性があるため、これは通常、安全な設計ではありません。それでも、アリスが任意のコンテンツを含むファイルを作成し、それをビルからの入力として受け取ることを許可すると、事態はさらに悪化するだけです。