タイトル未定 (2000年4月11日〜)

2000/4/12

permission mode

横槍のような形になってしまいますけど、ちょっと言い足りてないような気もするので。

許可モードの先頭につける0の件ですが、sticky/setuid/setgidを示すのは間違ってはいません。あってますが、こと、このperlスクリプト上では8進数を示すために用いられていると解釈したほうがいいでしょう。もちろん、許可モードを10進数として“511”と書いてもいいとは思いますが(笑)。

ちなみにshell/c-shell上でumaskコマンドを使う際にはパラメータは8進数であると解釈されるため、先頭に0はなくても問題ないのでこの辺混乱なさらぬよう。


う〜ん、リンクの張り方はこれでいいんかな?

2000/4/20

続permission mode

再びPerlでの許可モード指定の件。

どうもすみません。ちょっと言葉が足りていなかったようです。perlにおいては(Cやそれに類するものはたいていそうですが)、0で始まってその後ろに0-7の数字が続く(正規表現で書くと"0[0-7]+")数値リテラルは全部8進数と解釈されます。(ただし、もともと文字列だったものは勝手に変換されることはないらしいですね。明示的に変換するためにはoct関数を利用とのこと。oct関数なのになぜか16進数[0xで始まるもの]も変換してくれるという優れもの/笑)

したがって、例えばstickyビットを立てて、全ユーザに読み書き検索可能なディレクトリを作るのであれば(こういうディレクトリの必要性については[ご存じなければ]ぜひお調べください/笑)、mkdir("$dirname", 01777);のように記述することになります(あらかじめumaskを適切に設定しておく必要はありますね)。極端な場合、所有者/グループでは読み書き検索できなくて、その他ユーザには読み書き検索できるディレクトリを作る(こんなディレクトリを作る意味があるのか? という問は却下です/笑)ようなら、mkdir("$dirname", 07);という短い許可モード指定ですみますね。

もっとも、この場合は単なる7でもなんの問題もありませんが(ぉ。


この括弧が多い文章はなんとかならんのか(爆)。


なっきー