極めるMac OS X

2003年 10月 1日 (水)更新
新居雅行著/技術評論社 2280円

ご購入はこちらから
出版社の書籍情報ページ

書籍が出たと思ったら、Mac OS Xがアップデートしてしまったよ〜
ってなわけで、ネタ集めをかねて、つらつらアップデート情報なんぞを

2003/10/25にPantherがリリースされました。もちろん、使いまくっていますが本書の今後については未知数です。しかしながら、出版がなくなったわけではないので、しばらくは本サイトは更新を止めます。とりあえずは乞うご期待ということで、よろしくお願いします。(2003/10/28)
残念ながら、この書籍はPantherに向けての改訂がなくなりました。ほんとに残念。Pantherはいままでのどのバージョンよりも使いこなしていたのに、ほんとに残念です。もっとも「極めるMac OS X」がもっと売れていれば、そんな決定にはならないと思いますが、やはりさほどの売れ行きはなかったとのことです。ただ、Jaguar発売1ヶ月前とかいった時期に10.1の書籍を出して売れるはずがないのですがそうなってしまったものは仕方ありません。サイトとして継続しながら、Panther情報をお届けしてもいいのですが、きっとめげると思いますので、このサイトはこれをもって更新は行わないことにします。このサイトも、「極めるMac OS X」への売り上げにつながれば…と思ってやってきていた面は多大にあることは否定できません。もちろん、書籍そのものの改訂が別の出版社で可能とかいったことがあればいいのですが、数社にあたってもやはりダメでした。今後、何らかの機会でお目にかかれることもあるかもしれませんが、現在は雑誌の仕事も連載ものはなくなった状態ですし、それ以前にMac専門誌もUNIX雑誌もこのサイトで扱ってきたようなネタを書かせてくれた試しはなく、きっとこうした内容の記事を書くことはぐっと減るでしょう。ただ、個人的にはすでにPantherの新しい機能をかなり使いこなしていて、Panther Serverをベースに実用的な路線でのネットワークコンピューティング的な環境を構築しています。いずれまた「世界が変わった」ときにはまたどこからかお呼びがかかるかもしれませんので、そのときまでお待ちください。(2003/12/1)

Another Site by msyk: →msyk.net →Mac OSメール環境 →Browsing Mac OS!
目次
Network

Mac OS X Server用のセットアップコマンドをMac OS Xでも使う(2003/8/15)

FireWire IPの実力は?(2003/6/4)

ディレクトリサービス下でのシステムのインストール(2003/5/23)

Mac OS X 10.2.5がリリース、NISドメインでの認証が可能に(2003/4/14)

AirMac Extremeベースステーションでのプリンタ共有(2003/3/28)

SafariとパーソナルWeb共有(2003/2/17)

AirMac Extreme対応の管理ツール(2003/2/17)

Mac OS X 10.2でのAirMac(2003/2/17)

natdが利用できるポート(2003/2/17)

IP Over FireWireを使ってみました(2003/1/5)

ワールドワイド印刷サービス…(2002/12/25)

Windowsサーバへ接続時にやりがちなこと(2002/12/12)

RTL8139の10.2用ドライバ(2002/11/13)

Others

残念ですけど…(2003/2/17)

カーネルパニックが日本語で出ている(2003/2/9)

今さらながら、Mac OS X 10.1をインストールする(2003/2/5)

Mac OS X Server

Mac OS X Server 10.2をファイルサーバとして使う(2003/9/26)

Mac OS X Server 10.1のインストール(2003/9/23)

Mac OS X ServerのIPアドレスを変更するスクリプト(2003/8/15)

ディレクトリサービスのユーザでログインできない場合の対処(2003/8/15)

最近の機種にMac OS X Server 10.2.3をインストールする(2003/7/25)(2003/8/15追記)

ホームフォルダのアクセス権(2003/6/18)

Mac OS X Serverの“IPアドレス変更問題”(2003/6/16)

Mac OS X Serverのメールサービスの実力(2003/5/23)

Mac OS X ServerだけにあるNeSTコマンド(2003/3/29)

Mac OS X Serverでテキストファイルからユーザをインポート(2003/3/28)(2003/3/30追記)(2003/4/1追記)(2003/6/5追記〜完結編)(2003/8/15追記)

Mac OS X Server 10.2.4の変更点(2003/3/28)

Mac OS X Server 10.2のパスワードサーバとG3マシン(Adminパスワードの8バイトまで問題)(2003/1/5)(2003/2/17追記)(2003/7/25追記)(2003/8/15追記)

Mac OS X Serverのメールサービスも10.2.3で正常化?(2002/12/21)

リモートでソフトウエアのアップデート(2002/11/19)(2003/4/15追記)

Mac OS X Server 10.2でNAT(2002/10/13)

Finder & User Interface

プリントセンターの詳細な設定(2003/4/1)

システム関連ファイルのバックアップポイント(2003/3/29)

スタートアップ画面の画面ショットを撮影する(2003/3/18)

FTPサーバをボリュームとして使えるようになったけど…(2002/12/21)

ローカライズ名の設定(2002/10/16)

Dockで隠れるウインドウ(2002/10/14)

Mac OS X 10.2のローカライズ機能(2002/9/24)

フォルダのローカライズスクリプト(2002/8/19)

あらら、Documentsのままでは(2002/8/19)

Applications & Impressions

WindowsのOutlook ExpressのメールをMacに持ち込む(2003/7/3)

PDFサービス(2003/2/23)

マルチセッションCDの作成(2003/2/10)

PowerBook G4 (12インチ)買いました(2003/2/4)

Mac OS XでMIDI楽器による演奏(2002/11/16)

Che-ez! SPY-ZをiPhotoで使える!(2002/10/5)

iChatで見える画像(2002/9/24)

iChat楽しんでますか?(2002/8/30)

Mac OS X Server 10.2をファイルサーバとして使う

(2003/9/26)某誌に執筆した記事ですが、出版延期となったということで、延期した期日に出してもあまり意味のない記事でもあり、まさに今現在必要とされる記事かと思われますので、とりあえずそのままの形で掲載します。もしかしたら、もう少し手を入れて読みやすくするかもしれませんが、ともかく入稿した結果とほぼ同じものを公開しました。こちらからごらんください。

Mac OS X Server 10.1のインストール

(2003/9/23)いまさらと思われる方もいらっしゃるでしょう。もうすぐ10.3か!と言われている今日この頃ですが、やはりそういう必要性はまだあり、Mac OS X Server 10.1の再インストールをやらないといけなくなったということで浅野さんより質問を受けました。浅野さんによると、10.1.2に対して10.1.3へのアップデータが機能しないということで、いちばん最新のバージョンに移行できなかったそうです。私はサーバについては10.1のインストールをここ最近はやっていないこともあって、こちらのページのMac OS X 10.1のインストール方法を参考にしてみてくださいとお返事をしました。

で、浅野さんの方で、何とか、今現在でも10.1のサーバのインストールをする方法を解明されたので、ご参考までに掲載しておきます。なお、10.1のサーバのアップデートでは、Mac OS X ServerとMac OS Xがいずれもインストールされている必要があるということがAppleのWebサイトで説明されています。そこで、以下のような4パーティションのマシンで作業をしたそうです。

  • Mac OS X Server 10.1.2
  • Mac OS 9.2
  • Mac OS X 10.1.3
  • ファイル共有領域

以下のように作業をされたそうです。(以下は、浅野さんのレポートをもとに、若干リライトしています)

  1. Mac OS X Server 10.1.2のCD-ROMでインストールし、その状態で「10.1.3ServerUpdate.pkg」をMac OS X Server へ適用するために、Appleホームページ情報の構成に上記の構成に整えアップデート実施するがだめだった。(サーバのドライブがグレーになっていて選択できない)
  2. Mac OS X Server 10.1.2のCD-ROMではなく、10.1からインストールして再挑戦、アップデータが掲載されているアップルのWebサイトのページで公開日付を確認しながら、更新できる「SecurityUpdate10-19-01.pkg」や「InstallerUpdate1.0.pkg」等の更新できるファイルを適用する。その後、「10.1.3ServerUpdate.pkg」を実施するがだめだった。(サーバのドライブがグレーになっていて選択できない)
  3. Mac OS X 10.1.3の更新状態が不十分なのかと思い、Mac OS X 10.1.3のドライブへ「MacOSXUpdateCombo10.1.3.dmg」を実施する。その後にサーバのドライブに対して「10.1.3ServerUpdate.pkg」を実施するがだめだった。(サーバのドライブがグレーになっていて選択できない)
  4. この状態からMacOSXServer10.1.2へUpdateし、再度、「10.1.3ServerUpdate.pkg」を実施するやっぱりだめだった。(サーバのドライブがグレーになっていて選択できない)
  5. この部分の作業で気になったことが2つあります。「MacOSXUpdateCombo10.1.3.dmg」は、何度も同じDiskへ実施できること、そして、「MacOSXUpdateCombo10.1.3.dmg」は、MacOSXServerにも実施できることです。

ということで、いずれにしても、Mac OS X Server 10.1.2より上にすることができないという状況です。しかしながら、次のようにすれば、アップデートすることが判明したそうです。

  1. 「MacOSXUpdateCombo10.1.3.dmg」つまり、クライアントのMac OS X 10.1.3へのアップデータを、Mac OS X Server 10.1.2へ適用した。これはなんとできてしまう。
  2. その後、「10.1.3ServerUpdate.pkg」を実施することができた。サーバのドライブが選択できる。
  3. 続けて、「10.1.4ServerUpdate.pkg」を実施することで、Mac OS X Server 10.1.4のシステムにアップデートできた。

後に検証した結果ですが、Mac OS X 10.1.3システムの無い状態でも、Mac OS X Server 10.1及び10.1.2から「MacOSXUpdateCombo10.1.3.dmg」つまりMac OS Xの10.1.3へのアップデータを適用すれば、その後にサーバのアップデータ「10.1.3ServerUpdate.pkg」の適用が可能になります。ですが10.1からは「SecurityUpdate10-19-01.pkg」を実施した後に、「InstallerUpdate1.0.pkg」を適用しておく必要があります。

どうも「MacOSXUpdateCombo10.1.3.dmg」は特別な機能が備わっているようです。Appleへ問合せをしましたが、クライアントのUpdate「MacOSXUpdateCombo10.1.3.dmg」をServerへ適用することは問題ないとのことでした。

で、「Mac OS X Server 10.1以降とMac OS X 10.1.3の両方がインストールさたMacintoshコンピュータ」とは、Mac OS X Serverの上に、Mac OS X 10.1.3を上書きしたってことのようですね。

Mac OS X ServerのIPアドレスを変更するスクリプト

(2003/8/15)Mac OS X Server 10.2で、パスワードサーバベースで稼働している場合には、IPアドレスの変更がうまくできないことを以前に紹介しましたが、Appleから、IPアドレスを変更するスクリプトChangeIPAddress 1.0が公開されました。そのうちスクリプトを解析するとして、ともかく、きちんと動きました。以下の動作例は、Power Mac G4にRealTekのチップの搭載されたカードを入れたマシンです。内蔵Ethernetは、Bフレッツ経由で固定IPをもらえるプロバイダに接続しています。パスワードサーバは、PCIカードのEthernetの方の10.10.10.5というIPアドレスを参照するように設定をしていましたが、以下のように、10.10.10.6に切り替えてみました。

実際のところは、単にコンソールで、パラメータをたずねるだけで、後は自動的にやってくれます。NetInfoのデータベースを更新するなどしているようですが、Webの設定を更新するなどもやっているようです。とりあえず、「試したところ動いた」というご報告です。…ってところで、ドキュメントを見ると、コマンドを入れる時、-clonesというパラメータを指定しなさいと書かれています。以下の実行例ではそのパラメータを忘れたのですが、そのためにクローン関連のメッセージが出ているのかも知れません。

admin% cd ChangeIPAddressV1.0    【コマンドのあるディレクトリをカレントに】
admin% ./ChangeIPAddress.command    【↓root権限で実行しさないと言っている】

This command must be run while logged in as the user "root".
Please Log Out and Log In as the user "root".
The root password will be the password of the admin user created when
the Setup Assistant was first run, unless it was changed manually.

admin% sudo ./ChangeIPAddress.command
Password:xxxxxx
Do you want change your machine's IP Address? yes/no [yes]: yes
Enter the Old IP Address: 10.10.10.5
Enter the New IP Address: 10.10.10.6
Do you want change your Router IP Address? yes/no [yes]: no
Skipping Router changes
Do you want change your Netmask? yes/no [yes]: no
Skipping Netmask changes


Warning - You are about to change the network setup of this system.
You will want to reboot the system immediately after the script completes.
Please check the values you have entered carefully.
DANGER!! An error in these values could make your system unusable.

The Old IP Address entered is: "10.10.10.5"
The New IP Address entered is: "10.10.10.6"

Are you sure you want to continue? yes/no [no]: yes


Changing NetInfo data

Working on NetInfo domain: local
Created backup file: /var/db/netinfo/local.backup.15847.wF6Ue3
Loading NetInfo data
This could take awhile, please wait...
Completed changes to NetInfo domain: local

Working on NetInfo domain: network
!!!!WARNING!!! This system appears to be a CLONE NetInfo server of the "network" netinfo domain.
If this is a Clone server you will see the following error below:
"Can't write directory: No writes allowed: all objects are read-only"
You will need to manually edit the "network" netinfo domain on the
master and update the IP Address in the /machines/powermac entry for this clone.

Created backup file: /var/db/netinfo/network.backup.15847.Lu8Tlk
Loading NetInfo data
This could take awhile, please wait...
Completed changes to NetInfo domain: network

Working on file: /var/db/SystemConfiguration/preferences.xml
Created backup file: /var/db/SystemConfiguration/preferences.xml.backup.15847.U686ld
Completed changes to file: /var/db/SystemConfiguration/preferences.xml

Working on file: /Library/Preferences/DirectoryService/DSLDAPv3PlugInConfig.plist
Created backup file: /Library/Preferences/DirectoryService/DSLDAPv3PlugInConfig.plist.backup.15847.CwIryx
Completed changes to file: /Library/Preferences/DirectoryService/DSLDAPv3PlugInConfig.plist

Working on file: /Library/Preferences/DirectoryService/DSLDAPPlugInConfig.clpi
Created backup file: /Library/Preferences/DirectoryService/DSLDAPPlugInConfig.clpi.backup.15847.MDdnb9
Completed changes to file: /Library/Preferences/DirectoryService/DSLDAPPlugInConfig.clpi

Working on file: /Library/Preferences/DirectoryService/SearchNodeConfig.plist
Created backup file: /Library/Preferences/DirectoryService/SearchNodeConfig.plist.backup.15847.8AzDYg
Completed changes to file: /Library/Preferences/DirectoryService/SearchNodeConfig.plist

