ユーザーAとユーザーBの両方のディスククォータが1 GBであるとします。
また、ユーザBが権限0666を使用して900MBファイルを生成すると仮定する。
これにより、ユーザーAは一時的にファイルにアクセスできます(特定のプロジェクトなどの場合)。
これにより、ユーザーAがファイルに書き込むことができます。
ユーザーAがファイルへのハードリンクを作成し、ユーザーBがファイルを削除した場合、ユーザーAは本質的にクォータシステムを悪用し、ユーザーBから900MBのストレージを「盗む」のでしょうか?
ユーザーBがこの状況を管理者に報告しておらず、管理者もこれを検出できなかったとします。
さらに、ユーザBは、ユーザAに何も疑わないと仮定する。すなわち、ユーザBがユーザAのディレクトリとそのファイルを閲覧しないと仮定する。
以前に同様の質問/回答があった場合は見つかりませんでした。
答え1
これはUnix権限モデルの醜い極端なケースの1つです。ファイルへの書き込みアクセスを許可すると、そのファイルへのハードリンクが許可されます。ユーザーAがファイルを含むディレクトリへの書き込みアクセス権を持っている場合は、そのファイルをユーザーBがアクセスできないディレクトリに移動できます。これにより、ユーザーBはファイルにアクセスできなくなりますが、クォータ目的ではまだユーザーBに含まれます。
一部の古いUnixシステムには、より深刻な脆弱性があります。ユーザーはchown
自分のファイルの1つを別のユーザーに呼び出すことができます。以前にファイルを誰でも書き込み可能にした場合、そのファイルは引き続き使用できますが、ファイルは他のユーザーに計算されます。ユーザークォータ。これは現代システムがchown
root権限を維持する理由の1つ。
純粋な技術的な解決策はありません。ユーザーBは、自分のディスク使用量(du ~
)がクォータ使用量と一致しないことを発見し、システム管理者に苦情を申し立てます。システム管理者はユーザーAを調査し、厳重に叱責します。