特権を持たないユーザー(root以外)はchown
、他のユーザー名にファイルできません。を使用するにchown
は、ユーザーはターゲットユーザーの権限を持っている必要があります。つまり、root
ファイルを別のユーザーにのみ与えることができます。
ここで説明したように(@slhckに感謝):
ファイルのユーザーIDと等しい有効なユーザーIDまたは適切な特権を持つプロセスのみが、ファイルの所有権を変更できます。_POSIX_CHOWN_RESTRICTEDがパスに対して有効な場合:
この背後にある理論的根拠は、この Unix&Linuxの回答で@Gillesによってうまく説明されています。
この制限の理由は、ファイルを別のユーザーに配布すると、まれではあるが依然として重要な状況で悪いことが起こる可能性があるためです。例えば:
- システムのディスククォータが有効になっている場合、アリスは自分だけがアクセスできるディレクトリの下に誰でも書き込み可能なファイルを作成できます(したがって、ディレクトリ内の誰もがその書き込み可能なファイルにアクセスできません)。別のユーザーBill。ファイルは、Aliceだけがファイルを使用できる場合でも、Billのディスククォータの下でカウントされます。
- アリスがビルにファイルを渡した場合、ビルがそのファイルを作成しなかったという痕跡はありません。これは、ファイルに違法またはその他の侵害データが含まれている場合に問題になる可能性があります。
- 一部のプログラムでは、要求を認証するために入力ファイルが特定のユーザーに属している必要があります(たとえば、ファイルには、そのユーザーに代わってプログラムが実行する命令が含まれています)。これは通常、安全な設計ではありません。ビルが構文的に正しい命令を含むファイルを作成したとしても、この特定の時間にそれらを実行するつもりはなかったからです。それでも、Aliceが任意のコンテンツを含むファイルを作成し、それをBillからの入力として取得できるようにすると、事態が悪化するだけです。