
以前この質問を受けたことがあり、申し訳ありません。答えが見つかりません。私がするなら:
touch file.txt
chomd 444 file.txt
原則として、すべての人(ROOTを除く)はファイルを読むことしかできません。しかし、これを行うと:
rm file.txt
次のように表示されていてもファイルを削除できます。
rm: remove write-protected regular empty file 'file.txt'? y
保護されていると言っても。実際にこのファイルを保護する方法はありますか?私はそれができる人を見たことがありますが、chattr +i file.txt
これはあなたがそれをすることができる場合にのみ機能しますsudo
。私は管理者ではありません(例:99%のユーザー)。
乾杯。
答え1
Unixファイルシステムでは、ファイルを実際に削除せずに「リンク解除」します。ファイルデータは「inode」にあり、ディレクトリにはそのinodeへの参照があります(これが「ハードリンク」を持つことができる理由です。複数のディレクトリの同じinodeへの複数の参照)。最後の参照が消えると、inodeが破壊され、スペースが復元されます。
rm
親ディレクトリの参照を削除し、ファイルではなくその親ディレクトリへの書き込み権限を意味します。したがって、ファイル参照を保護するには、ディレクトリへの書き込み権限を削除する必要があります。