「chmod -R 750 /foo/bar/baz.png // 権限変更」で何が起こったか
この件についての詳細情報が来た。
あまり詳しくない(婉曲)作業者が、ファイルのパーミッションを変えようとして、手順書に書かれていた一行をコピペして実行したそう。そのコピペした手順書の行はこれ。chmod -R 750 /foo/bar/baz.png // 権限変更
さて、これをコピペして実行すると、どうなる? https://t.co/g6QYn3OCtO
— suno (すの) (@suno88) August 12, 2021
まず
「chmod -R 750 /foo/bar/baz.png // 権限変更」について、おそらくCか何かのプログラミング経験がある、Linux 初心者が コメントのつもりで // 権限変更と書いたのだろう。
実際、これを実行すると
"/foo/bar/baz.png" と "//" と "権限変更" に対して、chmod -R 750 が実行されてしまう。
/ は Linux のフォルダの区切り文字で Windows で言うところの "\" に当たるのだが、これらの区切り文字は、いくつつなげても、1つの 区切り文字として扱うという性質があるため。 "//" はルートフォルダとして扱われる結果になったと。
本来は "/foo/bar/baz.png" にだけ実行するつもりだったのだろうけど、再起処理オプションである、 -R がついてるのが謎すぎる。おそらく、これを書いた SIer は -R の意味も分からず、 chmod するときはつけるものだと思っていたのかもしれない。
ちなみに、 Linux でコメントを後ろにつけたい場合は # を付けると良い
正しくは、
chmod 750 /foo/bar/baz.png # 権限変更
とすべきだったのだ ・ω・
Comments