free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ «前の日記(2009-03-29) 最新 次の日記(2009-03-31)» /編集

2009-03-30 [長年日記]

§ [diary] スキー

 牛toスキーのコンビネーション。4時間もやるとしんどいな。まあゴンドラとかリフトに乗ってる時間のほうが長いのだろうけど。ということは実質2時間くらいか。

 ちゅか首を寝違えて土曜日から辛かったりしてるわけだが。

 弟の関係者と合流して一瞬ワイワイしたりした。

 ひたすら腰を落としてカービング風に滑ったり、エアも180/270/360/450と一応やったし、ある程度の存在感を出せたのではないか(不要)。

 前売券も消化したので、今年はたぶんこれで終わり。

 そういやスパインが1個あるんだけど、気付かずに普通に飛んだら、ボトムに落ちて私は死んだ。スイーツ。

 結局レール/テーブルは攻略できなかったな。

§ [unix] ウェブな人向けに最小限のパーミッションの説明をしてみる(1)読み方編

色々端折ります。

パーミッションとは、ファイル/ディレクトリに与える権限です。

755とか、rwxr-xr-xとか書かれてるやつです。

表現は違ってもどっちも同じものです。

755と3ケタの数値の場合は、それぞれのケタで区切って読んでください。

rwxr-xr-xと表現されてる場合は、3文字毎に区切って読んでください。もしdrwxrwxrwxと10文字で書かれてる場合は最初の1文字は無視してください。

数値、アルファベットのどちらの表記法でも3つに分割されました。つまり権限を与える対象が3つあるわけです。

3つの対象とは、「ファイル所有ユーザ」「ファイル所有グループ」「それ以外のユーザ」です。

対象と区切った各部の対応を図にするとこんなかんじです。

権限と表記の対応

ここで「ファイル所有ユーザ」が出てきました。ファイルに所有ユーザを設定できるってことですね。

あと「ファイル所有グループ」が出てきました。これは、ユーザがグループで管理されてるんだなーと思ってください。

ということで、「ファイル所有ユーザ」「ファイル所有グループ」「それ以外のユーザ」それぞれに、バラバラに権限を割り当てることができます。

各部の7とかrwxの意味ですが、まずrwxの場合で説明します。

パーミッションの意味がファイルとディレクトリで異なるのでわかりづらいかもしれません。(なので下の表まで読み飛ばしてもいいです)

ファイルの場合は「r」は読み込み可能属性、「w」は書き込み可能属性、「x」は実行可能属性を表わします。

ディレクトリの場合は「r」はそのディレクトリの下にあるファイルの一覧を取得できるかどうか、「w」はそのディレクトリの下に、ファイルを新規作成できるかどうか。 また、そのディレクトリの下に存在するファイルを、消去できるかどうか。「x」はそのディレクトリの下にあるファイルにアクセスできるかどうかを表わします。

平文ではわかりづらいので、それぞれのパーミッションが与えられている場合の動作を表にしてみます。

 rwx
ファイル読み込める書き込める実行できる
ディレクトリファイルの一覧を取得できるファイルを作成/消去できるファイルにアクセスできる

数字の場合ですが、アルファベットからの変換方法を理解するほうが簡単だと思います。アルファベットから数字に変換するには、各文字をまずr=4、w=2、x=1と変換します。その後、各数値を合計します。

わかりづらいですね。たとえば「rwx」が割り当てられている場合は次のように計算します。

アルファベットr w x 
    
数字4+2+1= 7

「rw-」の場合は次のようになります。

アルファベットr w - 
     
数字4+2  = 6(追記:typoってた)

なお権限が全く与えられていない場合は「---」=「0」という表記になります。

ここまでで読み方はわかったでしょうか?

では例題です。「755」をアルファベットの表記に変換してみましょう。「644」はどうでしょうか。「600」は?

逆に「rw-r-r」を数字の表記にに変換してみましょう。「rwx-r-x-r-x」はどうでしょうか?「rwx------」は?

例題の先頭から、アルファベットへの変換は「rwxr-xr-x」、「r-xr--r--」、「r-x------」、数字への変換は「644」、「755」、「700」となっていれば正解です。

§ [unix] ウェブな人向けに最小限のパーミッションの説明をしてみる(2)考え方編

 「もう、実行ファイルは755、他は644でいんじゃね?」ナゲ=ヤ=リ(BC886-921)

 閑話休題。以下、メジャーなLinuxディストリビューションの場合を想定して書きます。

 (1)の表で「読み込める」とか書いてます。それを「誰ができるか」が問題なのですが、それは「プロセスを実行しているユーザができる」ということです。

 ふつうのディストリビューションではApacheは、apacheユーザ、httpユーザ、またはwwwユーザなど、専用のユーザで実行するよう設定されていると思います。

 ファイルの公開や実行には、そのユーザにだけ権限があれば問題ありません。

 さらに、アプリケーションの設置先は/var/wwwなどとなっていると思います。そのディレクトリの所有も前述のユーザだけで問題ないはずです。

 そうなってないとしたら、それはザルです(ぉ。

 結論としては以下が望ましいと思います。

 1.サーバを専用のユーザで実行する。

 2.ディレクトリは1の専用ユーザを所有者とし、700を割り当てる。

 3.ファイルは1の専用ユーザを所有者とし、実行ファイルは700、その他は600を割り当てる。

 4.外に漏れて困るファイルは原則として公開ディレクトリ以下に置かない。

 なお、mod_userdirで運用してる場合とか、バーチャルホストで運用しててホスト毎に権限を分けたいとかいう場合はシラネ(゜⊿゜)

 あとブッコ抜かれたくないファイルは、されたくないなりに、ちったぁ頭使えっつー話

 追記:「その他のユーザ」にパーミッションを与えたい場合も実際は多々あると思いますが、書込属性だけは与えないでください。「その他のユーザ」にパーミッションを与える場合でも、ふつうは、実行ファイルなら「705」、その他のファイルは「604」で十分だと思います。