火曜日, 3月 29, 2005

Linux ファイルのパーミッション

今日、見慣れないものを見てしまいました。

----------------------------------------------------
# ls -la /etc/dnscache/supervise/
total 12
drwx--S--- 2 root root 4096 Mar 24 01:57 .
drwxr-sr-t 6 root root 4096 Dec 8 17:13 ..
prw------- 1 root root 0 Dec 8 17:13 control
-rw------- 1 root root 0 Dec 8 17:13 lock
prw------- 1 root root 0 Dec 8 17:13 ok
-rw-r--r-- 1 root root 18 Mar 24 01:57 status
----------------------------------------------------

こんな感じ。なんだ「p」って??

調べてみたら名前つきパイプ(FIFO)のことでした。なるほど。
せっかくなのでまとめて調べてみようかと思ったけど、これがよくわかりません。
いまのところ想像がつくのは、
b ブロックデバイス
c キャラクタデバイス
d ディレクトリ
l シンボリックリンク
p 名前つきパイプ
くらいです。知ってる人いたら教えてください。

わからないことはしょうがないので、パーミッションについて書くことにします。
。。。と思ったけど、なんかバカバカしくなってきたのでやめました。

わかりにくいところでは、sやtでしょうか。

sはファイルの所有者、またはグループの実行権限でそのファイルを実行できることを意味します。それぞれset-user-ID (suid,setuid)、set-group-ID (sgid,setgid)ビットなんていいます。
ここで疑問が生まれます。もともとの所有者(またはグループ)に実行権限がなかったらどうなるんだ?
Linuxではこういう場合はSと大文字で表示されます。そしてこれがsgidだった場合にはこのファイルは強制ロックの対象になります。
強制ロックはカーネルが行うもので、ロックをかけたもの以外はたとえrootでも外すことができません。もしロックをかけたプロセスが外さずに終了する、無限ループに陥る、なんてことになるともはや誰もそのファイルにアクセスできなくなるわけです。埋蔵金の場所をだれにも教えないまま死んでしまったために、あとになってあっちこっち掘り返して大騒ぎな徳川家みたいになるわけですね。
そんなことになったら大変なのでなんとなく敷居が高そうです。イメージとしては、「このクソッタレの書いた協調性のないプログラムのせいで俺のエレガントなプログラムが動かないじゃないか!こうなったら強制ロックだ!!」みたいな感じでしょうか。なんか意外と低俗ですね。

話を戻して、tはsticky bitと呼ばれます。プログラムをスワップ上に保持するらしいけど、どんなときに使うのかあんまりピンときません。これももともと実行権がない場合には大文字のTになります。とくに意味はないです。
そのかわり今度は、ディレクトリの場合に別の意味を持ちます。
このディレクトリ内に作られたファイルはディレクトリの所有者かそのファイルの所有者以外、削除できません。一家団欒の食事で、弟のおかずを食べようとした兄貴の頭を殴る母親、残した野菜はわたしが始末、って感じでしょうか。悪くないですね。

まあ、互換性を考えたり、無駄を省くよう考えたりした結果なんだと思います。
でも、組み合わせによって想像もつかない効果を発揮するわけで、このsとかtはあんまり好きじゃない設計です。1ビットでも削ってやろうっていう昔のにおいがします。
こういう部分が残っていると、なかなかWindowsの代わりに使おうって、ならないんじゃないかな、って気がします。

月曜日, 3月 28, 2005

Debian GNU/Linux で DVD を再生

DVDを見ようかと思って、Totemで再生してみました。
そしたら、「libdvdcssが必要です」みたいなエラーメッセージが。

さっそくaptで探したけど見つかりません。
調べてみると、これはUnofficialなパッケージでした。だからうちでは見つからなかったんですね。
しょうがないので、このライブラリをインストールする間だけ使えるようにしてみました。

/etc/apt/sources.list に一行付け加えます。
------------------------------------------------------
deb ftp://ftp.nerim.net/debian-marillat/ testing main
------------------------------------------------------
こんな感じ。
そのあとupdateしてからlibdvdcssをインストールします。

これでめでたく再生できるようになりました。

僕はなんとなくUnofficialという言葉が嫌だったので、この行をコメントアウトしてもう一度updateしておきました。
まあ、変わんないんですけどね。バージョン上がってもわからなくなるし不便な気もしますが、気分の問題です。

