書き込み禁止の一般ファイルを削除する方法は?

書き込み禁止の一般ファイルを削除する方法は?

Linux(デフォルトではUbuntuですが、これはすべてのディストリビューションに適用されると思います)のファイル処理について私が気づいた内容を明確にしたいと思います。

ホームディレクトリからルートとしてファイルを作成すると、そのファイルは次のように見なされることがわかりました。保護された一般的なファイルの書き込み一般的な方法で削除しようとすると、次のメッセージが表示されます。

$ sudo touch ~/test.txt
$ ls -l ~/test.txt 
-rw-r--r-- 1 root root 0 Nov 24 10:27 /home/xxx/test.txt
$ rm ~/test.txt 
rm: remove write-protected regular empty file '/home/gorfanidis/test.txt'? y
$ ls -l ~/test.txt 
ls: cannot access '/home/gorfanidis/test.txt': No such file or directory

確認しないと、yファイルは削除されません(-fたとえば、このメッセージをスキップできることはわかっていますが、そうする必要はありません)。

とにかく、フォルダの所有者がルートである他の場所で同じことを試みました(違いはあるようですが、わかりません)。/usr/

$ sudo touch /usr/test.txt
$ rm /usr/test.txt 
rm: remove write-protected regular empty file '/usr/test.txt'? y
rm: cannot remove '/usr/test.txt': Permission denied

だから私の質問は次のとおりです。

  1. 保護された一般的なファイルを作成することは正確に何を意味しますか?たとえば、どの文書が枠組みに巻き込まれていませんか?よくわかりません。この場合、書き込み保護は、指定されたrootとおりに所有者(権限)を意味します。ここ例えば。
  2. 書き込み禁止ファイルを実際に削除することはできません(ルートフォルダにあるルートファイルの場合のように)書き込み禁止ファイルを削除する権限を要求することは何ですか?
  3. Linuxシステムでユーザーが実際にファイルを削除する権限を持っているかどうかを判断するメカニズムは何ですか?ファイルがあるフォルダの権限ですか?詳細はありませんか?

ベストアンサー1

  1. 通常のファイルは、他のファイルシステム表現ではなく、実際に独自のデータを含むすべてのファイルです(参照:UNIXの権限とファイルタイプの理解詳細はこちら)。

    rmWindowsの観点から見ると、書き込み禁止ファイルは、現在ユーザーが書き込めないすべてのファイルです。あなたの場合、ファイルは所有者だけが書き込むことができ、現在のユーザーは所有者ではありません。ファイルが所有されているという事実はroot何も追加しません。

  2. rmまず、ファイル自体が書き込み可能であることを確認し、そうでない場合はユーザーにメッセージを表示します。その後、実際にファイルを削除しようとします。この時点で、OSはrmユーザーにファイルを削除する権限がないことを「通知します」(「許可拒否」エラーのため削除が失敗します)。rmファイルの削除が許可されるかどうかを事前に決定する試みは行われません。これを試しても、検索は有効で不完全で削除が許可されていると思いますが、オペレーティングシステムが別の方法で決定した場合に対処する必要があります。 。

  3. ファイルを削除するには、親ディレクトリに書き込む権限が必要です。はい。

おすすめ記事