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
だから私の質問は次のとおりです。
- 保護された一般的なファイルを作成することは正確に何を意味しますか?たとえば、どの文書が枠組みに巻き込まれていませんか?よくわかりません。この場合、書き込み保護は、指定された
root
とおりに所有者(権限)を意味します。ここ例えば。 - 書き込み禁止ファイルを実際に削除することはできません(ルートフォルダにあるルートファイルの場合のように)書き込み禁止ファイルを削除する権限を要求することは何ですか?
- Linuxシステムでユーザーが実際にファイルを削除する権限を持っているかどうかを判断するメカニズムは何ですか?ファイルがあるフォルダの権限ですか?詳細はありませんか?
答え1
通常のファイルは、他のファイルシステム表現ではなく、実際に独自のデータを含むすべてのファイルです(参照:UNIXの権限とファイルタイプの理解詳細はこちら)。
rm
Windowsの観点から見ると、書き込み禁止ファイルは、現在ユーザーが書き込めないすべてのファイルです。あなたの場合、ファイルは所有者だけが書き込むことができ、現在のユーザーは所有者ではありません。ファイルが所有されているという事実はroot
何も追加しません。rm
まず、ファイル自体が書き込み可能であることを確認し、そうでない場合はユーザーにメッセージを表示します。その後、実際にファイルを削除しようとします。この時点で、OSはrm
ユーザーにファイルを削除する権限がないことを「通知します」(「許可拒否」エラーのため削除が失敗します)。rm
ファイルの削除が許可されるかどうかを事前に決定する試みは行われません。これを試しても、検索は有効で不完全で削除が許可されていると思いますが、オペレーティングシステムが別の方法で決定した場合に対処する必要があります。 。ファイルを削除するには、親ディレクトリに書き込む権限が必要です。はい。