ichiro とは?

アクセスログを見てたら、こんなのを発見しました。
ichiro/1.0 (ichiro@nttr.co.jp)

gooの新しい検索エンジン用のクローラーみたいです。
ちなみにクローラーっていうのは、Webを這いまわってページを収集してくるプログラムのことです。
一時期はGoogleの一人勝ちって感じだったのに、MSNやYahooも検索サービスを自前で始めたし、gooも参戦するんでしょうか。楽しみ。

僕はGoogleファンなのでまだしばらくはGoogleを使うと思います。実際、結構なファンで、ツールバーはもちろんデスクトップサーチやPicasaとかインストールできるソフトはみんなしてます。おまけにGoogle Groupってメーリングリストにも参加してるし、メインのメールアドレスはGmail。そしてこのブログもBloggerなんですね。貼ってる広告はAdSenseとまさにGoogle尽くしです。
まあ、FlickrがYahooに買収されたので写真はYahooだし、メッセンジャーもMSNだからいいか。ライブドアは。。。株主!?(だった)

日曜日, 3月 27, 2005

起動(boot)時にランレベル(runlevel)の変更・grub編

できるってことは知ってたけど、良く考えたらどうしたらできるのか知りませんでした。
反省も込めて書いておきます。

答えはとってもかんたんで、OSの選択画面で起動したいのを選んだら「enter」ではなくて「e」を押します。
するとオプションの画面がでてくるので、ここで kernel のオプションを選んでまた「e」を押します。ここからはヘルプがでてるのでわかると思いますが。
こんどはコマンドラインの引数のようなものが編集できるようになります。前時代的ですね。
この引数の最後にスペースをあけて起動したいランレベルを数字で書きます。2で起動したければ2と書くわけです。そのまんまですね。
編集後にオプションの画面に戻ったら、「b」を押して起動します。
これだけ。

ただ、僕のようなDebian使ってる人でこの知識が役に立つことはまずないかなー、と思います。
というのもDebianの考えかたではシングルユーザーモードとマルチユーザーモード以外は区別していない(GUIとかですね)ので、Debianパッケージを使うとランレベル2以降はすべて同じ起動スクリプトがインストールされます。
なので自分でしこしこ設定しない人には実質ランレベル1と2しかないわけですね。0と6はどうなんだとか聞かないでくださいね。
で、grubの画面ではその2つが表示されちゃっているので上で書いたようなことをしなくても矢印で選べるわけです。うちの環境ではカーネルが2種類あるので、2かける2で4つの項目から選べるわけですね。

金曜日, 3月 25, 2005

Debian/GNU Linux で Mail Notification を使う

WindowsではGmail Notifierを使ってます。
これはGmailにメールが届くとお知らせしてくれる、という通知ツールです。
大抵のメーラーはそういう機能を持ってるけど、Webメールはそんなわけにはいかないわけです。
なので、Gmailを使っている人には必須かと思われます。

でも、Linuxに対応してないのでちょっと困ってました。
なのでapt-cacheで調べてみると、あっさり見付かりました。
それがMail Notifierでした。
Gmail以外にもファイルシステム上のメールボックスはもちろん、POP3やIMAPにも対応しているみたいです。
普通なんでしょうか? この手のツールは意識してインストールしたことがなかったのでわかりません。とりあえず便利なことだけはよくわかりました。

日曜日, 3月 20, 2005

tinydns ( djbdns ) でクラスレス逆引きの委譲を受ける

ぶっちゃけて言ってしまうと、さくらインターネットなんです。
ここは逆引きの委譲をお願いすると「クラスレス逆引きの委譲」というものをしてくれます。ちなみになんで「」で括ってるのかというと、これは RFC 2317 で規定されてる正式名称だからです。普段気にしないくせに、たまには拘ってみました。そもそも、英語の名前を日本語に翻訳しておいて、正式名称などと言ってもいいのかかなり疑問ですが。

