俺的Linux新事実
自分の無知をさらすようでイヤなんだが、新事実が発覚。ちょっとこいつを見てくれ。
$ touch hoge $ ls -l total 0 -rw-r--r-- 1 user user 0 Feb 8 15:44 hoge $ su Password: # chown root:root hoge # ls -l total 0 -rw-r--r-- 1 root root 0 Feb 8 15:44 hoge # exit exit $ rm hoge rm: remove `hoge'? y $ ls -l total 0 $
( ゚д゚) (つд⊂)ゴシゴシ (;゚д゚) (つд⊂)ゴシゴシ _, ._ (;゚ Д゚)
rootのファイルを一般ユーザが消せているように見えるのだが!?
3つのLinuxディストリビューションで試したが、全てで再現する。どうやら俺のUNIX(Linux)に対する理解に根本的な誤りがあるらしい。
で、同僚と共に検討したところ、どうやらそのファイルが存在するディレクトリのパーミッションが関係するらしい。ディレクトリにw権限があれば、その中にあるファイルのオーナーやパーミッションがどうなっていようが削除可能。確かに、上の操作はオーナー自分かつパーミッションが755のディレクトリで実施した。
俺と同僚の他に識者である友人にも尋ねてみたが、やはり驚いていた。そりゃそうだよな、ファイルにパーミッション設定できるんだから、そっちで判断すると思うよな。
UNIXは奥が深い。勉強になりました。