GNU/Linux >> Linux の 問題 >  >> Linux

Rmが読み取り専用ファイルを削除できるのはなぜですか?

ファイルを作成してから、そのアクセス許可を444に変更した場合 (読み取り専用)、どうしてrm 削除できますか?

これを行う場合:

echo test > test.txt
chmod 444 test.txt
rm test.txt

rm 書き込み保護されたファイルtest.txtを削除するかどうかを尋ねられます 。 rm そのようなファイルを削除することはできず、chmod +w test.txtを実行する必要があります 最初。 rm -f test.txtを実行した場合 次にrm 読み取り専用であっても、確認せずにファイルを削除します。

誰でも明確にできますか? Ubuntu 12.04/bashを使用しています。

承認された回答:

すべてのrm 必要なのは、親ディレクトリに対する書き込み+実行権限です。ファイル自体の権限は関係ありません。

これは、パーミッションモデルをこれまで以上に明確に説明しているリファレンスです。

ファイルのデータにアクセスするには、読み取り権限が必要です。
ファイルのデータを変更しようとすると、書き込み権限が必要です。
ファイル(プログラムまたはスクリプト)を実行しようとすると、実行権限が必要です
許可…

ディレクトリは通常のファイルと同じように使用されないため、
権限の動作はわずかに(ただしわずかに)異なります。
ディレクトリ内のファイルを一覧表示するには、
ディレクトリの読み取り権限が必要ですが、その中のファイルには必要ありません。
ディレクトリにファイルを追加したり、ディレクトリからファイルを削除したり、ファイルの名前を変更したりするには、すべて
ディレクトリの書き込み権限が必要ですが、(おそらく驚くべきことに)
内のファイル。実行権限は
ディレクトリには適用されません(ディレクトリをプログラムにすることはできません)。ただし、その
パーミッションビットは、他の目的でディレクトリに再利用されます。

ディレクトリにcdできるようにするには(つまり、あるディレクトリを現在の作業ディレクトリにするために)、ディレクトリに対する実行権限が必要です。


内のファイルの「inode」情報にアクセスするには、ディレクトリで実行が必要です。これは、ディレクトリを検索して、その中のファイルの
iノードを読み取るために必要です。このため、ディレクトリの実行権限は
代わりに検索権限と呼ばれることがよくあります。


Linux
  1. 上書きされたファイルは回復できますか?

  2. Ubuntuでスワップファイルを作成および削除する

  3. ディレクトリへのシンボリックリンクを削除する

  1. LinuxのNOTディレクトリのディレクトリ内のファイルのみを削除します

  2. Unix でディレクトリを削除できない

  3. ファイル システムが読み取り専用としてマウントされるのはなぜですか?

  1. ディレクトリ内のファイルタイプに関する再帰的な統計?

  2. ルート ディレクトリが / 記号で示されるのはなぜですか?

  3. このファイルを root として削除できないのはなぜですか?