具体的には
----------------------------------------------------------------------
10.141.253.221.in-addr.arpa. CNAME 13.8-15.141.253.221.in-addr.arpa.
8-15.141.253.221.in-addr.arpa. NS a.ns.8-15.141.253.221.in-addr.arpa.
a.ns.8-15.141.253.221.in-addr.arpa. A 221.253.141.11
----------------------------------------------------------------------
こんな感じで委譲されるわけです。って、これはBINDの書式ですが。またもやタイトルと矛盾。いいんでしょうか。
1行目で「10.141.253.221.in-addr.arpa」が「10.8-15.141.253.221.in-addr.arpa」の別名として定義されます。
2行目で「8-15.141.253.221.in-addr.arpa」ドメインのネームサーバが「a.ns.8-15.141.253.221.in-addr.arpa」であることが定義されます。
3行目でネームサーバ「a.ns.8-15.141.253.221.in-addr.arpa」のIPアドレスが「221.253.141.11」、つまりうちのサーバーを指定してるわけですね。
こんな書き方をすれば委譲の部分、つまり3行目がひとつで済むからこうしてるんでしょうね。

そのしわ寄せが委譲された相手にいくので微妙なところですが。
で、委譲される側ではこんな風に”書きます”。なんで強調しているのかというと、これ以外にdataファイルを書く必要に迫られることがなかったからです。用意されてるコマンドで登録した方が安全で簡単です。あ、これはtinydnsの話です。勝手に切替えてました。すいません。
------------------------------------------------------
.8-15.141.253.221.in-addr.arpa:221.253.141.11:a
=rabbit.kumicho.net:221.253.141.10
^10.8-15.141.253.221.in-addr.arpa:rabbit.kumicho.net
------------------------------------------------------
1行目で委譲されたドメインのネームサーバであることを定義してます。
2行目でホスト名とIPアドレスの関連を定義してます。普段はこれで終わりです。
3行目でクラスレス委譲のために作られた逆引き用の名前が「rabbit.kumicho.net」に対応していることを定義してます。

ちなみに上で書いてるのは例なので、実際に逆引きすると全然違う反応がかえってきます。USENのアドレスがかえってくるはず。まあ、あくまで、書き方の例ということで勘弁してください。

金曜日, 3月 18, 2005

MySQLのプロセス数について

今日、とあるサーバーでMySQLのプロセス数が何十個もあるのを見ました。
「あれ?MySQLはマルチスレッドなはずだが。。。??」
と疑問に思うわけです。

これは、カーネル2.6以降で実装された新しいスレッドライブラリを使用しているかどうかで決まるようです。
新しい実装のNPTL(Native POSIX Thread Library)ではマルチスレッドなプロセスは一つのプロセスとして管理されます。普通ですね。ちなみにこのライブラリでマルチスレッドの性能が飛躍的に向上したとか。
そうでないLinuxThreadsライブラリでは、各スレッドはそれぞれ一つのプロセスとして管理されるそうです。なんとなく手抜きな匂いを感じますね。「とりあえずプロセスの管理機構を使っとこうよ」。
なので、多くのプロセスが起動しているように見えるみたいです。実体はマルチスレッドで動くひとつのプロセスなので多い日も安心です。

要するにMySQLはあんまり関係がなかったわけですね。
タイトルはなんだったんでしょうか。詐欺ですね。

火曜日, 3月 01, 2005

Flickr を使ってみました

Flickrを使ってみました。
と言っても知らない人もいるだろうから簡単に説明。

一言で言うと、これは写真の共有サービスです。手持ちの写真を登録して、自分だけ、友達だけ、だれでもの中から選んで公開できます。
ただし、登録できるのはひと月に10MB。お金を払うとひと月に1GBまで登録できます。
ひとりにつきどれだけっていうのと違って結構おもしろい制限のかけかたです。小さく感動しました。

使ってみると、10MBとというのがとても小さいことがわかります。
一年待っても今持ってる写真をバックアップしきれません。なんてこったい。
というわけで、僕の考えているような保存用ではないです。おもしろい写真を見せあうとかそんな感じです。きっと。

ちなみにこのページは最近話題になってます。
写真を登録するときに”タグ”というものをつけるんですが、登録した本人が付けるタグなんだから、Googleのイメージ検索なんかよりこのタグで検索した方が狙いどおりのものが見つけやすいんじゃないか、というわけですね。
そこでさっそく”章子怡”で検索してみました。だって大好きなんだもの。
結果は。。うーん、まだいまいち数が足りないですね。しかも、せっかくなので壁紙にしようと思ったらダウンロードできない。。。
ちゃんと保護されてるみたいです。くやしい。