web-dev-qa-db-ja.com

ディレクトリが編集されないようにする方法

ディレクトリ(そのすべてのコンテンツを含む)が編集されないようにするにはどうすればよいですか?

コマンドchattrを使用すると、ディレクトリが削除されないようにすることができます。

chattr +i folder

ただし、このディレクトリ(folder)は編集できます。

それで、どうすればそれが編集されないようにすることができますか(つまり、削除、書き込み、ファイルの作成など)?

また、ディレクトリが何にもならないようにする方法を知りたいです!それで、誰もそれを削除、編集、あるいは読むことさえできませんか?

1
Shayan

chattr +i以降は、ディレクトリを編集できません。ファイルの追加、名前の変更、および削除が機能しないことがわかります。実際にディレクトリにあるのはそれだけです。ファイルの編集を防ぐために、ファイルもchattr +iする必要があります。 (覚えておいてください:Unixにはハードリンクがあります。1つのファイルが複数のディレクトリに存在する可能性があります。)

達成しようとしていることによっては、読み取り専用のバインドマウントが必要なことを実行する場合があります。あなたはこのようなものを作ることができます:

# mount --bind /source/path /dest/path -o ro

これで、/dest/pathを介したアクセスでは、ファイルとディレクトリをまったく変更できなくなります(ただし、/source/pathを介したアクセスでも変更できます)。通常の方法でソースへのアクセスを防ぐことができます(たとえば、アクセス許可go-xが設定されたディレクトリ内にソースを配置します)。

または、単純なchmod -R o-w the-directoryを使用して、書き込み権限を再帰的に削除するだけで、実行していることが機能する可能性があります。

また、ディレクトリが何にもならないようにする方法を知りたいです!それで、誰もそれを削除したり、編集したり、読んだりすることさえできませんか?

wipeshred、またはプレーンなrmが通常の方法です。わかりました—それはやや皮肉です。自分以外の誰も意味しない場合は、chmod go-rwx the-directory。ルートすら意味しない場合は、リムーバブルメディアに置いて削除するのが最善の策です。オンラインに保つ必要がある場合、SELinuxはこれを行うことができますが、それは非常に複雑になります。

2
derobert