Working on file: /etc/hostconfig
Created backup file: /etc/hostconfig.backup.15847.4yUJEE
Completed changes to file: /etc/hostconfig

Working on file: /etc/httpd/httpd_macosxserver.conf
Created backup file: /etc/httpd/httpd_macosxserver.conf.backup.15847.vZ4pAW
Completed changes to file: /etc/httpd/httpd_macosxserver.conf

Working on file: /etc/webperfcache/webperfcache.conf
Created backup file: /etc/webperfcache/webperfcache.conf.backup.15847.OVXmCj
Completed changes to file: /etc/webperfcache/webperfcache.conf

Working on file: /System/Library/ServerSetup/UnConfigured/POA.plist
Created backup file: /System/Library/ServerSetup/UnConfigured/POA.plist.backup.15847.tAdZOM
Completed changes to file: /System/Library/ServerSetup/UnConfigured/POA.plist


Warning - You must restart for changes to take effect
Many services will not work until you restart.
Please save files before restarting.
Would you like to restart now yes/no [yes]: yes
Please wait while the system restarts...

ディレクトリサービスのユーザでログインできない場合の対処

(2003/8/15)Mac OS X Serverのディレクトリサービスにユーザを登録し、ホームフォルダをネットワーク上に設定してき、Mac OS Xのログイン時に、そのディレクトリサービス上のユーザでログインをするということができます。普通はログインできるのですが、時折、ログインパネルでユーザ名とパスワードを入力しても、小さなダイアログボックスが出てきて、ログインが許可されていないユーザのような趣旨のメッセージが出ます(画面ショットを撮影しようとしたのですが、ちと失敗…撮影しようとしたら直っていた…)。そして、ログインができません。もちろん、パスワードは正しく入力されていることは、サーバのログ等で確認できるのです。

このとき、ログインに使ったマシンの、ローカルの側のNetInfoを見てください。ルートの位置にmcx_cacheという名前のノードがあります。このノードを選択して削除することで、前記のエラーは避けることができます。もちろん、ローカル側の管理者アカウントでログインをしなければなりません。

mcx_cacheは、Mac OS X Serverなど上位のディレクトリサービスの管理情報をキャッシュするためのものです。たとえば、ユーザ名の下位項目にできるmcxというノードにCD挿入をできなくするといった管理機能の定義を書き込むわけですが、その手の情報がmcx_cacheというローカルのディレクトリサービスに、溜め込まれます。そして、何らかの原因、おそらく後からサーバをいじるとか、違うサーバになったとか、そういった理由で何らかの整合性が崩れた時に、正しいユーザ名とパスワードを入れたのに、許可されていないというエラーが出るようです。なお、このエラーは、けっこうな長期間(たぶん、1ヵ月とか…1週間ではだめだった)を経たりすることでも出なくなるようです。また、いったん、このエラーが出ると、ユーザに関係ないみたいです。というのは、ローカルのマシンのディレクトリサービスでの問題ですから、そのマシンからはログインができなくなるという具合です。

Mac OS X Server用のセットアップコマンドをMac OS Xでも使う

(2003/8/15)Mac OS X Serverには、ネットワークの設定を行うnetworksetupや、システム関連の設定を行うsystemsetupコマンドがあります。もちろん、システム環境設定を使って作業をするのが基本ですが、遠隔操作やスクリプトでの操作が必要な場合には、こうしたコマンドは重宝します。これらのコマンドは、Mac OS Xにも/usr/sbinディレクトリにあるのですが、意図的に起動しません。なお、このコマンドは、管理者権限で稼働させる必要がありますので、sudoコマンドで起動します。

[mysmalldream:~] msyk% sudo networksetup
Password:xxxxxxxx
This tool only runs on Mac OS X Server... exiting.

しかしながら、Mac OS Xで、これらのコマンドを使いたい人は、次のようにすることで、稼働することができます。もちろん、自身のリスクで運用してください。ただ、ファイルを追加するだけなので、あまり影響はないとは思います。

これらのコマンドを動かすようにするには、/System/Library/CoreServicesというディレクトリに、ServerVersion.plistというファイルを作っておきます。中身は以下のようなものにします。このファイルはMac OS X Serverにはもちろん最初からありますが、Mac OS Xにはありません。(この内容は、Mac OS X Server 10.2.6のものです)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ProductBuildVersion</key>
<string>6L60</string>
<key>ProductCopyright</key>
<string>Apple Computer, Inc. 1983-2003</string>
<key>ProductName</key>
<string>Mac OS X Server</string>
<key>ProductVersion</key>
<string>10.2.6</string>
</dict>
</plist>

なお、ServerVersion.plistファイルのアクセス権は、実行時に読み込めればいいので気にすることはありませんが、/System/Library/CoreServicesのアクセス権は、通常のユーザは書き込みができませんので、rootの権限でファイルを作らないといけません。たとえば、以下のようにターミナルでコマンドを入力して、エディタのpico内で上記の内容をコピー&ペーストするといいかと思います。

[mysmalldream:~] msyk% cd /System/Library/CoreServices
[mysmalldream:~] msyk% pico ServerVersion.plist

systemsetupやnetworksetupコマンドは、もちろん、マニュアルがあるので、manコマンドで使い方は参照できます。引数を与えなければ、ヘルプが出てきます。使い方はそれらを参考にしてください。コマンド入力時はsudoを忘れないように!

なお、ServerVersion.plistファイルがあると、ログインパネルもMac OS X Serverのときの状態になり、アイコンで選択できなくなります。つまり、他の部分も「サーバ動作」する場面が出てきますので、やはりアドホックに作っては不要になったら消すとかファイル名を変えておくという作業が必要になるでしょう。

(2003/10/22追記)ServerVersion.plistというファイルですが、ファイルの中身がなくても、ファイルさえ存在すれば、systemsetupコマンドなどは実行可能です。ですから、touchでファイルを作ってsystemsetupコマンドを実行し、rmで削除といったスクリプトを作っておけばOKですね。

最近の機種にMac OS X Server 10.2.3をインストールする

(2003/7/25)Mac OS X Serverは、Xserveを除いてMac OS X Server 10.2.3のCD-ROMからインストールしなければなりません。(もし、10.2.0のCDだけを所有している場合は、噂ではAppleに連絡すれば、10.2.3がもらえるそうです。)しかしながら、一部の機種で、10.2.3以降に発売された機種は、Mac OS X Server 10.2.3のCD-ROMでは起動ができません。したがって、CDでブートをしてインストールができないということになります。ちなみに、G5が発表され、G4が安くなったので「G4を買うぞ!」と意気込んでショップに行ったら、さらに1つ前のG4(CPUが1GHzシングル)が139000円だったので、思わずそっちを買いました(笑)。ミラードドライブですが、1GHzのシングルCPUです。やっぱりこれはCD起動できなかったのです。

そういう機種の場合は、既存のMac OS X(Serverじゃなく)のシステムに上書きインストールしかできません。Mac OS Xのパーティションで起動し、Mac OS X ServerのCD-ROMをドライブに入れて、そして、CD-ROMのウィンドウが自動的に開くのでその中にあるMacOSXServerInstallフォルダのMacOSXServerInstall.mpkgをダブルクリックしてインストールを行います。つまり、CD-ROM上のMacOSXServerInstall.mpkgファイルをダブルクリックしてインストールをするということです。あとは基本的に同じなのですが、いくつか注意点が必要です。

まず、こうしてインストールする時のボリュームは、起動しているMac OS Xのボリュームだけです。他のボリュームにはインストールできません。だから、パーティションを切った時などは、「これからサーバをインストールしたい」ボリュームにまずはMac OS Xを仕込んで、そしてその後にサーバのインストールをしなければなりません。

そして、インストール時に通常と違うのは、管理者の設定ができないことです。Mac OS Xをインストールする時に登録した管理者がそのまま、Mac OS X Serverの管理者になるのが、この方法でのインストール時の動作で、新たに追加したり、名前を変えたりはできません。別に自分の名前でもいいというのなら、もちろんいいのですが、adminにしたい場合は、Mac OS Xのインストール時からAdminにしておきましょう。もっとも、あとで、Workgroup Managerで変更してもかまいません。

サーバを起動すると、そのままでは、管理者のアカウントで自動起動がされてしまいます。そうした設定も、もちろん、変更しておくというのが基本です。

(2003/8/15追記)数回インストールした結果、結論を申し上げると、最初のMac OS Xのセットアップである程度決まってしまいます。Mac OS Xのセットアップで、最初に1人のユーザを設定しますが、そこでは、Adminというユーザ名で登録しておくのがいちばん無難でしょう。その後に、システムにMac OS X Serverを上書きすると、Adminがすべての作業ができる管理者になります。

Mac OS Xでは適当な名前を設定し、別の名前で後からAdminとして管理者を加えることもいいのですが、ドメインの管理者として権限を設定しないと権限の低い管理者となってしまいます。もちろん、設定すれば使えることは使えるのですが、けっこう面倒です。また、rootのパスワードが、Mac OS Xの時に最初に設定したパスワードになっています。rootのパスワードはめったに使わないものの、NetInfo関連で使うこともあるかと思います。

WindowsのOutlook ExpressのメールをMacに持ち込む

(2003/7/3)WindowsからMacへのSwitchキャンペーンは昨年末くらいからAppleが展開していましたが、そこである程度は具体的なはなしもあるのですが、WindowsのOutlook Express 6(Windows XPに付属)からの移行方法は具体的には書かれていません。で、ある方面より、WindowsのOEからの移行方法を問い合わされたので、あらためてチェックしたところ、OE 6では、mboxファイルへのエクスポート機能はなく(昔はあった模様)、さらに、OEのメールデータベースファイル(dbxファイル)も独自形式のようです。コンバータをいくつか探すうちに、きっちり動くものが見つかりました。Tietewさん作成のGPLソフトウエア「OutlookExpress-To - OE5/6 Multi Converter」です。つまり、フリーでソースも公開されているということですが、別にソースをいじるまでもなく、水準以上にしっかり動いてくれる素晴らしいツールです。

ともかく、Outlook Expressは謎な場所にデータベースファイルを保存しますが、Multi Converterは、ファイルの場所などを自動的に認識しますので、そんなことは気にせずに快適に使えます。もちろん、ソフト自体はWindows用です。

起動後、「変換元」のドロップダウンリストから、Outlook Express側のユーザ名を選択するだけで、元データを特定できます。Mailに移行したいなら、「形式」はUNIX mboxを選択しておけばいいでしょう。そして、変換先は、「参照」ボタンをクリックして指定します。たとえば、「共有ドキュメント」フォルダを公開しておき、そこにフォルダ「変換結果」を作っておいたとします。こうして変換をかければ、Outlook Expressのフォルダ単位にmboxファイル(複数のメールを1つのテキストファイルに一定の形式で保存されたファイル)を作成します。

Mailの方では、「ファイル」メニューの「メールボックスの読み込み」を選択して、読み込み作業を行います。最初の画面では、タイプを選択します。ここでは「標準mboxファイル」を選択します。続いてmboxファイルの存在するフォルダを指定するように指示があるので、シートで、mboxファイルのあるフォルダを指定します。その後、特定のファイルだけを読み込むような設定も可能です。読み込んだ後は、ドローアなになっているメールボックスに「読み込み」というグループが作られており、その中に、mboxファイルごとにフォルダに分類されて、メールが溜め込まれています。

こうして、mboxファイルが得られるので、OMEを始め、各種のメールソフトでも同様に、メールのインポートができるものと思われます。

ホームフォルダのアクセス権

(2003/6/18)Mac OS X Serverでディレクトリサービスをセットアップし、アカウントを作成して、ホームディレクトリを「ネットワーク」にし、クライアント側はディレクトリサービスを使って認証してログインをすると、サーバ上にユーザのホームフォルダを確保することができます。その結果、どのクライアントマシンからログインしても、同じ作業環境になり、以前に保存していたファイルを、別のクライアントマシンでログインしても再度開いて利用できるという状況になります。一般的には、Finderの「ネットワーク」の下に、ホームが存在するはずです。たとえば、以下は、user01というアカウントで、ログインした場合のホームフォルダです。

このような場合、おそらく学校のようにたくさんの人のホームフォルダをどこかにまとめておいて、そこを公開するのが一般的でしょう。上記の例では、xserverというサーバで、Usersフォルダを公開しています。そのとき、他人のホームフォルダについては、ここに見られるように、フォルダ自体は参照可能です。

以下は、user02というアカウントでログインをしているときに、アカウントmsykのホームのルートをみているところです。初期状態では、他人のホームのルートは参照できるのですが、これは、ホームフォルダのアクセス権が、所有者は自分自身、グループはstaffで読み込みと実行が可能になっており、さらに全員に対しても読み込みと実行は可能です。したがって、他人のホームのルートやパブリック、サイトフォルダの中身は、書き換えはできないとしても、ファイルの内容は読み出すことができます。(これをデフォルトの状態とします。)もちろん、Documents(書類)フォルダなどの中身は、立ち入り禁止マークが示すように、他のユーザからは参照できません。

もし、これが問題であるのなら、つまり、他人がホームの中に一切入って欲しくないのであれば、1つの方法は、ホームフォルダのルートのところで、グループおよび全員(その他)に対するアクセス権を一切なくします。つまり、そのアカウントの人しか読み書きできなくします。以下は、user01でログインをしているときに、user02の所有者以外は一切の権限がないようにしたuser02のホームフォルダを見たところです。

上記のように設定したuser02では多くの作業は支障なく行えるようですが、基本的には一通りの作業をしてみて問題がないかをチェックした方がいいでしょう。設定変更可能なシステム環境設定関連のものやDockについては反映されて保存できました。

では、なぜデフォルトのような状態になっているかですが、Mac OS Xのパーソナルファイル共有の機能と同等な動作を実現しているからです。つまり、「パブリック」「サイト」にあるファイルは、基本的にゲストのログインやWeb共有で公開されるものです。つまり、他のユーザにファイルを見せたり、あるいは持って行ってもらうための公開領域です。これと同じことを、サーバ上にホームを一元化したときにも実現していると言えるでしょう。

また、Webサーバにより、たとえば、「http://ドメイン名/~user01」といったアドレスで、ユーザのホームの中の「サイト」フォルダが公開されますが、ここを公開するにはユーザのホームのルート、そして、「サイト」フォルダが、Webサーバのプロセスのアカウントにとって読み込みと実行の許可が立っていないといけません。そのために、全員についても読み込みと実行の許可がなされているのです。したがって、上記のように、グループと全員のアクセスを不可にすると、「サイト」フォルダ以下はWebでは公開されません。

デフォルトの状態で何が問題かというと、個人的な書類を、ホームのルートに保存した場合です。そうすると、他のログインしたユーザは、そのファイルを開いてしまうことができます。削除はされないとは言え、あまり好ましい状況ではありません。ただ、相当意図的でないと、ホームのルートには保存作業はしないでしょうから、これは運用規則でカバーできる範囲だと思います。

