■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■             燃えるUNIX道〜UNIXバカ一代                                  Vol:013                          発行日: 1999年10月20日                        総発行部数:     2714部                           (1999年10月19日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●お肉の「いづつ屋」  インターネット販売だけの100名様限定商品を発売!?  おいしいお肉は、やっぱり「いづつ屋」だね。  http://www.tanba-izutsuya.com/ --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●本文:徒然なるままに・・・ファイル関係のコマンドその5 ●予告 ●おまけニュース[まぐまぐ2000] ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●求められているのはあなたの実力● ネットワークエンジニア特待生を今なら無料で募集中。 click< http://a.clickincome.net/md/dk?mid=d0000d973a56c26bd4e4ac32fc5697ab > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ⇔⇔Web新撰組News⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔  メールを使った新しい遊びを追及する「メールで遊ぼう!」会員数2000名突破!  http://www.web-kyoto.com/vmail/  いますぐ会員登録だ!  Web新撰組メンバー執筆のCGI参考書。  「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。  内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔⇔ ●徒然なるままに・・・ファイル関係のコマンドその5   今回は、パーミッションについてのお話しです。 ◇パーミッションの設定   UNIXでは、ファイル(ディレクトリ)に、所有者とかグループとかの情報がひっ ついています。それらは、ls -l コマンドで確認出来ます。 例: $ ls -l (R) total 3 -rwx---r-x 1 hagi users 6 Sep 28 09:39 program1 -rw----r-- 1 hagi users 6 Sep 28 09:38 text1 drwxr-xr-x 2 hagi users 1024 Sep 28 09:40 www   左から3列目が所有者(owner)、4列目がグループ(group)の名前です。   所有者名は通常ログイン名になっています。グループは、ユーザーを追加した 時にシステム管理者が勝手にどっかのグループに放り込んでいる筈です。ownerでも groupでもない場合は、otherと呼びます(つまり、わたしがhagiではなく、users グループにも入っていない場合は、これらのファイルに対してはotherという事に なります。)。   さて、これを踏まえたうえで、左端の怪しげな記号を見て下さい。   これは、現在ファイルやディレクトリにセットされているパーミッションを表 しています。   program1ファイルを見てみましょう。   -rwx---r-x   となっていますね。   一番左端の-がdの時は、ディレクトリ、って意味になります。その他、pとか cとか他の記号になっている場合も有ります(これについては、機会があれば説明 します)が、とりあえず、置いときます。   左端は考えずに、それに続く9つの記号を見て下さい。   rwx---r-x   ってなってます。これらを3つづつに分けます。   rwx --- r-x   前から順に、owner(所有者)のパーミッション、groupのパーミッション、 otherのパーミッションとなっています。   rは、読む事が可能   wは、書き込み(内容変更)が可能   xは、実行が可能   -は、不可   を表します。   これらは、ファイルやディレクトリに対し、こんな感じで設定されています。 |0|0|0|1|1|1|0|0|0|1|0|1| ------------------------- |s|s|s|r|w|x|-|-|-|r|-|x| |e|e|t| | | | | | | | | | |t|t|i| | | | | | | | | | |u|g|c| | | | | | | | | | |i|i|k| | | | | | | | | | |d|d|y| | | | | | | | | |   0の時OFFで1の時がONだと思って下さい(0と1しかないので2進数です)。   先頭のsetuid、setgid、stickyは後で説明します。とりあえずその次の部分を 見て下さい。   現在、prgram1は、owner部分が111、group部分が000、otherが101にセットされ ています。記号ではrwx---r-xです。これをrwxr-xr-xとgroupにもrとxをつけてやる 場合を考えます。数字では111101101となります。   パーミッションを変更するコマンドはchmodです。 $ chmod 755 program1 (R)   これで、program1のパーミッションはrwxr-xr-xになります。   755は、111101101を8進数に直したものです。2進数から8進数に直すのに一番 簡単な方法は、2進数を3桁づつに分割して、それぞれを8進数に直してからひっつ ける方法です。   例えば、101は8進数では5になります。。。。って云ってもまだややこしいの で更にこう考えます。   2進数 1 1 1   8進数 4 2 1   2進数の100は8進数の4になります。10は2、1は1です。   例えば2進数の101は、100+1ですから、8進数に直すと、4+1=5となります。 111も同じように考えれば、4+2+1=7です。   で、rwxr-xr-xの場合は、前から順にrwx=7、r-x=5、r-x=5となり、 $ chmod 755 program1 (R)   ってなったわけです。   単純に、   rwxrwxrwx   421421421   と考えて、3つづつ計算してひっつける、とおぼえておくとよいでしょう。   よいでしょう。。。と云われても、忘れそうなあなたに・・・   もっと簡単な方法もあります。   rwx---r-x   これに、groupに対してrとxを追加したい場合は $ chmod g+rx program1 (R) 又は $ chmod g=rx program1 (R)   とします。   gはgroupの略、+rxはrとxを追加、=rxは、r-xにする、という意味です。   =と+の違いは、   rwxr-xr-x   ってなっている所へ、g+wとすれば、   rwxrwxr-x   となりますが、   g=wとすれば、   rwx-w-r-x   となります。   このように記号で設定する場合、owner=u,group=g,other=oという記号と、   +,-,=、という計算式みたいなものと、rwxという記号を組み合わせて使います。   +は、パーミッションを追加する、-はパーミッションを取る、=は指定したパー ミッションにする、という意味です。 ◇もうちょい詳しく   ファイルについては、rwxは、   r 読み込み可   w 書き込み(編集)可   x 実行可   を表します。   よくCGIの本なんぞに、「このファイルをアップロードして、パーミッション を705にして下さい」なんてかいて有ります。   あれは、chmod 705 ファイル名、で、パーミッションをrwx---r-xにせよ、と いう意味です。   で、最初のrwxは、読み・書き・実行可、ってことで、作った本人は何でも出 来るって事です。   groupは---なので何も出来ません。otherに対しては、r-xになってます。スク リプトを読み込まない事には実行出来ませんのでrもついています。ここをrwxにし てしまうと、今度は、書き換えや消去も可になってしまいます。   ちなみに、ownerを5とか4(r-x、r--)にすると、消去する時に、 rm: override protection 400 for program1?   パーミッションが400になってるけど消してもいいか、と聞いてきます。この 場合はyを入力すると消えるようになっています(ファイルの持ち主なので消せま す。)。   で、これがファイルではなくディレクトリの場合は、   r 内容表示可(lsで中身を見る事が出来る)   w ファイルやディレクトリを作成可   x ディレクトリ内へ移動可(cdでそのディレクトリ内に行ける)   となります。 ◇おまけ、setuid,setgid,stickyビット   chmodを数字で変更する時に、 $ chmod 0755 kappa (R)   としなさい、と書いてあるのを見る時があります。   最初に書いた通り、755とかの前に更に2進数で3桁分設定する部分がありますの で、0755と表記する場合があるのです(普通は最初は0なので省略して755と書く場 合が多です)。   で、最初の部分は、rwxではなく、   setuid、setgid、stickyとなっています。   setuidは、このファイルを実行した時に、このファイルの持ち主が実行したの と同じ状態で実行される、というものです。   setgidは、setuidのグループ版です。   また、ディレクトリにstickyがセットされている場合は、そのディレクトリ内 のファイルは、ファイルの所有者だけが消去出来るようになります。   例えば、passwdというプログラムがあります。これは、ユーザーのパスワード を変更するプログラムなのですが、ユーザーのパスワードが保存されているpasswd というファイルを書き換えます。   ところが、passwdファイルは、普通のユーザーには変更が出来ないようにパー ミッションが設定されています。   そこで、passwdプログラムはsetuidによりスーパーユーザー(rootユーザー) 権限で動き、passwdファイルを書き換えます(システムによって異るかも知れません が)。   って。。。この説明では何のこっちゃよくわからんかも知れないですね。   そのうちプロセスIDの話しが出て来た時にまた説明致します。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆予告◆------------------------------------------------------------------ ●次回は、ファイル関係についてとりあえずの最終回、リンクのお話しです。 ------------------------------------------------------------------◆予告◆ --------------------------------------------------------------------◆PR◆   ◆◆時空を揺るがすゲームプロジェクト・コアチームメンバー◆◆ ♪♪♪♪♪精鋭ゲームデザイナー/プログラマー(大作経験者)募集!♪♪♪♪♪ click< http://a.clickincome.net/md/dk?mid=310f11de25bdd63989345cecfdcd7433 > --------------------------------------------------------------------◆PR◆ ◆おまけニュース◆-------------------------------------------------------- ●まぐまぐ2000  この燃えるUNIX道をもともと連載してました「CGIスクリプターへの道」という  メールマガジンが、「まぐまぐメルマガイド2000」という本に紹介されます。  監修:まぐまぐ編集部、というだけあって、ただのメルマガ紹介本ではないよ  うです。  詳しくは、こちらをご覧下さい。 http://www.mag2.com/misc/book2000.htm ●おまけのおまけ  バックナンバーをNo.10までアップしました。  こちらです。 http://www.web-kyoto.com/dp/unix/ --------------------------------------------------------◆おまけニュース◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ このメールマガジンは、 Subject部が、燃えるUNIX道〜UNIXバカ一代【Vol.番号】は、まぐまぐ様にて、 ( http://www.mag2.com/ ) Subject部が、燃えるUNIX道〜UNIXバカ一代 Vol.【番号】は、Macky様にて、 ( http://macky.nifty.ne.jp/ ) Subject部が、燃えるUNIX道〜UNIXバカ一代番号 は、Pubzine様にて、 配布致しています。 メールマガジンの解除について まぐまぐ様の解除は、 http://www.web-kyoto.com/dp/unix/ に、削除及び登録フォームを用意致しております。 Macky様の解除は、 http://macky.nifty.ne.jp/ を参考して下さい。 Pubzine様の解除は、 http://www.pubzine.com/srchid.asp?keyword=1513 に、削除及び登録フォームを用意致しております。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆お願い◆ このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 内容に対する御意見・御質問、誤記訂正はこのメールのリプライにて お願いいたします。 ◆担当者◆ 本文文責    :Web新撰組プログラマー萩原逸郎 Web新撰組  :http://www.web-kyoto.com/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■