消すとは、親ディレクトリの名簿から名前の行を消すこと。だから効くのはファイル自身の権限ではなく、親ディレクトリの w読み取り専用でも、親に w があれば消せる一般ユーザーの alice が、自分の docs/ で rm memo.txt を打つ。消せるかは、親ディレクトリの w で決まる親に w がある$ rm memo.txtdocs/ (alice の物)drwxr-xr-xalice に w ありdraft.txtmemo.txttodo.txtmemo.txt-r--r--r--読み取り専用消せる。名簿の行が消え、ファイルも無くなる親に w が無い$ rm memo.txtdocs/ (alice の物)dr-xr-xr-xalice に w なしdraft.txtmemo.txttodo.txtmemo.txt-rw-r--r--書き込みも可消せない。ファイルに w があっても、名簿の行は消せない点線の枠と点線の紙は、消えた名簿の行とファイル。実線は、残っている物消すとは、親ディレクトリの名簿から名前の行を消すこと。だから効くのはファイル自身の権限ではなく、親ディレクトリの w消すとは、親ディレクトリの名簿から名前の行を消すこと。だから効くのはファイル自身の権限ではなく、親ディレクトリの w読み取り専用でも、親に w があれば消せる一般ユーザーの alice が、自分の docs/ で rm memo.txt を打つ。消せるかは、親ディレクトリの w で決まる親に w がある$ rm memo.txtdocs/ (alice の物)drwxr-xr-xalice に w ありdraft.txtmemo.txttodo.txtmemo.txt-r--r--r--読み取り専用消せる。名簿の行が消え、ファイルも無くなる親に w が無い$ rm memo.txtdocs/ (alice の物)dr-xr-xr-xalice に w なしdraft.txtmemo.txttodo.txtmemo.txt-rw-r--r--書き込みも可消せない。ファイルに w があっても、名簿の行は消せない点線の枠と点線の紙は、消えた名簿の行とファイル。実線は、残っている物消すとは、親ディレクトリの名簿から名前の行を消すこと。だから効くのはファイル自身の権限ではなく、親ディレクトリの w
同じ 3 文字でも、ディレクトリでは意味がずれます。r は中の名前の一覧が取れること、w は中にファイルを作ったり消したりできること、そして x はそのディレクトリを通り抜けられることです。ディレクトリを実行する場面はありません。
ここが噛み合わないと、不思議な症状が出ます。r だけあって x が無いと、ls はできるのに cd も、中のファイルを開くこともできません。逆に x だけあって r が無いと、一覧は取れないのに、ファイル自身に r があれば、名前を指定して開けます。
もう 1 つ、ファイルを消せるかどうかを決めるのは、そのファイル自身の権限ではなく 親ディレクトリの w です。読み取り専用のファイルでも、親ディレクトリに書き込めるなら消せます。/tmp が誰でも書けるのに他人のファイルは消せないのは、この既定を打ち消す sticky bit が付いているからです。