一方、ホームのルートは、所有者に対しても書き込み権限はなくすという手もあります。こうすれば、所有者も、無意識にホームのルートに文書を保存することは物理的にできなくなります。また、Web公開や、「パブリック」フォルダでのファイル公開も可能であり、ある意味では折衷案です。ただし、まれにホームのルートにキャッシュファイルや一時的なファイルを作られる場合もあり、ある程度のテスト運用と、想定される作業をやってみる必要はあるでしょう。

一部に、「Mac OS X Serverは、セキュリティが甘く、一般ユーザーでログインできれば、階層を上がって他の全てのユーザーも見ることができる方法がある」と吹聴している人がいるということを聞きますが、たぶん、このホームフォルダのデフォルトの状況を言っているのだと思います。しかしながら、ちゃんと「書類」フォルダに保存したものは保護されています。それ以前に、単にファイルサーバとしてだけ使うのなら、ホームはサーバ上に確保しなくても使えるわけで、共通領域については管理側が好きにセキュリティ設計ができます。さらに、どんなユーザーがいるのかというのが分かるのは、他のUNIXもまったく同様です。ホームから1階層上がれば、LinuxでもFreeBSDでも通常は分かります。ただ、Linuxは、初期状態ではホームディレクトリについてはグループと全員は一切アクセス不可になっています。だけど、学校なんかで学生がWeb公開して実習で作ったサイトを見せる場合、ホームのルートとpublic_htmlを、全員に対して読み込みと実行権限付けるのが一般的ですから、必ずしも、ホームは所有者以外を排除する設定では運用していないでしょう。セキュリティホールの意味も分からずに吹聴して回る人こそ、「社会のセキュリティホール」であり、「人間ウィルス」と言えるかと思います。

最近は減りましたが、アプリケーションやシステムにセキュリティホールがあると、それをインターネットのあちこちに書き回る人がやっぱりいます。たとえ話が正確に状況を表現するものでもないかもしれせんが、たとえれば、鍵をかけわすれて出かけた家の前で、「この家は鍵がかかっていないぞ!」と大声で叫び回るのと同じようなものかと思います。あるいは、欠陥商品の鍵が市場に出回ったとして、「○○社の鍵は危ない」と言い回るようなものです。いずれも、「警鐘を鳴らしている」と言えなくもないですが、「泥棒の手助けをしている」にも等しいことです。もちろん、セキュリティについては、一概にこうしたことと同一とは言えませんが、「○○は危ない」などという話は、結果的には間接的に競合相手を封じ込めて、自分の利益になるという図式を狙っている場合も見られます。もちろん、はなはだ対応が悪いということもあるかもしれませんが、セキュリティホールを声高に言う人って、もしかして、競合会社の社員とか、あるいは誰かを陥れたいとか、はたまた自分の評価を高めたいだけだとかいうことがないか、よく注意観察してみる必要があるのではないでしょうか。

Mac OS X Serverの“IPアドレス変更問題”

(2003/6/16)Mac OS X Server 10.2から、オープンディレクトリが搭載され、ディレクトリサービスをサポートするようになりましたが、マシンのIPアドレスの変更が思わぬ結果になることもあるので、そのあたりをまとめておきたいと思います。

まず、ディレクトリサービスは、多くの場合アカウント管理の一元化を行うのが目的だと総括できます。ディレクトリ情報として、アカウントの情報を、他のサーバやクライアントに提供できるのですが、一般的なSQLデータベースと違って、階層的なデータの管理、あるいは高速な検索ができるので、ディレクトリサービスを使っているというのがおおまかなメリットだと言えるでしょう。

このディレクトリサービスを実現するために、実際にさまざまな情報を提供する機能を受け持つ「ディレクトリサービス」と、それ以外に、パスワードの処理を行う「パスワードサーバ」を起動します。パスワードサーバは、たとえばチャレンジ認証などの複雑なパスワード処理を行うサーバプロセスです。こうした複雑な認証処理を行うには、サーバ上のサービスごとに認証に対応させるということはしないで、パスワードサーバに依頼をして認証をしてもらうというのが主流になりつつあると言えるでしょう。Mac OS X Serverは、ディレクトリサーバとして、NetInfoのサーバ、LDAPのサーバを稼働させています。さらに、lookupdというデーモンも動かしますが、これはディレクトリサービスのプロトコルに依存しないより上位のディレクトリサービスを受け持つデーモンのようです。なお、LDAPはNetInfoとのゲートウエイを行っており、ディレクトリサービス機能はNetInfoが主体的に受け持っています。

Mac OS X Serverでは、インストール時に、オープンディレクトリアシスタントが起動しますが、そのときに、ディレクトリサーバとパスワードサーバの挙動を決めることができます。むしろ、ここでちゃんと設定をしておく必要があると言えるでしょう。これらのサービスはどうやら、その時に指定した固定IPに依存するようです。ディレクトリサーバのNetInfoの公開されたノードを見れば分かりますが、そのときの「固定IP」の値がレコードとしてあちこちに記録されています。一方、パスワードサーバ自体も、最初に指定した「固定IP」が見えなくなると、どうやら認証ができないような状況になります。したがって、Mac OS X ServerのIPアドレスを変更すると、ディレクトリサーバ上で、「アカウント情報がなくなる」ことや、たとえアカウントを元に戻しても「パスワードサーバベースの認証ができなくなる」状況になるようです。

一方、ディレクトリサービスを使っていないサービスについては、サーバのIPアドレスを変更しても、なんら影響はありません。たとえば、単なる誰もがアクセスできるWebサーバとして使う上では、IPアドレスの変更は影響ありませんが、Web自体の設定は場合によっては変更する必要があるでしょう。しかしながら、アカウントがかかわるファイルサーバや、認証にかかわるメールサーバなど、一般的にはIPアドレスの変更でディレクトリサービスがうまく機能しなくなる状況で使っている人は多いかと思います。(単にWebサーバとしてしか使わないのなら、他のUNIXサーバとの差別化する点は少ないですからね。)

結果的にいちばん安全なのは、最初に決めた固定IPアドレスから絶対に変更をしないというのがあるかと思われます。こうするのがいちばん確実かつ、問題ないでしょう。その固定IPアドレスは、内蔵Ethernetのポートであるというのも条件でしょう。

しかしながら、どうしてもIPアドレスを変更したいという場合には、少なくとも、パスワードサーバベースのアカウントのパスワードの再設定だけはどうしてもやらないといけないようです。しかしながら、アカウント情報は、テキストへのエクスポートなどで何とか新しいIPアドレスの状況に持ち込めるかと思います。その後に、パスワードサーバベースのアカウントにdspasswdコマンド等を使って移行させるしかありません。結果的に利用者には、「パスワードが変わった」と説明せざるをえないでしょう。

アカウントの移行を含めたIPアドレスの変更としては、次のような手順を踏むのがいいようです。

  1. ワークグループマネージャで、念のために、「基本」認証の管理者のアカウントを、「ローカル」に作成しておきます。
  2. 続いて、それまでの管理者のアカウントのパスワードのタイプを「基本」にします。
  3. オープンディレクトリアシスタントを起動して、ディレクトリサーバ、パスワードサーバをいずれも起動しない状況にします。(ディレクトリの使用方法共有されないローカルディレクトリを使用するを選択、セキュリティユーザレコードとしてローカルに保存およびアクセスするを選択)
  4. 再起動後、IPアドレスの変更を、システム環境設定等で行います。
  5. 不要かもしれませんが、ここでも再起動した方がいいように思います。
  6. さらに、オープンディレクトリアシスタントを起動し、新しいIPアドレスから管理者でログインをして、ディレクトリサーバ、パスワードサーバを起動します。(ディレクトリの使用方法ほかのコンピュータにディレクトリ情報を提供するを選択、セキュリティ他のシステムに提供するを選択)
  7. 再起動後、ワークグループマネージャを起動するなどして、ユーザ登録を行います。

手順の1にあるように、失敗したときの担保として、ワークグループマネージャの「ローカル」の領域に、パスワードタイプが「基本」のユーザを設定しておくと、何かと安心です。パスワードサーバのユーザしか存在しない状態でパスワードサーバを落とすと、誰でもログインできなくなりますので、注意が必要です。

パスワードサーバに記録したパスワードは上記の方法でも消失します。残しておいてあるテキストファイルを元にしたユーザ登録のときに、パスワードを新たに登録するという方法をとらざるを得ないでしょう。

アカウント情報の移行には、ワークグループマネージャで書き出してさらに読み込む方法と、NetInfoの内容を全部ダンプし、その中にあるIPアドレス情報を置換して書き直して、その内容をNetInfoに読み込ませるという方法があります。

ほかに、マルチホーミングを使ったやり方もあるようですが、これは、必ずしもすべての状況で適応できるとは限らないように思われます。

パスワードサーバを使わないといけない状況として、Windowsクライアントからファイルサーバへのログインがあります。つまり、パスワードサーバは、ディレクトリサーバと一体化されているので、結果的にディレクトリサーバを動かし、/NetInfo/rootのノードに、パスワードのタイプが「パスワードサーバ」のアカウントとしてログインをしないといけないわけです。「基本」のタイプではログインはできません。しかしながら、ディレクトリサービスを起動しない状態で、「ローカル」にアカウントを登録し、一方でシステム環境設定の「アカウント」でそのユーザのWindowsクライアントからのログインを許可することによって、Windowsクライアントからログインできるようになるという状況も考えられます。しかしながら、ユーザ管理としてワークグループマネージャの外に出て、ローカルでしか設定できないところをいじるというのはその他のさまざまなメリットを犠牲にすることでもあります。このあたりは、どこで妥協できるかというところもあるかと思いますが、むしろ、IPアドレスを変えないという前提でディレクトリサービスを利用する方が、より発展性を期待できるということもあるかと思います。

FireWire IPの実力は?

(2003/6/4)Mac OS X Server 10.2.5で、FireWireを使ったネットワークに対応しました。以前にプレビュー版が公開されましたが、正式な公開はサーバだけとなり、クライアントのMac OS Xには搭載されていません。実際、使うのはさほど難しくありません。サーバをアップデートしたあと、システム環境設定の「ネットワーク」を呼び出します。すると、新しいEthernetポートを追加するかどうかをダイアログボックスで問い合わせますので、追加します。

その後、追加したポートで、Ethernet関連の設定を行います。前の図ではen2になっていますが、再起動を何回しているうちに、以下のようにen1になっていますが、これがFireWireのポートです。システム的にはEthernetのポートとまったく同一に見ています。IPアドレスなどはともかく、ポートの順序についても気をつけておく必要があります。なお、Mac OS X ServerのDHCPサーバでは、このFireWireのポートに対してIPアドレスを配信するという設定ができません。ポートを選べなくなっていて、ポートがアクティブな状態で再起動してもやっぱり選択できなくなっています。つまり、固定IPで使えということでしょうか(169.254.*.*もありますけどね…)。

ネットワークユーティリティでFireWireポートの情報を見ると、こんな感じです。リンク速度は景気のいい数字が並んでいます。

では、実際に100BASE-Tより速いのかを簡単にベンチマークしてみました。Mac OS X Server 10.2.6は、PowerBook G4のいちばん初期のモデルに入れて、メモリは512MBです(ほんとうは対応機種ではない〜笑)。一方、Windows XP Professionalを搭載したWindows機と、長めのFireWireケーブルで直結しました。Windows XPは標準機能で「1394ネットアダプタ」が組み込まれています。3ポートIEEE1394のカードを差すだけで、外付けHDDはもちろん、ネットワークアダプタにもなり、このあたりはWindowsでもちゃんと、プラグ&プレイになっています。マシンは、Celeron 2GHz、512MBメモリといった構成です。EthernetとFireWireのブリッジは、なんだかんだと苦労して(苦笑)オフにしました。IEEE 1394カードは、I/O DATA製のロープロファイルものです。(ちなみに、外付けHDDも接続すれば簡単に使えますが、CドライブとかDドライブとかとうっとおしいのは、20年前から同じですね。)

で、Mac OS X ServerのSambaに対して、Windowsマシン側から公開ボリュームをマウントしてファイルをコピーしました。170個のファイルがある210MBのフォルダをコピーするのに、FireWireも、100BASE-T(安いスイッチハブ経由)でも、55秒かかりました。まったく時間差はありません。スループット的には、概算ですが、210×8÷55=30Mbpsです。

さらに、65MBの1つのファイルをサーバに対してコピーしてみました。これも、どちらの経路も、16秒ということでした。スループットは、65×8÷16=32.5Mbpsです。テストでは、Windows側(クライアント側)のネットワーク接続のうち、使わない方を無効にし、またテスト中はネットワークユーティリティでパケット数が増加するのを確認してやったので、間違いはないと思います。

結論的には、「このテストでは通信経路の違いは出ない」ということですが、言い換えれば、一般的なネットワーク作業では、EthernetもFireWireも違いは少ないということです。どこにボトルネックがあるのかは不明ですが、FireWireでつないで4倍高速を期待しても、実用レベルではあまり期待はできないというところでしょうか。もちろん、サーバがPowerBook G4初期モデルってのはあまりいい感じじゃないと思うところですが、それしかマシンがないので、ご了承ください。

それで、FTPでの接続をやってみました。Mac OS X Serverは組み込みのFTPサーバ、Windows側はコマンドプロンプトからftpコマンドで入って、putコマンドで65MBのファイルを転送してみました。こちらは、Ethernetだと34秒、FireWireだと44秒となり、Ethernetの方が速いという結論になりました。FTPだから最適化されているのかもしれません。いずれにしても、Ethernetでの通信はできるのですが、これで机の周りを全部統一するのもいいのかもしれませんけど、どちらかと言えば補助的なものなのでしょう。Mac OS X Serverにのみ搭載されているのは、要は、ラックマウントの中のような複数のXserve同士を直結したいとかいったときに使うのかもしれません。たとえば、IP failoverを行うときのポートとしてFireWireを使うと、Ethernetポートが2つとも利用できます。

ディレクトリサービス下でのシステムのインストール

(2003/5/23)NetInfoのサーバが稼働している環境下で、Mac OS Xをインストールすると、最初のWelcomeなどのムービーが出た後のアカウント設定で、ディレクトリサービスのアカウントを使ってログインするかどうかを選択するようになります。ここで、ディレクトリサービスのアカウントを使うことを選択すると、その環境下での管理者アカウントでの認証が求められます。たぶん、たいがいはadminというアカウントをMac OS X Serverに設定していると思いますが、そこでサーバに登録されているadminのパスワードを入力して認証を通すと、そのままインストールは続きます。

