私のホームフォルダにいくつかのビルド出力を含むディレクトリがあり、ビルドプロセスでこのディレクトリを他のユーザーに表示しました(未知の理由で)。ディレクトリを削除したいが空ではないので削除できません。その中に含まれるファイルは私の所有ではないので削除しないでください。もちろん、すべてのファイルを再帰的にchownすることもできますが、隠されたファイルをすべてインポートすることは痛み。直接的な方法はありますか?
答え1
ディレクトリへの書き込みアクセス権がある場合は、ファイルの所有者に関係なくディレクトリ内のファイルを削除できます。ディレクトリの固定ビットは他のユーザーのファイルを削除するのを防ぎますが、ディレクトリを所有している場合はビット設定を解除できます。自分に書き込み権限を付与するのと同じです。
しかし空ではない目次他のユーザーが所有すると大きな問題になります。
chown
とにかく、ディレクトリ内のファイルにアクセスできる場合は、おそらくすでにスーパーユーザーであり、ツリーrm -r
全体にアクセスできます。これはシステムによって多少異なりますが、例えばLinuxでは許可CAP_CHOWN
されていますが、書き込みアクセス不足をバイパスすることchown
は許可されていない機能があるかもしれません。CAP_DAC_OVERRIDE