Unixの世界

今日はクラスが終わったあと荷物を片付けていたら、クラスメイトのNoelから携帯が鳴り、私のクラスがあっている、クリーブランドというビルのラウンジのようなところにいるというので出ていってみたら一緒にランチしようというので一緒にどこかに行くことにたんですが、私は今日は車をCUEという有料駐車場に止めていたため、そこを早く出たくて車でどこかに行くことにしました。で、駐車場でごちゃごちゃしていると、Noelの彼女のJenから電話がかかってきてNoelに一緒にランチしようと言っているのが聞こえたので、ちぇっと思って、結局私は車でNoelを彼女のもとに送り届けたのでした。あたしはすっかり運転手。Noelはコレはかならずメイクアップするから〜っていって去っていったけどなんだか納得いきません。まぁ別にどうでもいいんですけどね。
そして私は急に勉強に対する意欲をなくし、家に帰ってきてしまいました。せっかくひとりで午後を過ごすので、なにかやろう!と思ってやっていたのがUNIXのコマンドの勉強。勉強っていうか、せっかく今のマックはUnixベースなので、rootになってアパッチを立ち上げたりいろいろいろいろ楽しめるはずなので、コマンドを覚えていろいろやってみよう、と思ったのでした。
とりあえずrootになってみましょう、ということですっごい簡単です。HD/Applications/Utilities/Netinfo Manager.appを使ってやります。コマンドは以下の通り。これを読んで少しでも分からないところがあるひとは絶対試さないでくださいね。最悪の場合はUsers以下の初期化を強いられます。


Domain > Authorization > owner’s username + password
Domain > root password change
なんと以上です。これからTerminal.appを使ってそれを確かめます。このときのコマンドは、泣く子も黙る、suです。
su root
password
そうするとプロンプトがusername(任意)からroot#に変わります。やった!できました。自分のusernameに戻るときは
exit
とするだけです。rootは絶対権限です。なんでもできます。ワーニングすらないときもあります。ので、rootで作業をするときは本当に本当に、気をつけて下さい。ていうか、あんまりrootでなければできないことって必要なかったりします。ただなんとなく絶対権限が嬉しいですよね。
この前読んだPreyにも、リッキーという人が出てきて、コンピュータプログラムに精通した偉い人の役なんですが、彼がTシャツを着ていて、それに
Obey me. I’m root.
と書いてある、という描写がありました。UNIXの世界ではrootはボスという意味なんですね。
さて、自分のHD上でCGIを動かしたい!と思う人は、ホームページ作者には多いはず。わざわざFTPして確かめるの面倒ですよね。で、UNIXベースのOS Xではこれが簡単にできます。変更するファイルはusername.confというファイル。このファイル、実は自分のディレクトリのDocumentsの中に平気な顔で入っていますが、インビジブルになっています。OS 9だったらレスエディットを使えば見えていたところですね。ああ懐かしい。でもこれを触るためにはTerminal.appでビジブルにしてあげる必要があります。コマンドは以下の通り。
cd /etc/httpd/users
cdコマンドは移動コマンドです。cdの後ろにスペースを入れるのをお忘れなく。cdがコマンドで以下はディレクトリなので。
ここで心配な人はリストコマンド
ls
を使って、何がそこにあるか見てみるのもいいかもしれません。すると
username.conf
というファイルがあるのが分かると思います。usernameというのは任意で、自分のアカウントネーム。
それをドキュメントにコピーします。コピーコマンドはcpですね。分かりやすい。
cp username.conf /Users/username/Documents/username.conf
です。cpのあとと、confのあとはスペースです。そのファイルを、以下のディレクトリにコピー、という意味。
そうすると自分のDocumentsのフォルダ内にビジブルになったusername.confがあらわれるので、それをエディタで書き変えます。エディタは私は個人的にはmi(旧名ミミカキエディット)がいいですね。あけると自動的にUNIXファイルを認識して、改行コードをLFにしてくれます。普通のテキストエディタだと、うっかりCR(マック用改行コード)で改行したりしてちょっと大変なことになります。
で、内容は
<Directory “/Users/username/Sites/”>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
と読めるはずですので、それを以下の様に変更します。
<Directory “/Users/username/Sites/”>
AddType text/html .shtml
AddHandler server-parsed .shtml
AddHandler cgi-script .cgi
Options Indexes MultiViews Includes ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
最初のAddTypeの一行はSSIも許可します、という意味。shtmlを許可します。2行目はServer上としての動作の許可。3行目はCGIの動作許可。そして4行目で.exeファイルの動作を許可します。
そしてTerminal.appにてさっきやったことの逆の動作をすればおしまい。つまり、
cd /Users/username/Documents/
でディレクトリ移動して
sudo cp username.conf /etc/httpd/users/username.conf
とするとプロンプトでpasswordを聞かれるので、rootではなくて自分のパスワードを答えます。sudoは便利なコマンドですね。rootになる必要なし。
で、最後にサイトのアパッチ再起動します。別に普通にシステムでウェブ共有を一回停止してもういちど起動すればいいことですが、Terminal.appでも同じことできます。コマンドは以下の通り。
sudo /usr/sbin/apachectl restart
たまにこのsudoコマンドではできないときがあるみたいですけどそのときはrootログインすればいいとおもいますね。
まぁこんなかんじです。マシンを常時起動している人は自分のパーソナルウェブサイトくらいはCGI付きで公開できるようになりますね!でもたくさんの人が来るようになるとマシン死にますので、気をつけてください。
UNIXワールド、かなりオタクっぽいですけど、おもしろいです。

Leave a Reply

Your email address will not be published. Required fields are marked *