つまり、この状態では、Mac OS X Server側のディレクトリサービスで提供されるアカウントでログインをするという設定でシステムが構築されます。ログインパネルも表示される設定になります。ここで、ローカルのマシンのNetInfoでは、adminのアカウントも同時に作られ、パスワードも同一のものが登録されます。ですから、ディレクトリサービスの有無にかかわらずに、マシンへのログインは可能ということになります。ローカルのマシンは、このadminアカウントだけが登録された状態になります。

きちんと、ディレクトリサービスベースのネットワークでのインストールまで対応しているということです。

Mac OS X Serverのメールサービスの実力

(2003/5/23)Mac OS X Server 10.2には、「メールサービス」として、SMTP、POP3、IMAPのサーバ機能があります。SMTP認証をしながら、うまく制限をかけるという設定がやっとできるようになったのが、Ver.10.2.3になってからなんですが、そのため、まだまだ稼働実績もなく、どれくらいの実力かはなかなか計り知れません。そこで、できる範囲でちょっと実験をしてみました。クライアントから、メールを2000通送るのにかかる時間を測定したら、約10分でした。

ログを見ると(ログは、/Library/Logs/MailServicesにあります。/var/log/mail.logはsendmailのログですね)、SMTPのインとアウトが同時に終わっているのですが、アウトはどうやら、キューの中にあるメールをある程度まとめておこうなうようで、同一のドメイン宛だとベンチマークになっていないですね。ですが、SMTPのインについては、クライアントからは1通1通送っています。2000通のメール、全部同じ宛先で、同じ内容です。Mac OS X Serverからは別のサーバにリレーしないといけない宛先になっています。つまり、メールサービスのSMTPの受け取り能力を測定したというところですが、送信に使ったのはOMEです。同一ネットワーク内(pingの時間は2msくらい)なので、ネットワークの負担も少ないとすると、もしかしたら、OMEのボトルネックもあるかもしれません。なお、SMTP認証をしてもしなくても、やはり10分ほどでした。

それで、外にあるPostfixのメールサーバ(Linux)で、ローカル配信になりますが、2000通のメールを同じ宛先に送ると、20分ほどかかりました。インターネットの先ですが、pingの時間は20msほどです。そのことを考えると、Mac OS X Serverのメールサービスもそこそこいけそうな気はします。なお、2000通のリレー中にプロセスの動きを見ましたが、CPUはほとんど消費していません。ディスクとネットワークさえボトルネックがなければけっこうさくっといくのではないでしょうか。

Mac OS X 10.2.5がリリース、NISドメインでの認証が可能に

(2003/2/17)Mac OS X 10.2.5がリリースされました。さまざまな変更がありますが、とりあえず目に付くところと言うことで、NISを使ったユーザ認証ができるようになりました。とは言え、NISが動いている環境は手もとにはないので、設定等は確認できませんが、いずれにしても、ログインの認証でのNISは一時期はサポートされていなかったのが、このバージョンで復活したというところでしょうか。

ユーティリティフォルダの「ディレクトリアクセス」には、NISという項目が増えています。つまり、ディレクトリサービスのプロトコルとしてNISは統合されたということになります。

NISの設定を開くと次のようなサーバの設定を行うようになります。ドメイン名などの指定をしてから、おそらくは、ディレクトリアクセスアプリケーションの「認証」のタブで認証先をカスタマイズして、ログイン時にNISのサーバを参照するように設定するものと思われます。

プリントセンターの詳細な設定

(2003/4/1)Mac OS X Serverのメーリングリストで見つけたネタですが、プリントセンターでの詳細な設定方法があるようです。プリンタリストウインドウで追加ボタンをクリックしてプリンタを追加しますが、そのときにoptionキーを押したままにしておきます。すると、プリンタリストのシートに詳細という選択肢が加わります。

この詳細を選択すると、プリンタを一覧から選ぶのではなく、プロトコル、装置名、URIでの指定外が可能になります。つまり、ブラウズできないプリンタでも、設定が可能になると言えるでしょう。もちろん、特殊な例ではありますが、さまざまな試験やあるいはネットワーク環境が思った通りに動いていない場合の奥の手?になるかもしれません。

システム関連ファイルのバックアップポイント

(2003/3/29)システムを入れ替えるときや別のマシンに移行するとき、必要なファイルを手際よく移動したいと考えるわけですが、自分が使っているさまざまなアプリケーションごとの事情もあり、なかなか大変です。ライブラリフォルダごと移動するのも、ちょっとおおざっぱと思うわけで、ある程度はネタをためないといけないところでしょうか。先日、PowerBook G4を購入したときに行った作業のメモを残しておきたいと思います。もっとも、.MacサービスのBackupを使えば、ある程度は自動的にできるということもありますね。なお、この方法で、完全にバックアップできることを保証するものではありませんので、ご自分のリスクでお願いします。

アプリケーション バックアップ対象 備考
iChat
  • ホーム/ライブラリ/Preferences/com.apple.iChat.*
これらのいくつかのファイルを保存しておけば、iChatの設定やメンバーリストの情報を残しておける模様
iCal
  • ホーム/ライブラリ/Preferences/com.apple.iCal
  • ホーム/ライブラリ/Calendars
実際のカレンダーのデータは、2つ目のディレクトリに分割して記録されているので、そちらが重要
Safari
  • ホーム/ライブラリ/Library/Safari
ブックマークなどの設定はここを保存すればいいだろう
iTunes
  • ホーム/ミュージック/iTunes
サウンドデータとプレイリストはここを保存すればとりあえずOKのようだ
iPhoto
  • ホーム/ピクチャ/iPhoto Library
このフォルダを保存しておくことで、写真すべておよび作成したアルバムは残しておくことができる
アドレスブック
  • ホーム/ライブラリ/AppSupport/AddressBook
アドレスの実際のデータはここにあるので、このフォルダを残しておく

Mac OS X ServerだけにあるNeSTコマンド

(2003/3/29)Knowledge Baseを見ていたら分かったのですが、NeSTというコマンドがあるようです。Mac OS Xにはなく、Mac OS X Serverにしかありません。10.2以降のバージョンに存在し、/sbin/NeSTがフルパスです。オープンディレクトリアシスタントと同じ処理をコマンドラインでできるようです。稼働はsudoで実行しないといけないようです。マニュアルはないのですが、引数なしで実行すると、ヘルプメッセージが出てきます。ディレクトリサーバやパスワードサーバでお悩みの方は、こんなのもあるということを知っておけば、何らかの手がかりになるかもしれません。

[xserver:~] admin% NeST
Usage: NeST [-createstaticip <parent IP address> <admin account name> [-withldap]]
[-enableldapserver]
[-disableldapserver]
[-destroyparent [<parent tag>]]
[-destroyorphanedparent [<parent tag>]]
[-setldapdhcp]
[-setldapstatic <IP or domain name> <port> SSL|NoSSL <search base>]
[-settimpasswds <admin acct ID> <passwd>]
[-broadcast]
[-dhcp]
[-static <server> <tag>]
[-allbindings <server> <tag>]
[-setnetinfo [broadcast] [dhcp] [static <server> <tag>]]
[-addchild <child host name> <child IP address>]
[-target <target IP address>]
[-getconfig]
[-getstyle]
[-getparentconfig]
[-getchildconfig]
[-authserver]
[-getpasswordserverstyle]
[-getpasswordserveraddress]
[-verifypasswordserveradmin <server IP> <admin name> <admin password>]
[-NOpasswordserver]
[-usepasswordserver <server IP> <admin name> <admin password> <server admin name> <server admin password>]
[-hostpasswordserver <admin name> <admin password>]
[-getprotocols]
[-setprotocols <sasl mech name> <on|off> ...]
[-ver]

-createstaticip Create a new master domain binding to a specific IP address.
Copies the root account to new master domain and
also copies the admin user account if provided.
-enableldapserver Enables the LDAP server (requires that a network NetInfo domain exists).
-disableldapserver Disables the LDAP server, but does not remove the database.
-destroyparent Destroy the locally hosted master domain.
Uses the default network tag if non provided.
-setldapdhcp Enables binding to an LDAP server using DHCP option 95.
-setldapstatic Configures to use the specified LDAP server.
Requires server based mappings.
-settimpasswds Sets the tim password for the root and admin accounts
In both local and master domain if it exists.
Note: The tim authentication server must be running
and initialized with the autostart option
for this option to succeed.
-broadcast Removes targeted domain information.
-setnetinfo Sets the NetInfo binding based on parameters passed in.
-addchild Adds a child for this server to bind to.
-target Targets the local domain to a specific parent.
-getconfig Returns uppercase for active and lowercase for inactive.
local,client,parent,broadcast,dhcp,static,tim,ip,tag.
-getstyle Returns whether configuration is local, child, parent,
or advanced, and whether a parent exists but is not used locally.
-getparentconfig Returns whether there is a NetInfo parent, NetInfo and LDAP, or no parent.
-getchildconfig Returns whether this machine is a NetInfo or LDAP client, local only, or advanced.
-authserver Sets AUTHSERVER=-YES- in /etc/hostconfig.
-getpasswordserverstyle Returns none, use, host.
-getpasswordserveraddress Returns the address of the current password server
-verifypasswordserveradmin Returns whether the directory user is an admin, and the user's ID
-NOpasswordserver Removes the configuration record for the password server from the directory.
-usepasswordserver Sets the password server for this machine's domain
-hostpasswordserver Configures this machine to host a password server
-getprotocols Returns the list of active SASL plug-ins
-setprotocols Modifies the list of SASL plug-ins
-ver Displays version information.

AirMac Extremeベースステーションでのプリンタ共有

(2003/3/28)AirMac Extreme対応のベースステーションにはUSBポートがつきました。利用はいたって簡単で、そのポートにプリンタを差し込むだけです。クライアントのMac OS Xでは、プリンタドライバは必要になりますが、存在すれば、プリントセンターで登録すればいいでしょう。ユーティリティフォルダにあるプリントセンターを呼び出し、プリンタリストウインドウで追加ボタンをクリックします(ここで最初から登録されているBJ M70は、直接つないでいたときの名残です)。

シートが出てくるので、こを選択します。すると、AirMベースステーションに接続したプリンタがいきなりリストに現れます。プリンタを選択して、追加ボタンをクリックします。しっかり、Rendezvousが活躍しています。

プリンタリストに、プリンタが加わります。BJ M70はMac OS Xマシンに直接接続したときに作られるプリンタで、Canon BJ M70がAirMac Extremeベースステーション側のものです。

以上でOKで、必要に応じて既定のプリンタにするなどすればいいのですが、プリントのシート(ダイアログボックス)では、プリンタの選択ポップアップメニューで、Rendezvousプリンタという選択肢が増えています。ここでいきなり選択することもできるようですから、設定はもっと楽だってことになります。

Mac OS X Server 10.2.4の変更点

(2003/3/28)少し前になりますが、Mac OS X 10.2.4がリリースされました。修正点はいろいろありますが、とりあえず、目で見えるところをフォローしておくと、まずは、オープンディレクトリアシスタントです。というより、パスワードサーバの対応プロトコルとして、WebDAV Digest-MD5、つまり、WebDAVでログインするときに暗号化されたパスワードに対応したということです。

それから、ワークグループマネージャの共有設定でのプロトコルタブでWindowsファイル設定を選択した場合、oplockを使用するstrict lockingを使用するという2つのチェックボックスが増えています。oplockはOppotunistic Lock(便宜的ロック)で、ファイルを開いたときクライアント側にキャッシュをするような形式でアクセスを行います。基本的には処理速度は向上しますが、変更結果が常に反映されているわけではないことや、ロックがかかる時間が長くなることになるので、利用形態によっては面倒になるかもしれません。strict lockはファイルサーバへのファイル利用があると原則的にロックを行う方式で、通常は遅くなります。smbプロトコルでは、ロックは明示的にアプリケーションから行う必要があるのですが、ロックをしないでファイルを開いたりすると、複数の利用者が同時に編集にかかれるということにもつながり、また、マルチユーザ機能が働かない場合もあるでしょう。Windows版のMicrosoft Wordでファイルを開く場合に問題になるので、そのための機能がstrict lockだとされています。

Mac OS X Serverでテキストファイルからユーザをインポート

(2003/3/28)Mac OS X Server 10.2.4で試してみましたが、ワークグループマネージャで、テキストファイルからユーザを登録してみました。10.2の日本語版管理者ガイドでは178ページあたりからと、付録Aの情報をもとにして…ってことになりますが、ユーザの初期パスワードを作成するためには、UNIX形式の暗号化した文字列が必要です。書籍を見ると、「cryptコマンドで」と書いてあったりしますが、このコマンドはMac OS Xには含まれていないみたいなので、perlを使って暗号化をすることになります。たとえば、ABCabcというパスワードを、暗号化する場合は次のようなコマンドをターミナルに入れればいいでしょう。

perl -e 'print crypt("ABCabc", "12")."\n";'

すると、「12PidGWj9RXlY」というテキストが生成されるので、それをパスワードとして使えばいいわけです。この形式に変換されるので、MD5ではなくDESによるライブラリを使っていることがわかります。ここで、2つ目の引数はSALT(塩)と呼ばれる暗号化の手がかりとなるものです。(検索エンジンで「crypt パスワード」と入力すればいろいろ情報が得られるでしょう。)この桁を見れば、DESで暗号化されたものと分かります。

たとえば、次のようなテキストファイルを作ります。(改行で改行をします。そこまでは1行で続けます。)

0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Users 5 RecordName Password UniqueID PrimaryGroupID RealName改行
test1:12PidGWj9RXlY:3001:20:TestUser1改行
test2:12PidGWj9RXlY:3002:20:TestUser2改行

このファイルを、ワークグループマネージャで読み込めば、基本認証で、ユーザ名がtest1およびtest2のユーザが作成されます。パスワードは「ABCabc」となっているはずです。

ユーザがたくさんある場合には、perlのスクリプトで処理すればいいのですが、たとえば、こんな方法があるかと思います。1行に、パスワードのもとのテキストだけがあるファイル(ここではtext.txt)があるとします。Excelでユーザ一覧を作るとすれば、特定の行だけを抜き出したテキストファイルを作ればいいでしょう。そして、以下のようにperlを通すと標準出力に暗号化したパスワードが1行ずつ配置されたものが出力されます。適当にリダイレクトするなり、ターミナルからコピー&ペーストすればいいでしょう。このくらいなら、スクリプトのファイルを作るまでもないというところですね。

perl -n -e 'chomp; print crypt($_,"12")."\n";' < test.txt

ワークグループマネージャでは、ファイルメニューの読み込みから、テキストファイルを指定します。上記のファイルの場合、ファイルの内容を定義する行が最初にあるので、レコードフォーマットは、ファイルのレコード定義を使うを選べばいいでしょう。場所のポップアップメニューで選択しているドメインに読み込まれます。

パスワードサーバベースでのユーザのインポートの方法が分かりません…。研究中です。

(2003/3/30)ガラパゴシステムズの荻野さんから、この件について指摘をいただきました。

テキストファイルに1行ずつパスワードを入れたファイルから、cryptの暗号化パスワードを作成する場合、前記のperlのコマンドだと、全部が同じ「12」というsalt値になってしまうため、同じパスワードの場合crypt後の値も同じになってしまい、他人のパスワードが分かってしまうというケースがあります。そこで、salt値をランダムに生成する手軽な方法としては、OpenSSLがあるそうです。

openssl passwd ABCabc

このコマンドで、パスワード「ABCabc」に対応するcrypt値が得られます。salt値もコマンドを実行する度にランダムに利用されるので、このコマンドを使うのがいちばん便利でしょう。

テキストファイル(以下の例ではtest.txtというファイル)からだと次のコマンドでいいですね。これだと、同じパスワードでも異なるcryptした結果が得られます。

openssl passwd `cat test.txt`

さて、パスワードサーバベースのユーザのインポートですが、いったん基本のユーザを作って、それをワークグループマネージャで選択し、パスワードのタイプをまとめて「パスワードサーバ」に変更すればいいかと思ったのですが…、残念ながら、そのとき、シートで新たにパスワードの設定を要求されます。複数のユーザを選択していても、パスワードの要求は1回だけです。従って、各ユーザに同じパスワードが設定されてしまうようです。これではまったく意味がないですね。

cryptパスワードは一方向性であり、入力されたパスワードが合っているかどうかしかチェックできません。つまり、cryptの結果から元のパスワードは逐一チェックする以外に方法がないわけです(このあたりは荻野さんより指摘をいただきました)。そのため、基本→パスワードサーバという移動で、基本のパスワードをそのままパスワードサーバに移行させることはできないということになります。パスワードサーバでは、APOPのような「パスワードの文字列」が必要なサービスもあるので、やはり基本からパスワードサーバへの移行もできないでしょうということです。

Mac OS X Server 10.2.3のAdmin Guideによると、ユーザ情報のテキストファイルでは、「AuthenticationAuthority」というフィールドがあって、基本認証なら「;basic;」という書式で受け付けられます。パスワードは、cryptしたパスワードの文字列を指定します。パスワードサーバの場合は「;ApplePasswordServer;HexID, server’s public key IPaddress:port」となっていますが、結局、HexIDなどの後半のパラメータの指定方法がどこにも記載されていないため、やはりパスワードサーバベースのユーザーをテキストファイルからまとめて登録するという方法は明らかになっていないと言えるでしょう。

(2003/4/1追記)パスワードサーバベースのユーザ登録を一括して行う方法が見つかりました。dspasswdというMac OS X/Server向けのコマンドラインツールを発見しました。Rajpaul Bagga氏によるもので、オープンソースとして配布されています。ダウンロードすると、ソースとプロジェクトがセットになっているので、Developer Toolsをインストールしておけば、すぐにコンパイルしてコマンドを作成できます。

dspasswdコマンドによって、ディレクトリにある特定のアカウントを基本認証からパスワード認証に変更することができます。

引数なしで指定するとヘルプを表示します。

[xserver:~] admin% ./dspasswd
You haven't specified enough arguments.
dspasswd (version 1.1)
Usage:
dspasswd [-l <node name>] <command string>
where <command string> is one of:
<username> <old password> <new password>
-p <PWS admin user> <admin password> <username> <new password>
-a <PWS admin user> <admin password> <username> <new password>
-o <PWS admin user> <admin password> <username> <new policy string>

-l <node name> <node name> is an Open Directory Node Name (default is local)
-p Convert a user's password from basic to Password Server based
-a Set a user's password by authenticating as a PWS administrator.
(Does not require user's old password.)
-o Specify a policy string change.

If you are root and have specified the local node (the default)
and the user is using Basic authentication,
then an old password for the user is not required

たとえば、test1というユーザがいて、そのパスワードを「ABCabc」にしたいとします。まず、基本認証でのtest1というユーザを作成します。パスワードサーバ〜つまりドメインの管理者がadminで、そのパスワードがadpassだった場合、次のコマンドで、test1のパスワードは、パスワードサーバを使うタイプに変換されます。

[xserver:~] admin% ./dspasswd -l /NetInfo/root -p admin adpass test1 ABCabc
User created in Password Server

カレントディレクトリにあるdspasswdコマンドを動かしています。-lオプションでディレクトリノードを指定しますが、これは、ワークグループマネージャの場所のポップアップで見ているパスを指定します。パスワードを基本からパスワードに変更するには-pオプションに続いて、「管理者アカウント」「管理者パスワード」「ユーザ名」「新しいパスワード」の順番に指定します。基本認証のパスワードは指定しなくてもかまいません。

これをバッチファイルとして作っておいて実行すれば、パスワードサーバを利用するユーザを大量に設定することができるでしょう。つまり、まずは基本認証のアカウントを作っておき、さらに各アカウントをパスワードサーバベースに移行するわけです。

(2003/6/5追記)パスワードサーバベースのユーザを登録するためのテキストファイルを作り、それをワークグループマネージャで登録させる方法が分かりました。Mac OS X Server 10.2.3のAdmin Guideにありました…見たつもりなんだけど見落としておりました。

ワークグループマネージャで読み込ませるテキストファイルでの1行目では、AuthenticationAuthorityフィールドではなく、AuthMethod(dsAttrTypeStandard:AuthMethod)というフィールドを作ります。つまり、1行目のフィールド定義では、この文字列を使います。そして、2行目以降のユーザレコードでの対応するフィールドには、「dsAuthMethodStandard\:dsAuthClearText」と記述しますが、この文字列は常に固定です。そして、Passwordフィールド(dsAttrTypeStandard:Password)にはパスワードの文字列を生で書きます。本来は「dsAuthMethodStandard:dsAuthClearText」ですが、コロンはフィールド区切り文字なのでエスケープしているというところですね。

で、こうしたユーザ管理を簡単に行えるユーティリティ、Passengerってのを見つけました。そんなに高くはないので、たくさんのユーザを登録し管理しないと行けない人は、必須のユーティリティでしょう。いずれにしても、ちゃんとやり方あったんだ…。というわけで、この問題、完全に解決したと言えるのではないでしょうか。

(2003/8/15追記)パスワードサーバベースのユーザをテキストファイルから登録する方法が、Knowledge Baseの文書として掲載されていますね。

スタートアップ画面の画面ショットを撮影する

(2003/3/18)Mac OS X 10.2になって、screencaptureというコマンドが加わり、画面ショットをコマンドで作成できるようになりました。もちろん、リモートでログインして、操作中の画面を別のマシンから画面ショットするようなこともできますが、「これしかない」という用途がありました。ログイン画面の画面ショットです。ログイン画面の画面ショットは、10.1までは、Command+Shift+3によって、ルートのホーム(/var/root)のPicturesフォルダに残っていましたが、10.2ではログイン画面では、Command+Shift+3が機能しません。

というわけで、画面ショットをとりたいマシンで、あらかじめ、リモートログインを可能にしておきます。もちろん、システム環境設定の共有で設定します。そして、ログイン画面になったところで、そのマシンにsshでログインします。そこで、sudoでscreencaptureコマンドを実行します。ファイル名を省略するとヘルプを出します。

[Bondi-iMac:~] imac% sudo screencapture
screencapture: illegal usage, file required if not going to clipboard
usage: screencapture [-icmwsWx] [file] [cursor]
-i capture screen interactively, by selection or window
control key - causes screen shot to go to clipboard
space key - toggle between mouse selection and
window selection modes
escape key - cancels interactive screen shot
-c force screen capture to go to the clipboard
-m only capture the main monitor, undefined if -i is set
-w only allow window selection mode
-s only allow mouse selection mode
-W start interaction in window selection mode
-x do not play sounds
file where to save the screen capture
[Bondi-iMac:~] imac% sudo screencapture startup.pdf
Password:

つまり、screencaptureに続いてファイルを指定しますが、作成されるファイルはPDFファイルなので、ファイル名の拡張子としては.pdfとしておきます。上記の作業で、ログインしたアカウントのホームに、startup.pdfという名前で、ログイン画面が残ります。なお、screencaptureコマンドは普段はsudoでなくても利用できますが、スタートアップ画面についてはsudoでルートで実行しないといけないようです。

PDFサービス

(2003/2/23)Mac OS X 10.2.4の新機能に、PDFサービスがあるそうです。印刷のダイアログボックスに「PDFとして保存」ボタンが従来からありましたが、そこのボタンをカスタマイズできるようになりました。/Library/PDF Servicesフォルダ、ないしは、ホームの中の/Library/PDF Servicesフォルダを検索して、項目があればそれに対応したメニューが出てきます。これらのフォルダはFinderで自分で作成する必要があります。もちろん、印刷可能なアプリケーションは、PDFサービスの機能に何もしないでも対応します。

ここで、PDF Servicesフォルダに、アプリケーションのエイリアスを作成すると、作成したPDFファイルをそのアプリケーションで開きます。ファイル自体は/tmpフォルダに作成され、ファイル名はPrint Job.pdfとなります。したがって、さらに同じようにアプリケーション名を選択すると上書きされますし、再起動時には/tmpフォルダはクリアされるので、いずれにしてもファイルは残らないものと思った方がいいでしょう。

また、フォルダのエイリアスをPDF Servicesフォルダに作成しておけば、そのフォルダにPDFを即座に保存するので、いちいちファイル名を指定する必要はありません。ハードディスク内のフォルダのエイリアスはもちろんですが、たとえば、.MacのSitesフォルダを指定しておくということも可能です。つまり、Webサイトに一気にPDFファイルを作成できます。なお、.Macの場合はボリュームのマウントがなされていない場合には、システム環境設定でアカウントを設定していても、アカウントとパスワードを再度たずねられます。それを避けるためには、ボリュームをマウントしておくのがいいみたいです。PDFファイル名は、文書ファイル名に.pdfの拡張子がついたものになるようです。

さらに、PDF Servicesフォルダには、シェルスクリプトやコンパイル済みのAppleScriptを置くことができます。いずれも、PDFファイルのタイトル、CUPSオプション、そして作成したPDFファイルへのパスが引き渡されます。シェルスクリプトの場合には、引数で渡されますが、AppleScriptプログラムへはイベントとして渡されます。前記のリンクにサンプルのプログラムがあるので、プログラムを作る人にはすぐ分かることだと思います。

こうしてプログラムまでできてしまうので、ワークフローへ発展できるというのがもくろみでしょう。たとえば、PDFをつくって即座にメールするというのはすぐに考えつくことですし、つくったPDFをデータベースに登録ということもできそうです。また、拡張が比較的簡単なので、ちょっとおいしい機能かと思います。少なくとも、フォルダを指定できるのは非常に便利ですし、PreviewとAcrobat Readerを使い分けたい場合も有効なので、PDFをよく作成する人はすぐにでもPDF Servicesフォルダを作ってためしてみましょう。

SafariとパーソナルWeb共有

(2003/2/17)Mac OS X 10.2.4になって、パーソナルWeb共有がRendezvous対応しました。さっそく試してみました。2台のマシンですが(笑)。1台のマシンは以下のように、Rendezvous名とコンピュータ名を設定しています。実は名前の通り、iMac Rev.Aなんですが、こうしたネットワーク実験用にまだまだ現役で活躍しています(さすがに、96MBでは動きが悪いですけど…)。

さて、そのiMacには、2人のユーザが登録されています。インストール時に登録した、「Bondi iMac」はユーザ名は「imac」になっています。もうひとり、あとから追加したSomeoneさんは、ユーザ名もsomeoneさんです。

別のMac(実際には12" PowerBook G4/Safari update済み)で見てみましょう。SafariのアプリケーションメニューにあるPreferencesを選択し、初期設定ウインドウでBookmarksを選択します。そうすると、メニューやブックマークバーにRendezvousを含めるというチェックがあるので、それをチェックします。

すると、ブックマークバーやあるいはブックマークメニューに、Rendezvousメニューが出てきます。そして、別のマシンで公開されているパーソナルWeb共有の名前が出てきています。どうやら3つの選択肢がありますので、それぞれ見てみましょう。

まず、いちばん下の「Bondi iMacのコンピュータ」は、アドレスとしてRendezvous名に指定されたものが利用されて、アクセスします。Rendezvousメニューに出てきているのは接続先のコンピュータ名ですね。つまり、これは接続した先のコンピュータのWebサイトとも言うべきところで、実際には/Library/WebServer/Documentsが公開されています。

次に「Someone's Web Site」をRendezvousメニューから選択すると、そのマシンの「~someone」のディレクトリにアクセスに行きます。つまり、Someoneのアカウントの「サイト」フォルダの中身が見ているということです。

次に「Bondi iMac's Web Site」をRendezvousメニューから選択すると、アカウントBondi iMacの「サイト」フォルダが見えています。

こうして、Rendezvousによって、Webで文書を公開していることが、別のブラウザに分かります。アドレスをどこかのサーバに登録していなくても、ネットワーク内で自動的にWeb公開しているMacを見つけて、Rendezvousメニューにその名前を登録します。そのとき、コンピュータ名とそのコンピュータに登録されているそれぞれのアカウントの名前が出てくるようになっているという具合ですね。そのように、パーソナルWeb共有がサービス提供先として公開するのでしょう。

いずれにしても、パーソナルWeb共有は、確かに便利とは言っても、アクセスさせる方法がいまひとついい具合に行きませんでした。ですが、Rendezvous対応することで、ブラウザからメニュー1つで呼び出せるので、使い方の面でも若干の改良がされたと言えるでしょう。

AirMac Extreme対応の管理ツール

(2003/2/17)PowerBook G4(12")の購入にともない、AirMac Extremeは最初から入れておきました。ばらしは趣味ではないので(笑)、おかげでまだExtremeのハードウエアはお目にかかっていませんが…。

それで、あいかわらずアイオーデータのアクセスポイントを使っていますから、802.11gモードでは使えません。AirMacベースステーションも値段も安くなってそろそろ買い時かと思うところですが、とりあえず、ある仕事で必要なので一瞬だけ借りて、画面をざーっと撮影しました。そのうち整理します。そちらのページでは管理ツールの画面を並べてあります。

なお、AirMac Extreme対応ベースステーションの設定は、Mac OS X 10.2ではAirMac 3.0.1、Mac OS 10.1.5ではAirMac 2.0.7を使うようです(Tech Info Library 107432JC)。Mac OS X 10.2にはAirMac 2.1.1というバージョンの管理ツールが入っていますが、ベースステーションに付属するCD-ROMから3.0.1をインストールして使うようになっています。

Mac OS X 10.2でのAirMac

(2003/2/17)Mac OS X 10.2でのAirMacはいくつかの点で変化があります。まず、パスワードの入力のところで、パスワードの形式を選択できるようになっていますが、AirMac Basestationを使う限りは、暗号化を40ないしは128ビットで設定しても、「パスワード」を選択して、ベースステーションに設定したパスワードをそのままキータイプします。

「パスワード」以外の選択肢は、AirMacベースステーション以外のアクセスポイントとの互換性を取るためと思われます。たとえば、以下はうちで使っているI/O DataのWN-B11/AXPというアクセスポイントの設定です。ちょっと古い製品で、Wi-Fi規格品ではない40ビット暗号化までのものです。ここで、ネットワーク40ビット暗号化してキーとして「パスフレーズ」を選択すると、一般的な「dogbow」などの単語をパスワードに設定できますが、それではMac OS Xではどの項目を選択しても、このパスワードを入れることはできません。そこで、16進パスワードを選択してランダムに指定すると、以下のようなパスワード(キー)が生成されて設定されます。この設定をアクセスポイントに記憶させます。そして、Mac OS Xの側では、パスワードの形態として「40ビット16進」を選び、パスワードでは、これに対応するものとしては「6B7B347535」と入力すればきちんと接続ができます。なお、システム環境設定でパスワードを入力する場合は、パスワードの選択肢はありませんが、「6B7B347535」とパスワード欄に入力すればいいみたいです。なお、16進、ASCIIいずれを選択しても、入力できる桁数は決まっているみたいです。AirMacベースステーション以外の方は、こうした手段で適合できるようにすればいいでしょう。

なお、Mac OS X 10.2では、システム環境設定の「ネットワーク」のAirMacのタブは、少し選択肢が増えています。10.1までは優先するネットワーク名の選択肢かできませんでしたが(書籍はp283ページ)、10.2では、以下の図のように、最も信号が強いネットワークや、あるいは最近使用したネットワーク、特定のネットワークに接続という選択肢があります。また、チェックボックスで、コンピュータ同士のネットワーク(アドホックモード)を作成できるかどうかも指定できます。

利用する人の好みもありますが、ネットワークのパスワードは、キーチェーンに記憶できるようになっているので、パスワードをキーチェーンに覚えさせておいて、ここでは「最近使用した利用可能なネットワークに接続する」を選び、移動した先々でAirMacメニューからネットワークを手で選択して接続するのが1つのお手軽なやり方ではないかと思われます。

残念ですけど…

(2003/2/17)たいへん残念なことですが、『極めるMac OS X』をMac OS X 10.2向けに改訂するということはなくなりました。出版直後から改訂したいことは伝えていたのですが、改訂版の出版は実現できませんでした。そこまでどーっと売れなかったってのがあるのでしょうね…。次のメジャーバージョンアップのときに機会があるかどうかです。というわけですので、10.2版はありませんので、申し訳ないです。なるべくこちらのサイトにいろいろな情報を掲載しますので、ぜひとも10.1版ではありますが、書籍をお買い求め下さい。よろしくお願いします。

natdが利用できるポート

(2003/2/17)インターネット接続共有が標準搭載されたMac OS X 10.2ですので、あえてnatdを動かすのはMac OS X Serverか特殊な場合だけになるかと思いますが、たまたま特殊な事例に当たりました。あるMac OS XマシンでNAPTだけをしたいけど、DHCPは動かしたくないということがあったのです。インターネット接続共有は、DHCPも稼働します。でも、DHCPは動かしたくなかったので、コマンドを入力しました。動作としては、AirMac(en1)でプライベートのネットワーク(DHCPでアドレスを取ってインターネットへつながる)に接続し、Ethernet側(en0)の複数台のマシンを外部とやりとりできるようにするというものです。そこで、Mac OS X Server 10.2と同じ方法で、NAPTを動かすため、次のようにコマンドを入れたわけです。

sudo -s
sysctl -w net.inet.ip.forwarding=1
/usr/sbin/natd -dynamic -interface en1
/sbin/ipfw -f flush
/sbin/ipfw add divert natd all from any to any via en1
/sbin/ipfw add pass all from any to any

これだとなぜか動きませんが、原因は、共有するポート(ここではen1)が利用可能な通信ポートで最優先になっていないといけなかったのです。設定では「内蔵Ethernet」の後に「AirMac」だったわけですが、これらの順序を入れ替えれば、ちゃんとNATできるようになりました。

インターネット接続共有でも、接続されていて優先順位が高いポートを、他のポートにつながれたマシンから共有できることは確認済みだったので、さすがにすぐに判断できましたね。

マルチセッションCDの作成

(2003/2/10)Mac OS X 10.2では、CD作成の機能がいろいろ変わっていますが、マルチセッションのCD作成ができるようになったのが機能的な大きな違いでしょう。通常のCDは1つのボリュームだけがありますが、マルチセッションのものは複数のボリュームを1枚のCDに含めることができます。CD-Rにバックアップする時など、ファイルが300MBだったら残りの300MBあまりの領域はもったいないということになりますが、マルチセッションCDにすれば、300MBを書き込み、別の機会には200MBを書き込み、最後に100BMほど書き込んだらだいたいいっぱいになったのでそれでおしまい…といったことができます。管理うんぬんはありますが、CD-Rを効率的に使えると考えればいいでしょう。

マルチセッションのCDを作成するには、イメージファイルを用意する必要があります。つまり、イメージファイルを複数個CDに書き込むということです。また、このイメージファイルは、読み込みのみになっていなければなりません。読み書き可能なイメージファイルを書き込むと、新たなボリュームセッションの書き込みができなくなり、そこで終わってしまいます。読み書き可能なイメージファイルは、Disk Copyの変換機能を使って読み込みのみにすればいいでしょう。なお、Disk Copyで、フォルダの内容をイメージファイルにする機能がありますが、それを利用すると問題なく読み込みしかできないイメージファイルが作られます。

あらかじめ、ボリュームのイメージファイルを用意しておいて、以下のような手順でマルチセッションのCDを作成します。

  1. Disk Copyを起動します。ファイルメニューのイメージをCD/DVDに作成(Command+B)を選択します。
  2. ボリュームとして作成するイメージファイルを選択します。
  3. ディスクを作成のダイアログボックスが表示されます。ここで、左上の▼マークをクリックして詳細オプションを表示させ、追加の書き込みを許可するのチェックボックスをオンにします。通常はディスクの取り出しを選択しておくのが良いでしょう。
  4. CD-Rをドライブに挿入して、ディスクを作成ボタンをクリックします。
  5. 最初のイメージファイルが書き込まれて、CDがイジェクトされます。
  6. 新たなイメージファイルをセッションとして書き込むときも、1〜3の手順を踏みます。書き込むボリュームが最後になった場合は、追加の書き込みを許可するのチェックボックスをオフにして書き込みます。
  7. 2つのボリュームが含まれるマルチセッションCDをドライブに挿入すると、それぞれのボリュームがCDのアイコンでデスクトップにマウントされます。

上記のボリュームでPictyDVDとなっていますが、PictyDVDのアプリケーションをコピーしたわけではありませんから、念のために記載しておきます(某サイト向けの原稿のフォルダですよ)。

イメージファイルが、読み書き可能なのか、読み込みのみなのかは、Disk Copyのウインドウで確認できます。イメージファイルをドラッグ&ドロップすれば確認できますが、その場合マウントもしてしまいます。

なお、読み書き可能なディスクの場合、基本的には追加の書き込みを許可するのチェックボックスはグレーになるのですが、ディスクの作成のダイアログボックスの右上にある▼をクリックして、詳細表示の表示と非表示を切り替えると、チェックボックスがアクティブになってチェックできます。その場合は次の機会に同じCDには追記できなくなり、マルチセッションのCDになりませんから注意しましょう。

それから、CDを挿入したときに、Disk Copyを起動するように設定する必要は特にはないでしょう。セッションボリュームの追記のときに、そのつど、Disk Copyを起動してイメージファイルを選択してから、CD-Rディスクをドライブに挿入すれば問題ありません。

カーネルパニックが日本語で出ている

(2003/2/9)Mac OS X 10.2になってから、カーネルパニックの画面が変わりました。変わったのは気付いていたのですが、なかなかパニックが出ないし、出てもセミナー中だったり(ほんとに…)して、画面を撮影する機会がなかったのですが、やっと、落ち着いてパニックを撮影できる状態になりました。ちゃんと日本語でもパニックメッセージが出ているのですが、英語、フランス語、ドイツ語と出ているようで、これはグラフィックスなんでしょうか? でも、エラーコードとホストのIPアドレスらしきものも出ているので、やっぱりテキストして合成しているのかもしれません。あまり見たくない画面なのではありますが(笑)、こういうところまできっちり作り込んできているのだなと印象づけられます。主たるメッセージ部分の拡大写真も掲載しておきましょう。

書籍では、p166からカーネルパニックを解説しています。Mac OS X Public Betaのときに発生したカーネルパニックの画像を掲載しましたが、10.1の段階ではもっと違った内容が表示されていました。たぶん、レジスタとかスタックとかが表示されているのでしょうけど、カーネル系のプログラマの方には役に立っていたのでしょうか? Mac OS X 10.2ではそうした内部情報がカーネルパニックでほとんど出てこないのは、表示されてもあまり意味がないと判断したのかもしれません。必要な人は別の手段でもっと知りたいことがあるのかもしれません。

今さらながら、Mac OS X 10.1をインストールする

(2003/2/5)そんな必要があるのかと思うかもしれませんが、原稿を書く仕事で、ちょっと10.1の調査が必要になる場合がありそうだったので、FireWireの拡張ドライブにインストールしてみました。だけど、ちょっとはまったので、記録として書いておきましょう。10.1のリリースは、2001年9月だから、もう1年半も前のことで、ソフトウエアアップデートが当時からの時系列で動いてくれません。結果的にアップデートは手作業でしなければならないです。手順的には次のようになります。

  1. Mac OS X 10.1をインストールします。
  2. いちおう、通常通り起動します。ここで、ソフトウエアアップデートがかかりますが、ここではアップデートしません。
  3. Security Update 10-19-01 をダウンロードします。
  4. Installer アップデート をダウンロードします。
  5. Mac OS X 10.1.5 統合アップデート をダウンロードします。この3つを先にダウンロードしてから以下の作業に移るのがいいでしょう。
  6. まず、Security Update 10-19-01 を適用して、再起動します。再起動後、なぜかDockが出ないのですが、ひるまず(笑)、Installer アップデートMac OS X 10.1.5 統合アップデート を適用します。(そのために先にダウンロードしておくのです。)
  7. 自動的に再起動します。その後は、Mac OS X 10.1.5のシステムが正しく稼働しているはずです。

実は、10.1オンリーのインストールディスクは持っていないので、10.0をインストールする必要があったりしました。しかも、10.0.0からいきなり10.1にアップデートした場合、そのまま上書きすると何かおかしいので、これはフォーマットしてインストールする方が無難みたいです。後々のことを考え、動いている10.1.5のボリュームのイメージファイルを作ってしまいました。圧縮して作ったので、サイズは503MB、そのままCD-ROMに残せますね〜。

PowerBook G4 (12インチ)買いました

(2003/2/4)実は、2003/1/8にあったMacworld Expoの基調講演の直後、未明にAppleStoreでとにかく注文しました。メモリは考えた末、+256MBにして、コンボドライブタイプです。今まで使っていたPowerBook G4の初期モデル500MHzは1年半、メインマシンとしてがんばってくれました。余生は無停電電源付サーバとして働いてもらう予定ですが(笑)。だけど、メモリは128MB減るし、画面も狭くなる12インチをとにかくメインに置き換えることにしました。クロックとHDD容量が増えるのがせめてものというところでしょうか。実は、購入する時、One-Click設定をしていたのですが、これをオンにしていると、実際にオーダーが入るのが1時間後になるので、それで出遅れたみたいです。「なるべく早く欲しい」ときにはOne-Clickをオフにするべきかと思います。

とりあえず、体感的にはスピードはあまり変わらないかと思いますが、やっぱりバックグランドでメールを落としているような場合などの重さは緩くなりました。ただ、アプリケーションの起動がなんか遅いので、update_prebindコマンドを入れてみたら、何度やっても途中でBus Errorで落ちます。プリバンドは完全でないかもしれません。

初期状態で、メニュー右側のアイコンメニューは、Bluetooth、AirMac、ボリューム、バッテリ、時計が並んでいます。Bluetoothが最初からあるというのは、なんか狙っていますね。それで、ここ一発、Bluetoothで接続が可能な携帯電話を入手するか…と思って調べると、定価5万円とかそんな機種が2機種ほど見つかっただけです。実売はまだチェックしていませんが、うーん、ちょっとまだ時期尚早かも。ただ、新しいPowerBook G4は、PCカードスロットがありません。個人的にはこのところはそれほどモバイル需要はないので、まあ仕方ないですから、とりあえずは、またSliperXというデカイやつを引っ張り出そうかと思っています。

あと、システムは、Mac OS X 10.2.3(6H28)ですから、パッケージからアップデートした10.2.3(6G30)よりもバージョンはあがっています。iMovie 2.0.1、iPhoto 1.1.1が最初から入っていたので、当然ながら起動した瞬間にアップデートの嵐です。QuickTime 6.1へのアップデートも行われました。

さて、パームレスと部分ですが、やっぱり熱い…。これは、初期のVAIOを思い出す熱さです。夏はかなり厳しいかもしれません(私は空調に弱いので、クーラをあまりかけないけど、今年はマックが汗だくになるなぁ)。だけど、宅急便到着直後は、この時期なんで極限まで冷えきった金属板になっていて、逆に冷たくてさわれないほどでした(笑)。

P.S. 1999年に購入したPower Macintosh G3(6GB/300MHz) をノジマに売りに行きました。ずっとサーバとして使ってい時期が長いので、なんと、ボディの透明シートはほとんどそのままです。ですが、足のところの半月型のプレートがとれているなど妙に使い込んであったりするのですが…。Mac OS X Server 1.0を動かして、あれこれ声高にグチってしまった懐かしいマシンです。18,000円で売れました。買い値のほぼ10%、ってことは減価償却の残存価額じゃないすか…。

(2003/2/5)さて、買ったばかりのPowerBook G4の「アプリケーション」フォルダにはInstallersフォルダがあって、そこにはDeveloper Toolsのインストールパッケージがあります。もちろん、インストールしてみましたら、なんと、December 2002版のDeveloperToolsでした。つまり、最新版のデベロッパツールです。ちなみに、このInstallersフォルダは、新しいMacを買った場合だけで、Mac OS X 10.2のCD-ROMでインストールやアップデートをした場合には含まれていないですね。

バッテリでどれくらい持つかを見てみました。スペック上は5時間となっていますが、うーむ、3時間程度でした。もちろん、100%に充電しています。ただ、Microsoft Wordという常にCPUを10%以上占有するアプリケーションを動かしていたからかもしれませんが、単に原稿をチェックしていただけで、このくらいです。かなり少なめに見積もらないといけないかなと思います。

ところで、私が使っていたPowerBook G4の初期モデルは、ハードディスク音がうるさいことで有名ですが(笑)、さすがに新しいモデルで静かになりました! 実は、Windowsマシンも最近、静音タイプのファンのマシンに変えたので、Windowsのデスクトップよりも古いPowerBook G4はうるさいほどでした。しかし、音があまりに静かなのって、電源をオフにして分かるもので、古いPowerBook G4の電源を落とすと、シーーーーーン!となって耳がキーーーーーーン!ってなりそうでした(笑)。

前日のレポートではレスポンスはあまり変わらないように書きましたが、使ううちにそうでもないような気がしてきました…。というのは、キーがちょっと重い感じとさらに深い感じがするのと、マウスのクリックボタンがちょっと重いからです。古いPowerBook G4の方がもうガタガタなんで、絶対的に硬くなったのかは不明ですが、そうしたわけで、手触りの違いのようです。こうしてGoLiveでキータイプするような作業は目に見えて前のマシンより軽く感じます。

IP Over FireWireを使ってみました

(2003/1/5)FireWireポートからのネットワークを実現するIP Over FireWireがAppleから配布されています。いや、正しくは、配布されていた…ですね。一般公開からいきなりADC会員のみになってしまったのですが、Preview Releaseってことで、まだ実用的に使えるものではないということが理由のようです。ADC会員向けのものは機密事項ですが、一度一般公開されたものですので、テクニカルな詳細を出さなければ公開可能と思いますので、軽くですが、紹介しましょう(問題があったら、指摘してください)。

IP Over FireWireは、ひとことで言えば、FireWire端子がEthernetの端子と同じように、そこを経由してネットワーク接続ができるようになるということです。Ethernet端子からは一般にはハブに接続しますが、FireWireからも、FireWireのハブで複数のコンピュータのネットワーク化ができます。また、FireWireケーブルでの直結も可能です。Ethernetの場合、従来の端子では直結はクロスケーブルでしたが(最近のマシンは自動識別されるのでクロスケーブルは不要ですね)、FireWireの場合は、普通のケーブルで直結もハブ接続もできる模様です。

そして、IP Over FireWireはMac OS Xにインストールするソフトウエアですが、インストールすると、新たにEthernet端子が増えると考えればいいです。たとえば、PowerBook G4にAirMacカードを入れていると、en0がEthernet端子、en1がAirMacですが、en2がFireWire端子となります。システム環境設定の「ネットワーク」でもちろん設定しますが、IP Over FireWireが組み込まれていれば、新たなポート「FireWire」が自動的に追加されているはずです。

この「FireWire」のポートに対して設定を行えばいいのですが、内蔵Ethernetと設定項目はまったく同じです。通常はIPの手入力かDHCPを使うことになるでしょうけど、PPPoEの設定もできてしまいます(まさか使わないでしょうけど〜でも将来はあるかもだったりして…)。

ただ、やはりPreviewだなと思う所は、ネットワークユーティリティですら、まだ、きちんと情報を表示することができません。IPを手入力したところですが、リンク速度やリンク状況はきちんと出ていませんし、パケット数なども0のままです。モデルとしてfw+は「FireWire」であることが分かるといった程度です。

手持ちの機材の関係で、Windowsマシンと直結してみました。たぶん、Mac同士でFireWire接続をして、どっちもDHCPにしておくと、RendezvousによってIPアドレスの設定とルーティング、mDNSの設定などができるので、169.254.xx.xxのIPアドレスが自動的に設定されるのでしょうけど、相手がWindowsだったら、どうもMac側はIPアドレスの設定がなされません。Rendezvous関連のレスポンスを待っているのかもしれません。Windows側はしばらく待つと、169.254.xx.xxのIPアドレスが設定されました。仕方ないのでMac側は手入力でとにかく接続しました。pingで確認したあと、Windowsマシンがファイルサーバとなっていたので、Macからログインしてファイル転送をしてみました。それで、時間を100BASE-TXと測定してみました。ケーブル上の理論的な転送レートは、FireWireは4倍です。ちなみに、Windowsマシン側は、リンク速度は400mbpsと出ています。だけど、ファイル転送の時間は、100BASE-TXに比べてFireWireの方が数倍(具体的な数字は出しません)かかってしまいました。やはりPreview Releaseなんで、パフォーマンスもチューニングされていないのが1つ考えられますが、Windows側の方も、同様にパフォーマンスが出ないのかもしれません。このあたりは、いろいろ接続実験をしないと分からないので結論はでませんが、いずれにしても、FireWireネットワークはまだまだ実用レベルではないかと思います。

ところで、Windows XPは、このFireWireネットワーク(あちらは「1394接続」と呼びます)は、すでに標準でサポートされています。IEEE1394自体もやはりいろいろな意味でWindowsシステムでは標準となっています。Windows 2000からサポートしていたことになっていますが、2000では接続できないディスクドライブがあったりといろいろ不都合がありました。しかしながら、XPではとりあえず今の所問題はありません。WindowsノートはけっこうiLink(ソニーにおけるFireWire)対応だったりしますが、デスクトップは比較的FireWireポートは持っていないです。だけど、2000円ほどのPCIカードを単に差し込むだけで、XPでは使えました(玄人指向のカードを買ってきて差し込むだけでOKでした)。ドライバのインストールも必要ありません。そのままディスクを使ったりネットワークをアクティブにすることができたということです。

さて、このIP Over FireWireですが、もちろん、Macノートを持ち寄ったその場で接続するということに使えるのはもちろんです。ただ、FireWireがあれば、Ethernetもありますので、その意味では別に今も変わりないと言えるでしょう。やはり、100BASE-TXの4倍の転送速度を持つネットワークが、本体側に新たな投資なくできる可能性があるというところが魅力ではないかと思います。もちろん、400Mbpsの性能をしっかり出してほしいのですが…。いずれにしても、Windowsも対応しているのであれば、ローカルなネットワークはFireWireで組むということも現実的でしょう。LANというよりも、デスク周りに近い範囲ですから、VLANでしょうか(Very Local Area Network〜笑)。AppleのFireWireのページによるとケーブルは4.2mまでOKです(原文は14フィート=4.27m、Knowledoge Baseの文書に寄ると、4.5mというケーブルがあるとも書かれています)。ですから、SOHOの場合だとひとつの部屋の中ならFireWireでOKというところかもしれません。あるいは複数のマシンを使っていて、巨大なファイルのやりとりがあるなら、そこはFireWire直結という選択肢もあり得るでしょう。

また、Ethernetカードを接続しないでも、ほどんどのマシンでネットワークは2ポートあることになるので、ネットワークを分離してNATを使いたい場合にももしかしたら手軽になるかもしれません。ただ、そうなると、無線とEthernetとFireWireと…ってかなりこんがらがります。

IP Over FireWireを使っている場合、FireWireの外付けハードディスクをネットワークで使っているハブに差し込んだらどうなるのかとか、いろいろな状況を想定しないといけません。少なくともビデオ処理に関しては、DVビデオを使う時にはFireWireのネットワークは使わない方がいいかと思われます。Ethernetはネットワークしか使えなかったのですが、FireWireは汎用規格なので、ネットワークを分離するという必要が出てくる可能性があります。そのあたりの運用がどこまで可能かはまだ未知数です。FireWireのハブを買ったら、いろいろ実験してみましょう。だけどやっぱり、FireWireが2ポートあるマシンが問題少なそうですね。

Mac OS X Server 10.2のパスワードサーバとG3マシン
(Adminパスワードの8バイトまで問題)

(2003/1/5)Mac OS X Server 10.2からは、ディレクトリサービスをある意味で大々的にサポートしていますが、その中の機能の1つがパスワードサーバです。パスワードサーバはSMBでの接続で利用されるもので、つまりWindowsマシン(Windows 2000やXP)からMac OS X Serverをファイルサーバとして使う時には必須のものです。ところが、Power Macintosh G3(300HMz/6GB/256MB)でそのパスワードサーバがなぜか起動しません。ログを見ていると、エラーログにはUnknown listener exception error.が出ていて、同時にアクセスログにはCaught signal 15が表示されています。サーバの起動時にパスワードサーバが止まっているのですが、ログのスタートから数分後で、何度かパスワード利用の処理をした後に止まっています。

それで、もちろん、フォーマットしなおしてシステムを入れ直し、最初のオープンディレクトリアシスタントできっちり設定をしたけどだめでした。10.2.3でも同様です。これだけならこっちの問題かもしれませんが、iMac Rev.Aがちょうど空いたので試しにインストールしてみましたが、やっぱりパスワードサーバだけが同じエラーメッセージで落ちます。ただ、Power Mac G4でパスワードサーバがきちんと動くことは確認できています。さすがに、2台あってどちらも同じ状態というのでは、これはやはり原因はG3ではパスワードサーバが動かないということじゃないのかと思います。ネットワークの状態が変とかいった原因があるかもしれませんが、192....のプライベートを使っている何の変哲もない個人宅ネットワークです。G4マシンを用意しないと使えないのかなぁ…。

(2003/2/17)Mac OS X Server 10.2でパスワードサーバが稼働しない理由がはっきりしました…。Ver.10.2.3で確認しました。インストールする時に、管理者をまず登録しますが、そのときに管理者のパスワードも登録します。たとえば、ユーザ名はadminなどとしてパスワードを登録するのです。その後に、オープンディレクトリアシスタントを使ってディレクトリサーバとパスワードサーバを起動しますが、その管理者アカウントをパスワードサーバに登録します。そのとき、パスワードが8バイトを超えれば(9バイト以上)、どうやらパスワードサーバ側でエラーを出し、管理者のアカウントはパスワードサーバに登録されません。結果的に、管理者は「基本」の認証だけになります。その後、ワークグループマネージャで管理しようとしても、管理者は基本認証でログインしているので、そのような低い権限のユーザがパスワードサーバにアカウントを作ることができません。従って、以後、誰もパスワードサーバを使ったアカウントを作れないという結果になってしまいます。すると、Windowsからもログインできませんね。

パスワードは8文字までが有効でしたが、8文字以上入力しても無視するだけでした。しかしながら、こうした基本認証とパスワードサーバ認証のはざまで、8文字のブロックがどこかにできているのではないかと想像されます。仮に9文字のパスワードを入力した後、改めていろいろやって、パスワードを変更して、ドメインを消してとかさんざんやったのですが、どうも復旧はできないのではないかという結論になりました。インストール時に長いパスワードを入れると終わってしまうというか…。

たとえば、9文字以上のパスワードを設定したら、インストール時のオープンディレクトリアシスタントでの設定はできるのですが、再起動後パスワードサーバだけが落ちます。そこで、これはwatchdog(サービスが落ちたら再起動してくれる監視デーモン)で生き返らせればというお話を某所で伺うことができたので、それではってことで、/etc/watchdog.confを書き直して再起動しました。ちなみに、PasswordServiceというプロセスの監視状態をoffからrespownに書き直します。そうして再起動し、さらにオープンディレクトリアシスタントで設定をしなおして再起動すると、確かにパスワードサーバは実行されます。だけど、管理者は基本認証のままなので、自分を含めて誰もパスワードサーバ認証に移行できません。もしかしたら、先にパスワードを短くしておいてから諸作業をすれば、きちんと移行できたのでしょうか? 私は結局、インストールからやってしまいましたが…。インストールのときは、もちろん、8バイト以下のパスワードを設定しました。

なお、より正確を期すために情報を残しておきますが、当初パスワードサーバが起動しない状態になったときは、パスワードは9バイトでした。そして、その後5バイトのパスワード(なんかバレバレ〜笑)だったら、うまく機能しました。よって、他の情報も含めて「8バイトがリミット」という推定をしていますので、その点はご勘案ください。

(2003/7/25追記)adminのパスワードを8バイト以内にしないといけないという問題は、Mac OS X Server 10.2.4で解決されているそうです。ただし、CDが存在するのは10.2.3ですが、今年になってから出荷されたXserveには10.2.4のCDが同梱されており、これだと問題はないということだそうです。

(2003/8/15追記)確認しました。Mac OS X Server 10.2.6のオープンディレクトリアシスタントでは、9バイトを越えるパスワードでも、管理者をドメイン管理者に移行することが正しくできます。結果的に、10.2.3のCDでインストールする時、オープンディレクトリアシスタントは、「一時的なパスワード」を選択しておいて、パスワードサーバの設定を行わないようにしておきます。そして、再起動をしてから先にOSのアップデートやドライバの追加を行います。そして、ネットワーク設定を固定した状態で、オープンディレクトリアシスタントを動かすのがいちばん安全な手段かと思います。

ワールドワイド印刷サービス…

(2002/12/25)我が家のMac OS X Server 10.2.3搭載のPower Macintosh G3は、YahooBBに接続しています。Ethernetを2ポートにしてネットワークを分離しNATを動かしているわけですが、当然一方のポートはグローバルアドレスです。で、プリンタの共有を始めました。Mac OS X Serverのプリントサービスは、PostScriptプリンタのみですが、USBプリンタについてはドライバがあれば、Mac OS Xにも共通にある「プリント共有」の機能で、共有できます。こうすれば、何台かのマックからも印刷できるしってことで、サーバマシンにつないで「プリント共有」をシステム環境設定でアクティブにしました。すると、なんと、ある日、いきなりプリンタが何もしないのに動きだし、誰かの年賀状の表書き印刷をどさっり始めました。表書きに差出し人がなかったので誰か分かりませんが、なんとなくご近所さんのような。ちなみに、うちはキヤノンのM70というプリンタで、プリント共有すれば、プリンタの機種名がとりあえず見えます。同じプリンタを持っている人だと間違えるかもしれませんが、ドライバも内蔵されているのでとりあえず認識して打ち出すことができるのでしょうね。ちなみに、ファイルサーバなどはアクセス権やらアカウントやら、それなりにセキュリティには考慮されていますが、プリントサーバ機能についてはどちらかと言えば甘いです。逆に、甘くしておかないと、オフィスなどで導入したときに面倒というのもあるかもしれません。

それにしても、うちでプリント共有していることを別のマシンのMac OS Xが自動認識するということでしょうか。これってRendezvous? そういえば、netstat -rを見ても、YahooBBの利用者相手と思われる先にルーティングが追加されているので、やっぱりYahooBBの他の利用者とはどうやら同一サブネットと認識するみたいですね。うちの収容局は浦和中尾局です。いずれにしても、LPRとかAppleTalkって何かしら制約があり、LPRだけだとブラウズができないとか、AppleTalkってローカルオンリだということで、プリンタの存在が自動的に分かるようにはなっていないわけですが、Mac OS Xはちょっと出来過ぎではないかと思います。

ということは、もしかしたら、ご近所さんとiChatできるとか? ということで、サーバでiChatを動かして、張っております(笑)。

 

FTPサーバをボリュームとして使えるようになったけど…

(2002/12/21)Mac OS X 10.2.3のアップデータが出ました。Mac OS X 10.2にすでに存在していたはずの機能である“ftpサーバをデスクトップにボリュームとしてマウントする”という機能がどうやら修正されて機能するようになったようです。

ftpサーバをボリュームとして利用するには、まず、Finderで「移動」メニューから「サーバへ接続」(Command+K)を選択します。ダイアログボックスで、アドレスとして「ftp://サーバアドレス/」の形式で入力します。

すると、認証のダイアログボックスが表示されます。英語のままですし、キーチェーンへのパスワード記憶も行いまませんが、ここでftpサーバで有効なアカウントを入力します。(なお、サーバアドレスにアカウントとパスワードを含める形式、つまりftp://アカウント:パスワード@サーバアドレス/の形式にすれば、このダイアログボックスは表示されません。

するとボリューム確かにマウントされて、ファイルやフォルダが参照できます。ログインしたFTPサーバのルートが、ボリュームのルートになるので、一般的なUNIXアカウントによるアクセスだと、システムのルートがボリュームのトップ階層になります。ところが、ちょっと動作が怪しいですね。まず、ボリュームの情報で、0KB空きとなっていますが、この接続したサーバはもっとたくさんの空き容量があるはずです。また、どのディレクトリも書き込み不可になります。ログインしたアカウントのホームですら書き込み不可となります。どこを見ても、「システム」がオーナーで、wheelがグループとなり読み込みのみ、そして全員に対しても読み込みのみとなってしまいます。つまり、ファイルのダウンロードはできても、書き直しなどはできません。また、ファイルのアップロードもできません。これってセキュリティのための意図的なものなのかな??

Mac OS X Serverのメールサービスも10.2.3で正常化?

(2002/12/21)Mac OS X Server 10.2.3へのアップデートが昨日ありましたが、サイズはなんと80MBあまり! それでも、どうやらメールサービスのSMTP AUTHの問題が解決されているようです。なんと、10.2.2までは、SMTP AUTHを機能させると、あらゆるSMTP接続に対して認証が必要になります。メールクライアントからの送信はもちろん、別のドメインのメールサーバから送られてくる普通のメールですら、認証が必要になります。つまり、メールの受信ができなくなり、送信専用にしか使えません。このことは、12月の最初にやっとKnowledge Base #106761で公開されましたが、なかなか公式にはそうなっていると言っていませんでした。(この文書、きっと書き換えるでしょうから、現状を画面ショットで残しましょう)

だけども、10.2.3だとなおっています。送られてきたメール、つまり別のSMTPサーバから、サーバが管理しているドメインのアカウント宛に来たメールは認証は必要ありません。だから、ちゃんとメールは受信できるようになったようです。「受信メール」のタブで、おそらくリレーを許可するのは内部のネットワーク…のように設定するのが一般的かと思いますが、許可したIPアドレスからのSMTP要求は認証は不要で、それ以外のIPアドレスからの要求に認証を求めるようです。

なお、CRAM-MD5の認証を行うには、パスワードサーバが動いていないといけません。

Windowsサーバへ接続時にやりがちなこと

(2002/12/12)Mac OS X 10.1で、Windowsのサーバに接続することができるようになっています。Windowsマシンでは、共有フォルダを公開しておいて、そこへ接続して利用するのですが、Mac OS XでWindowsの共有フォルダをマウントしたまま、Windowsマシンを休止にしてしまうこともあります。そうなると、Mac OS XのFinderでいきなり応答しなくなることがあります。マウントした共有フォルダにアクセスが及べばまったく応答しません。しかも、強制終了や強制再起動すらできなくなりお手上げになります。しかしながら、そういう状態になっても、Windowsマシンを休止状態から起動して稼働状態にすることで、Finderのフリーズも直ります。慌てず、Windowsを稼働状態にすればいいということです。

ちなみに、Windows自体を終了すれば、Mac OS X側でマウントしていても、自動的に解除されます。だから、休止の時にも同等の処置にすればいいのだと思うのですけど。

リモートでソフトウエアのアップデート

(2002/11/19)システム環境設定でのソフトウエアアップデートは、手動あるいは自動でシステム関連のソフトウエアやアプリケーションをアップデートできるので、通常使っているMac OS Xではお馴染みだろう。もちろん、こうしたアップデートの仕組みは、Mac OS X Serverでも利用できるが、サーバマシンの場合はマシンの前で操作するのではなく、リモートで操作したいところだ。Mac OS X Server 10.2からは、リモート操作、つまりsshでログインした状態でソフトウエアアップデートが可能な「softwareupdate」というコマンドが追加されている。

Mac OS X Serverにはadminあるいは管理者アカウントで、sshでログインする。そして、softwareupdateコマンドを入力すると、ダウンロード可能なソフトウエアが一覧される。

[right:~] admin% softwareupdate
Software Update Tool
Copyright 2002 Apple Computer, Inc.

Software Update found the following new or updated software:

- 3406
Mac OS X Server アップデート (10.2.2), 42050K - restart required
- 3359
QuickTime (6.0.2), 19620K - restart required
- 3339
StuffIt Expander セキュリティアップデート (7.0), 4420K

To install an update, run this tool with the item name as an argument.
e.g. 'softwareupdate <item> ...'

ここで、もちろん、引数として番号を指定して指定のアップデートをかけるのだが、ルートの権限がないと、アップデートはできない。したがって、次のようにコマンドを入力する必要がある。もちろん、sudoコマンドの正しいパスワードを入力する必要がある。以下のメッセージは、一部省略した。

[right:~] admin% sudo softwareupdate 3406 3359 3339
Password:**********
Software Update Tool
Copyright 2002 Apple Computer, Inc.

Downloading "Mac OS X Server アップデート"...
Unarchiving "Mac OS X Server アップデート"... 50%
Downloading "QuickTime"...
Unarchiving "QuickTime"... 50%
Downloading "StuffIt Expander セキュリティアップデート"...
Unarchiving "StuffIt Expander セキュリティアップデート"... 50%
Installing "Mac OS X Server アップデート"... 50%
     :
Installing "Mac OS X Server アップデート"... 66%
Installing "Mac OS X Server アップデート"... done.
Segmentation fault[right:~] admin% softwareupdate 3406 3359 3339
softwareupdate: Must be run as root

あらら…セグメンテーションフォールトなんて出ているけど、大丈夫かな。だけど、10.2.2にはアップデートされてたみたいだ。

なお、アップデートには再起動が必要なものもあるので、そのつもりでとりかかる必要がある。

(2003/4/15)ソフトウエアアップデートのコマンドですが、以前は番号を指定する形式でしたが、名前を指定する形式になったようです。たぶん、Mac OS X/Server 10.2.3からだと思います。ターミナルで、softwareupdateコマンドを入れてアップデート可能な項目を調べ、そのリストから項目名をコピー&ペーストをするのが手軽な方法でしょう。

[xserver:~] admin% softwareupdate
Software Update Tool
Copyright 2002 Apple Computer, Inc.

Software Update found the following new or updated software:

- MacOSXServerUpdate10.2-10.2.5
Mac OS X Server アップデート (10.2.5), 44892K - restart required
- QuickTimeSU-6.1.1
QuickTime (6.1.1), 19860K - restart required
- QuickTimeBroadcaster-1.0.1
QuickTime Broadcaster (1.0.1), 900K
- iPod-1.2.6
iPod ソフトウェア (1.2.6), 5772K

To install an update, run this tool with the item name as an argument.
e.g. 'softwareupdate <item> ...'
[xserver:~] admin% sudo softwareupdate MacOSXServerUpdate10.2-10.2.5
Password:
Software Update Tool
Copyright 2002 Apple Computer, Inc.

Downloading "Mac OS X Server アップデート"... 10% 20% 30% 40% 50%2003-04-15 09:24:23.176 softwareupdate[9440] File verification succeeded

Unarchiving "Mac OS X Server アップデート"... 50%
Installing "Mac OS X Server アップデート"... 50%
(途中省略)
Installing "Mac OS X Server アップデート"... 98% 98% 99% 99% 99% 99% done.

You have installed one or more updates that requires that you restart your
computer. Please restart immediately.

Mac OS XでMIDI楽器による演奏

(2002/11/16)Mac OS Xで、USB等で接続した外部のMIDI音源を利用して、MIDIファイルの演奏をできるようにするm-ca-Playerを公開しました。Core Audioの機能を使っています。とりあえず、制約は多いですが、とにかく、MIDI楽器はドライバがあれば演奏できます。

RTL8139の10.2用ドライバ

(2002/11/13)RealtekからはRTL8139チップ用のMac OS X v10.2向けドライバが公開されている。と言いながら、まだインストールはしていない。

Ver.1.1.1だと、大量のファイルをAppleShareでサーバ側にアップするとき、Ethernetカードがハングアップするということになってしまっていたが、はてさて、直っているかどうか。

(2002/11/25)上記のリンク先はなくなっているので、こちらからダウンロードしましょう。Jaguar用となっているけど、バージョンは以前と同じ1.1.1である。

 

ローカライズ名の設定

(2002/10/16)言語ごとに異なるフォルダ名を設定する機能がMac OS X 10.2に搭載されましたが、その名前を設定するユーティリティSet Localized Name(ローカライズ名の設定)を公開しました。

 

Dockで隠れるウインドウ

(2002/10/14)Internet Explorerを使っているとき、ウインドウの大きさが大きくなってしまって、サイズボックスがDockに隠れることがあります。そんなときは、最小化していったんウインドウをDockに入れ、再度Dockにあるものをクリックして表示します。すると、サイズを調整してDockとウインドウが重ならないようになります。普通のアプリケーションは、最大化したときにDockと重ならないようになりますが、IEはそうではないので、知っておくと便利かもしれません。

 

Mac OS X Server 10.2でNAT

(2002/10/13)久々に時間ができたので、サーバマシンのOSを10.2にした。こういうこともあろうかと思い、データは全部、拡張ドライブに入れてあるので(しかもRAID)、システムは一気にフォーマットからして、まっさらな状態から使える。ある程度中身は見ていたので、おおむね予想通りだ。

本書p275から書いてあるとおり、Ehternetカードを追加したが、RealtekからはRTL8139チップ用のMac OS X向けドライバとしてVer.1.1.1というのが2002/8/1に公開されている。これをダウンロードしてインストールをした。(本書での紹介時より、ページの構成が替わっている。インターネット検索もしてみたら、macupdateというサイトにもRTL8139のドライバがあった。)インストール、そして設定はさほど難しくない。

ところで、1つ誤算があり、Mac OS X 10.2にはインターネット共有機能があるもものの、Mac OS X Server 10.2にはその機能は存在しない。Yahoo BB接続でインターネットを利用しており、NAT(正確にはNAPTだけど、いいとしてください)はどうしてもやりたいので、結局は本書のp370に書いてあるように、手作業でnatdを動かす。このことは、Knowledge Base #75409に記載されている。ここでは本書とは若干違うコマンドになっているが基本的には同じことをやっている。執筆時点ではTILには対応する文書は掲載されていないかった。

ファイル共有などの設定は、さまざまなユーティリティが機能アップして、かなりやりやすくなっている。ディレクトリサービス関連の機能を掘り下げると面白そうだが、このあたりは、10.1からまたまたあれこれと変化が見られるので、見通しがつくのはもうちょっと先かもしれない…。

Dynamic DNSを利用しているので、DNS Update 2.6をとりあえず入れた。ドネーションか…でも、日本語化したら、許してくれるってこと?

 

Che-ez! SPY-ZをiPhotoで使える!

(2002/10/5)おもちゃデジカメのChe-ez! SPY-ZはこれまでiPhotoで取り込みができなかったが、ioExpertというメーカのOS X Driver for USB Still Cameraをインストールすると、見事に取り込めるようになる。SPY-Zだけではなく、けっこうたくさんのおもちゃ系デジカメをサポートするようだが、ようするにDual-mode USB Camera対応ってことだと思われる。$9.95のシェアウエアで、支払い前は取り込み時にメッセージが出るのはともかく、取り込んだ画像にも、しっかり支払っていないことが記載される。もちろん、使えるかどうかを試してからお金を払ってねということだろうけど、まあ、この値段なら許せる範囲だろう。(だけど、SPY-Zはすでに過去の商品になっているなぁ…)

 

Mac OS X 10.2のローカライズ機能

(2002/9/24)Mac OS X 10.2のローカライズ機能を解説するページ「Mac OS X 10.2から搭載されたフォルダ名のローカライズ(国際化)機能」を公開しました。

 

iChatで見える画像

(2002/9/24)iChatの画像の変更方法は、あちこちで紹介されています。けっこう使いやすいユーザインタフェースかもしれません。だけど、ちょっと説明がいるかな。いずれにしても、画像ファイルにしなくてもいいのがおいしい機能です。ところで、このiChatで見える自分の顔写真ですが、アドレス帳の自分の顔になっていますね。

 

iChat楽しんでますか?

(2002/8/30)iChatおもしろいですね。もうあちこちにサイトなんかがあるけど、自分の名前を変える方法が分からんということも言われています。iChat関連の初期設定ファイルを捨てるのもいいですけど、実は、アドレスブックで設定している自分の名前が、iChatでの自分の名前になります。だから、アドレスブックで修正できますね。

 

フォルダのローカライズスクリプト

(2002/8/21) 10.2にアップデートした場合にDocumentsフォルダなどを「書類」フォルダに一発で変更するスクリプトを作成しました。また、「アプリケーション」をApplicationsに戻すスクリプトも作りました。こちらのページで紹介しています。

 

あらら、Documentsのままでは

(2002/8/19) Mac OS X 10.2が出ましたね〜(実質的に〜笑)。さっそくMac OS X 10.1.5のシステムに入れてアップデートするわけですが、Applicationsフォルダは「アプリケーション」フォルダなどになっていますが、自分のホームフォルダの中は、DocumentsやMoviesのままです。「書類」フォルダなどにはなりません。

それじゃあせっかくの新機能が堪能できませんから、「書類」や「ムービー」フォルダにする方法を説明しましょう。Terminal作業になってしまいます。

  1. ターミナルを起動します(アプリケーションフォルダのユーティリティフォルダにあります)。最初は、ホームフォルダがカレントになっています。
  2. cd Documents で、Documentsフォルダをカレントにします。
  3. touch .localized とコマンドを入れます。
  4. ログアウトして再度ログインするか、あるいは再起動します。

これで、Documentsフォルダが「書類」フォルダになります。なくなった!と思わないように。ABC順だといきなり「書類」は最後になってしまいます。つまり、.localizedというファイルのあるフォルダは、システムのどこかにある情報を使って、ローカライズされるみたいですね。

ホームフォルダにある、Library、Movies、Picutres、Desktop、Sites、Public、Musicの各フォルダは同様に同じ手段で、「日本語化」できますね。