アクセス - みる会図書館


検索対象: UNIX MAGAZINE 2001年6月号
48件見つかりました。

1. UNIX MAGAZINE 2001年6月号

連載 /lnside Cygwin— 図 10 Pernnss10n denied /My Pictures $ nts 1 上 ( たぶんバージョン 3.0 ) では、ドメイン・コントローラの いので同し結果になってしまう。しかし、将来の Samba ドメイン・コントローラの発行した SID を使ってくれな ンでユーサー認証することも可能だが、現犬の Samba は Samba サーバーを NT ドメインに参加させて、ドメイ きない。 には、このセキュリティ言当子を正しく処理することはで にオ褓内された Windows のアカウントしか扱えない ntsec した SID を用いることにある。 /etc/{passwd,group} ュリテイ記述子に、 UNIX のアカウント情報をもとに生成 この原因は、 Samba がファイルやディレクトリのセキ イルに書込別雀限がないといわれてしまう。 ない。次に、コピーしたファイルを消そうとすると、ファ も、ファイルのユーサーとグループも正しく表示されてい ラーになる。 ls ー 1 で見るとたしかに失敗している。しか 自体は成功するものの、アクセス権限の変更に失敗して工 ように実行権限が与えられている。このファイルのコピー のアプリケーションか作成したファイルなので、前述した ーム・ディレクトリにコピーしている。これは Windows たヒ、ツトマッフ・ファイル ( Ⅱ tsecl. bmp ) を、 UNIX のホ たとえは図 10 では、 Windows の、、ペイント " てイっ て怒られることが多くなる。 イルシステムを操作しているときに、アクセス権限につい Cygwin を使っていると、 Samba 経由で UNIX のファ ntsec は Samba と相性が悪い。 ntsec を有効にして Samba と相性が悪い みよう。 されました " といわれたら、ファイルの実行権限を疑って ので、 Windows のアプリケーションに、、アクセスカ甘巨否 Execute を使っているのは start コマンドだけではない / 当 Pictures $ - rm: 「 nve w 「ⅱ 0 ー p 「 0 士 ect f i 、 / / め / ん j i 今 / S81. ' ? y ′ Pictures $ rm / / 沚 0 / f ⅵ ie / ntse:l . 0 1 41606 binist 2986038 「 15 16 : 23 //t_hcho/fuj ieda/ntsecl . / Pictures $ ls ヨ / / 0 / 化 j i a / S81. : preserving 「 mi i 師 fo 「 //ul 、 oho/fujieda/ntsecl しー ~ / 物′ Pictures $ nts 1 . //lhoho/fuj ieda - rwx¯ 1 fuj ieda Ckmain U 2986038 物「 25 09 : 27 ntsecl 上 np ま 図 11 # 朱なアクセス権のオンパレード ファイル ( E ) : 新 e れ叩跖 e 所有者 Q ) : 回旧 da (KazuhWo F 可 da ) 万イルのア恤ス宿 名前せ Fveryone 回肥 da (Kazuhiro F 可旧 da ) 特殊な乃セス ( R ) なツ = 特殊なア社ス権 (RWDPO) 特殊なア社ス権 ( この間題への対処法が Samba のバージョンアップを 待っというだけではあんまりなので、 CygwinDLL 1.1.7 から、工竟変数 CYGWIN に設定するオプションとして nosmbntsec が追加された。このオプションを指定する と、共有ディレクトリでは ntsec の機能が無効になるの で、 Samba 上のファイルの操作でいちいち怒られること はなくなる。ただし、このオプションはその名前に反して、 Samba にかぎらすすべての共有ディレクトリに適用され るため、 Windows NT / 2000 がサーノヾーとなっている共 有ディレクトリでも ntsec が無効になるので注意してほ しい。 このオプションを cygwin. bat で設疋する方法を以下 に示す。見てのとおり、 CYGWIN 環境変数に複数のオ フションを指定する際には、オプションをスペースで区 切って並べればよい。 chdir *cygwin*bin SET CYGWIN=ntea nosmbntsec bash ——login —i ←挿入 発行した SID を使うようになるので、 るはすだ。 120 この問題は解決す アクセスコントロール・エテイタと相性がい UNIX のアクセス権限をエミュレーションするために ntsec はファイルやディレクトリに Windows ではありえ ないような ACL を設定する。そのため、ファイルの、、プ ロノヾティ " →、、セキュリティ " で表示される、 Windows の アクセスコントロール・エデイタとの相性がたいへん亜い ・ ( し、 0 Ⅵⅱ ndowsNT4.0 のアクセスコントロール・エデイタ は、かなり貧弱である。 ntsec によって ACL が設定され たファイルをこれで見ると、、、特殊なアクセス権 " のオン パレードになる ( 図 11 ) 。前述したように、ファイルに実 行権限がないことは稀なので、言もムみ権限 (R) だけの設 定すら特殊なアクセス本及いになる。さらに、 NT 4.0 の UNIX MAGAZINE 2001.6

2. UNIX MAGAZINE 2001年6月号

連載 /lnside Cygwin 図 2 ntsec によるアクセスオ郷艮のエミュレー ション 図 3 Solaris 8 での getfacl/setfacl 吏用例 Eae を C れ当をは var/tmp $ 劇「に -sr var/tmp $ に himitst 」 0 4 月 19 日 06 : 29 h 」 1 fuj ie:ia ot 「 va 「ハ $ setfacl -m 「 : 「” 0 「 e : 「 - - himitsu va 「 /tmp $ getfacl himit3 」 file: himitsu g 「 Ot ト r 回 ; リ 1 曾 0 を日物ーズ上いい、灯 うこ《 0 ー、 っ 4 0 》 0 #effect ive:- #effect ive: - Windows NT / 2000 では、 NTFS 上のファイルを含 め、セキュリティの設定か可能なすべてのオプジェクトが セキュリティ言当子をもっている。セキュリティ言当子に は、オプジェクトの所有者とグループの識別子、オプジェ クトに関するアクセスコントロール・リスト (ACL) カ哈 まれている。 ntsec を有効にしたときの stat は、これら の識別子をもとにファイルのユーサー ID (uid) とグルー プ ID (gid) を決定し、 ACL の内容にもとづいて UNIX のアクセス権限を表すビットパターンを作成する。 ふつうに Windows NT / 2000 を利用していると、セ キュリティ言当子のグルーフの値とは縁がないので、ファ システムコールを、 Windows NT / 2000 の ACL を使っ イルにグループの概念があることに違和感を覚えるかもし れない。しかし、たしかに NTFS はファイルのグループ てエミュレーションしている。 Solaris の acl システム コールを使っているアプリケーションなら、 Cygwin 上 を言当求しているし、グループを変更することもできる。 でコンパイルすればそのまま動くはすだ。 ACL には、複数のアクセスコントロール・エントリ (ACE) が含まれている。 ACE には、、許可 " と、拒否 " の Cygwin DLL の配布ノヾッケージには、 Solaris の同名 のコマンドを参考に、 acl システムコールを使って作った 2 不鶤頁があり、 1 つのユーサーかグループについて 、ⅱ丿し getfacl と setfacl まで入っている。ューサーやグループ む / 書く / 実行などの行為の許可・拒否か轂定されている。 をⅲ d や gid で指定しなければならないことを除けば、使 ntsec は、 UNIX のアクセス権限のエミュレーションに ファイルの所有者とグループそれぞれに対する許可および い方は Solaris とまったく同しである。これらのコマンド 拒否の ACE と、 Everyone グループの許可の ACE を用 の SoIaris 8 - 上での使用例を図 3 に、 Windows 2000 上 での使用例を図 4 に示す。この例では ACL を使って、自 いている。 分のほかにユーザー daresore にだけ読めるという設疋を ntsec を有効にすると、 stat がファイルのツ頁のマジッ おこなっている。 クナンバーを調べるのをやめるので、 stat によってファ イルの atime か更新されることはなくなる。さらに、見 問題山積みの ntsec かけ倒しの ntea とは異なり、 chmod で実行権限を落と ntsec はそれなりによくできたエミュレーション方式だ したファイルは本当に実行できないし、言もムみ権限を落と か : これはこれでいろいろと間題を抱えている。 UNIX で したファイルは読めなくなる。 も Windows でもないコウモリのような存在として両方 acl システムコーノレのエミュレーション のユーサーに持ち悪がられる Cygwin にあって、 ntsec 最近では、多くの UNIX が ACL をサポートしており、 はとくにコウモリ色の強い、つまり UNIX でも Win- それぞれ独自に ACL を操作するシステムコールを提供し dows でもない気持ち悪さに満ちたエミュレーション方式 この点についてはのちほど触れるとして、ますは ている。 Cygwin DLL は、 SoIaris の孑是イ共している acl なのだ。 図 4 Windows 2000 での getfacl/setfacl 吏用例 」ロ / va 「 / p $ に -sr CY ーに NT ー 5.0 1 . 1 .8 ( 0.34 / 3 / 2 ) /var/ttrc $ himitsu 1 fujieda ィⅲ U 0 「 19 06 : 39 himitsu / va 「 / 0 $ 記「お 0 「 e ⅲ d ニ 11084 ( r ぉ ore ) gid : 10513 ( 旧 in Users) g 「 0 ェ s : 10513 ( D ァ in \.kers) /var/tmo $ setfacl -m user: 11034 : 「一 - himitsu 。を引 $ getfacl himitsu file: himitsu c 肥「 : 11002 # g 「伏 0 : 10513 、 -2 「 : 11084 : に一 / va 「ハ mp $ 116 UNIX MAGAZINE 2001.6

3. UNIX MAGAZINE 2001年6月号

図 12 NT 5.0 ってなんでしよう 現在のセキュリティ情報を変更しますか ? ュ竺」一 連載 /lnside Cygwin— W 扣 T セキュリティー 図 13 アクセス許可の頂番か正しくありません ! に胃己挈寺 ! 3 日れ ? リが無効になる可能性がありま魂続行してアクセス許可を正し並べ替えるには、 アクセスコントロール・エデイタは拒否の ACE を扱えな いので、 ntsec カ甘巨否の ACE を設疋すると図 12 のよう な笑うしかないエラーになってしまう。 Ⅵ Tindows2000 のアクセスコントロール・エデイタは いくらかましで、拒否の ACE ぐらいで弱音を吐いたりは しない。しかし、 ntsec の設定する ACL に対して、図 13 のような不平をもらす場合がある。この図の、、アクセ ス許可 " とは ACL に含まれる ACE のことである。この 工ラーの孑商どおり、 ntsec が ACE を並べる順序はたし かに正しくない。 Microsoft のドキュメント 3 には、、、拒否の ACE を並 べてから許可の ACE を並べるべし " というルールか示さ れている。しかし ntsec は、許可と拒否の ACE を分け ずに並べることがある。 たとえば、 chmod を使って—rw—r— -rw— ( 646 ) とい うアクセス権限を設定したとしよう。このときにファイル の所有者カワァイルのクルーフに属していると、 ntsec が 設定する ACL は以下のようになる。 1. 所有者への許 - 可 : rw- 2. グノレーフ。 , の孑巨否 : —w— 3. グルーフへの許可 : r- 4. Everyone , の言午可 : rw— UNIX のアクセス権限のモデルでは、 others の書込み 許可があったとしても、グルーフ。の書込みは拒否しなけれ はならない。しかし、 Microsoft のドキュメントに従っ て、グループの書込み拒否を ACL の先頭にもっていく 3 http://msdn.microsoft.com/library/psdk/winbase/ accctrl-2hik. htm UNIX MAGAZINE 2001.6 と、グループに所属している所有者の書込みまて拒否され てしまう。したがって、この順番に並べるしかない。 さきのドキュメントには、 ACE を並べる国について、 もう 1 つルールが示されている。、、ディレクトリから継承 する ACE よりも、ファイルのグループに関する ACE を 則に並べるべし " というものだ。 ntsec はこのルールを絶 対に守らないので、ディレクトリから継承する ACE があ るだけで図 13 のエラーになってしまう。これには何か理 由があったと思うが、たんなるバグのような気もしてきた ので、そのうち直すとしよう。 いすれにせよ、アクセスコントロール・エデイタがェ ラーを出力したときには、アクセスコントロール・エディ タには扱えない ACL がファイルに設定されている。 れをアクセスコントロール・エデイタで触ってしまうと、 ntsec か叡疋した ACL は台無しになってしまう。 ティレクトリのアクセス権限の意味が違う アクセスコントロール・エデイタと卩印華してまで UNIX らしさを演出しようとする ntsec だが、それでも UNIX のアクセス権限を完全にエミュレーションできているわけ ではない。 これは ntsec を含むすべてのエミュレーション方式に 共通する欠点だが、書込み権限のないディレクトリにおけ るファイル / ディレクトリの作成と削除、名前の変更が可 能になっている。 UNIX のアクセス権限をエミュレーショ ンするのなら、これらは Permission denied にしなけれ はならない。さらに、実行権限のないディレクトリにある ファイルのオープンも、 UNIX なら Permission denied になるが Cygwin では可能だ。 書込み権限のないディレクトリでの振舞いは、エミュレ 121

4. UNIX MAGAZINE 2001年6月号

ーにアクセスし、利用者認証をおこなう。そして、利用者認証 する際には IMAP がよく使われている。このように IMAP を利用するケースも依然として残っている。 に成功したユーサーとアクセスしてきた IP アドレスを SMTP サーバーに記憶しておき、そのアドレスからのアクセスのみを メールの利用者竟の整備 許すという方式である。 SPAM メールの増加とともに、この ようなオ冓を用いた SMTP サーバーへのアクセス匍卩がおこ メールを使うためには、システムにどのような設定をし なわれるようになってきている。 なけれはならないのだろうか。 メールか冲幻さメールスプールにオ内されると、受 ます、次の 2 点をネットワーク管理者に訊こう。 信者がメールを読むためにそこにアクセスしてくる。従来 ・メールの送イ訓こ使用する SMTP サーバーの IP アド は、メールを受け取る SMTP サーバーか稼動しているシ レス ( またはホスト名 ) ステムに各ューサーがログインしてメールを読む方式が一 ・メールの受イ訓叔こ使用する POP サーバーの IP アドレ 勺であった。しかし、メールの利用か増えるにつれて、 ス ( またはホスト名 ) とアクセスガ去 SMTP サーバーか処理しなければならないメールの数が 大量になってきた。このような状況で、メールの醪医に使 この 2 つのサーバーの IP アドレスと利用方法について うシステムにユーサーをログインさせていると酉当逶処理の の情報は必頭である。場合によっては、ネットワーク管理 妨げになりかねない。また、ユーザーのはうもつねに負荷 者に依頼し、 SMTP サーバーや POP サーバーにアカウ の咼いシステムでメールを読むことになり、・直とはいい ントを設定してもらう必要があるかもしれない。 がたい環境になってしまう。そこで、描丘はネットワーク そのうえで、メールを使うための環境を整備する。設 経由でメールスプールにアクセスさせる方式が主充になっ 定ガ去は、利用するメールリーダー (MUA : MaiI User ている。メールスプールにアクセスするための代表的なプ Agent) ごとに異なる。 MUA の設定ガ去をよく理解して、 ロトコルが POP である。メールの受信者は、 POP を用 上記の↑帯長を設定しよう。 いて自分のシステムからメールサーノヾーのメールスフール 以下では、 UNIX 上のメールリーダーとして Mew と にアクセスし、メールスプールの中身をローカルのシステ Netscape Messenger を例に説明する。 ムに取り出してメールを読む。 Mew の場合 メールの酉当幻過程をごく大雑把に示すと以 E のようにな ます、 Mew を利用する場合の設定去を紹介する。 Mew にはさまざまな機能があるが、ますはメールの読 み書きかできる環竟の整備を最初の目標とする。 ノート 16 Mew の公式サイト (http://www.mew.org/) から、 メールスプールにアクセスする際のプロトコルとしては、 IMAP (lnternet Message Access Protocol) もよく使わ 丐点の正式版である、 れており、これに対応したメールリーダー・プログラムもたく さんある。現在のところは POP の利用者が多数を占めている ・ mew ー 1.94.2. tar. gz が、 POP の構造はきわめて単純で、たんにメールスプールに ・ imー140. tar. gz アクセスするためのプロトコルといってもよい。一方、 IMAP はメールサーバー側にメールを蓄積しておき、メールの検索な をダウンロードする。 どもサーバー上で実行できる高機能なシステムである。以前の Mew をインストールするときは、事前に IM (lnter- メールサーバーは、大容量のディスクを備え、処理速度もユー net Message) をインストールする必喫がある。 ザーが使うデスクトップ PC よりも格段に高かった。このよう な環境では、メールサーバーに複雑な処理をさせるという着想 ノート 17 は秀抜であった。ところが、現在ではユーザー側のデスクトッ Mew はもともと、 UNIX 上でひろく使われていた MH プ・システムも、処理性能やディスク容量といった面ではかって のサーバーと遜色のないレベルになっている。こういった状況 と呼ばれるメール・アプリケーションのフロントエンドとして 実装されていた。 MH は、 1980 年代に開発された複数のコマ を反映し、メールサーバーでのディスク管理の容易さを考えて ンドから構成されるパッケージである。メールの送受信、削除、 POP を使諺竟か増えてきているようだ。ただし、工第点でも フォルダ " をベースとしたメッセージの整理、メッセージの 小規模なサイトでは IMAP サーバーの利用価値は高く、商用 検索などの機能をもち、多くのユーサーに愛用されていた。さ パッケージを用いて電子メールの各種付加価値サービスを実現 る。 39 UNIX MAGAZINE 2001.6

5. UNIX MAGAZINE 2001年6月号

連載 JavaServer Pages 図 10 Context の言聢 く Context path="/examples" docBase="webapps/examp1es" crossContext="fa1se" debug="0" reloadable="true" > く /Context> についても簡単に説明しておきましよう。 reloadable は、ドキュメントが更新されたときに Web サ→ヾーカ噺しいドキュメントを自動的にロードす るかどうかの設定です。デフォルト値は、、自動的にロー ド " の、、 true" です。 debug は、テンヾッグレベルク旨定です。デフォルト値 は 0 で、値が大きければテンヾッグ用のログメッセージ か第岩田になります。 trusted は、 Tomcat の内部オプジェクトへのアクセ スを許すかどうかを指定するフラグです。アクセスを許す 場合は、、 true" を、許さない場合は、、 false" を設定します。 デフォルトは、、 false" です。 ・ Web サーバーにアクセスするときの URL ( のパス ) 最後の crossContext は、この Context にある Java ・ドキュメントの実際の置き場所 や JSP のプログラムからほかの Context へのアクセスを 午すかどうかを指定するフラグです。アクセスを許す場合 は、それぞれ path 属生および docBase 属性で指定し は、、 true" を、許さない場合は、、 false" を設定します。デ ます。 フォルトは、、 true" です。 たとえば、、、 webapps/mydoc" ディレクトリの下にド これら 4 つの属性については、適切な値が分からなけ キュメントを置き、 れば指定しなくてもかまいません。値を省略した場合はデ ・ http://localhost:8080/mine/file フォルト値で重川乍します。 という URL でアクセスする場合は、 server. xml に以下 ☆ の Context タグを追加します。 今回は、メインの成疋ファイル server. xml に関連した く Context path=" /mine' コンフィギュレーションを中心に説明しました。いまの段 docBase="webapps/mydoc" > く /Context> 階ではまだ、プレーンテキスト・ファイルや HTML ファ イルなどの凾のドキュメントの作り方しか分からないか ドキュメントの置き場所は、 webapps ディレクトリの もしれません。それでも、ポート番号を変えたり、自分で 下に限定されているわけではありません。たとえば、 作ったファイルをインストールして Tomcat に慣れるよ く Context path="/sysroot " うにしてください。 docBase="/" > く /Context> Tomcat の設定ファイルの役割や設定できる値、また それらの値を使ったときの具イ勺な乍について詳しく説 という設定を加えれば、システムのルート・ディレクトリ ( / ) に次の URL でアクセスできるようになります。 明したドキュメントはないため、いろいろと戸惑うことも 多いと思います。そんなときは、成正ファイルに書かれて ・ http://localhost:8080/sysroot/ いるコメントや、 Tomcat のインストール先の doc ディ Context に関するその他の設定 レクトリにあるドキュメントも参考にしてください。 ( あらい・みちこ ASTEC) 最後に Context タグの残りの属 ・ reloadable ・ debug ・ t rust ed ・ crossContext く Context path="/admin" docBase="webapps/admin" debug="0" reloadable="true' trusted="false'i > く /Context> 77 UNIX MAGAZINE 2001.6

6. UNIX MAGAZINE 2001年6月号

連載 /lnside Cygwin— 図 1 ntea によるアクセス権限のエミュレー ぐ / ョン ' $ t けー foo; ヨ fco 1 fujieda U ~ $ 灯 + x f«x ヨ 1 fujieda 沼ⅲ U ~ $ export CYGWlNzntea ~ $ c} +X foo; f@ -rwxr-xr-x 1 fuj ieda Cbrnain U ~ $ ( ト町に d og - 「 fm; ヨ fco -rwx--x--x . 1 fuj ie D«nain U ~ $ & 町 u•s fm; fCX) 1 fujieda 〔旧 in U $ d + t fax { - 「お -- x - - 弋 1 fuj ieda [ ⅲ U 0 鮖「 0 「 0 Apr 0 「 0 「 0 「 6 16 : 08 foo 6 16 : 08 fco 6 16 : 08 fcox 6 16 : 08 ま 6 16 : 08 { * 6 16 : 08 fco ま これを避けるには、スタートメニューから bash を起動 するためのバッチファイル (cygwin. bat) か、 Windows のシステム側、 0 羅竟変数を設定する必喫がある。前者の場 合は、以下のように cygwin. bat を書き換えれはよい。 chdir *cygwin*bin SET CYGWIN=ntea bash ——login -i ←挿入 後者の場合には、 Windows NT 4.0 なら、、コントロ ーノレノヾネノレ " →、、システム " →、、環上竟変数 " で、 Windows 2000 なら、、コントロールノヾネル " →、、システム " →、、詳 細 " →、、環境変数 " で、システムかューザーの環境変数と あくまでも見かけ倒しのⅡ tea して CYGWIN を設定すればよい。 UNIX MAGAZINE 2001.6 ファイルの atime か史新されることはなくなる。もう 1 を調べなくなる。このおかげで、 stat を実行するだけで の内容を返すので、ファイルの先頭のマジックナンバー ある。 1 点は、 stat がファイルのモードとして拡張属性 拡張属性を使う方式と従来の方式の違いは 2 点だけで フォルトのエミュレーション方式とまったく同じだ。 と実行権限しかサポートされない仕様は、前回説明したデ イルに所有者とグルーフ。の念がないことや、書込み権限 いる。しかし、これはあくまでも見かけ倒しである。ファ とは set user ID や sticky bit まで操作可能になって 権限の追加すらできなかったのが、 ntea を有効にしたあ で、残りは ntea を有効にして実行している。最初は実行 図 1 では、最初の chmod は ntea を無効にした状態 レーションされているかのようにみえる。 ァイルのアクセス権限が UNIX とまったく同様にエミュ のまま拡彊属性として保存する。そのため見すると、フ 権限を含むファイルのモードを表すビットパターンを、そ カ刻長属性を使ったエミュレーション方式では、アクセス 占は、 access システムコールでファイルが読めるかどう かを検査したときに、ファイルの言ムみ権限を落としてい ると、、読めない " という結果か返ることである。ただしこ れも見かけ倒しで、実際には読めてしまう。 FAT では使いものにならない ntea 拡張属性は Windows NT / 2000 でサポートされてい ると述べたが、実用上間題なく利用できるのは、ファイル システムが NTFS の場合だけである。 FAT32 ではそも そも拡張属性を利用できず、 FAT では使えるもののかな り間題がある。 FAT て拡彊属性を使うと、属生を保存するために、、 EA DATA. SF" というファイルがルート・ディレクトリに作 成される。このファイルは一度作成されると基本的に消す ことができす、消すにはディスクをフォーマットするか、 拡彊属性を理解しない OS を使う必要がある。さらに、 のファイルには、才長生を利用し続けるとしだいに大き くなるという性質もある。 Cygwin ML では、 2GB の FAT?S—ティションの半 分近くを、、 EA DATA. SF " に食われたうえに、消すに消 せないという不幸な列も報告されている。もし、ハ ディスクに FAT のノ、一ティションがあるのなら、 ntea を有効にするのは絶対にやめたほうがいい。 セキュリティ機構の利用 (ntsec) Cygwin DLL がファイルの所有者とグループの概念 をサポートしないのは、どの Windows でも利用できる FAT ファイルシステムの仕様を引きずっているからだ。 NTFS であれば、ファイルごとに所有者とグループを設 定できるし、アクセス権限もき田かく設定できる。 Cyg- win DLL は、 NTFS の機能を使ったアクセス権限の工 ミュレーション方式もサホートしている。この方式は、環 境変数 CYGWIN に、、 ntsec" を設定すると有効になる。 見かけ倒しではない ntsec この方式によるアクセス権限のエミュレーションの例を 図 2 に示す。 ntsec を有効にする前は、すべてのファイ ルの所有者が、、プロセスの所有者 " である僕 (fujieda) に なっていたのが、 ntsec を有効にすると、本来の所有者と アクセス権限が反映されていることが分かる。 115

7. UNIX MAGAZINE 2001年6月号

連載 /UavaServer pages ・ー・0 を加えれば、ログをファイルに出力するようになります。 たとえば、 1 番目の tc 」 og の Logger の言殳定を次のよう に書き換えれは、端末やウインドウに表示されていたメッ セージが、 Tomcat のインストール先の logs サプディレ クトリの下の tomcat. log ファイルに保存されます。 く Logger name="tc—log" verbosityLeve1 " INFORMATION" path="logs/tomcat .103 逆に、 ServIet に関するログはデフォルトでは logs/ servlet.log ファイルに保存される設定になっていますが、 2 番目の Logger の設定を次のように書き換えれば、端末 やウインドウ上に表示されるようになります。 く Logger name="servlet—log" / > ログレベルの変更 Logger の verbosityLevel 属生を利用して、ログ出 力の、、能弁さ ( 詳細度 ) " を指定することもできます。 図 9 では、 ・ tc 」 og のログレベルは INFORMATION ・ servlet 」 og のログレベノレは、デフォルトの WARN- ING 76 の下の、、 web 叩 ps " サプディレクトリは、デフォルトでド たとえは、 Tomcat をインストールしたディレクトリ るようになっています。 トが最初から用意されていて、デフォルトでアクセスでき Tomcat にはサンプルの JSP プログラムやドキュメン ドキュメントの置き場所 ・ DEBUG ( もっともログ出力が多い ) ・ INFORMATION ・ WARNING ( デフォルト ) ・ ERROR ・ FATAL ( もっともログ出力が少ない ) verbosityLevel に成疋できる値は次の 5 つです。 致イ顳勺なエラー以外は表示されません。 れはもっと詳しい情報が表示さ、、 FATAL" にすれば となっていますが、 verbosityLevel を、、 DEBUG" にす ・ JASPER-LOG のログレベルは INFORMATION キュメントや JSP プログラムを置く場所として扱われま す。また、 ・ webapps/ROOT/index. html は、 ・ http://localhost:8080/ に接続したときに表示される Web のトッフ。ページです。 ところで、自分で Web ページや JSP プログラムを作っ たときはどこに置けばよいのでしよう ? 一番お手軽なガ去 は、 Tomcat のドキュメント置き場を借用することです。 ・ http://localhost:8080/fiIe アクセスできます。 にファイル川 e を置けは、次の URL でこのファイルに ・ webapps/ROOT/file たとえば、 Context タグにはさまざまな属性カ甘旨定できますが、 に当されているデフォルトの Context の設定です。 中の、、 Context" タグで設定します。図 10 は server. xml ルにアクセスするための URL は、 server. xml ファイル ドキュメント・ディレクトリの位置や、その下のファイ ドキュメント・ティレクトリの指定 ます。 トリを作り、 Tomcat からアクセスできるようにしてみ 次は、ドキュメントの置き場所として新しいディレク などの去をとることになります。 新しいディレクトリを作り、自分のファイルを置く ルを削除する ・ディレクトリ構成は変更せす、 Tomcat 付属のファイ といった問題カ起こります。これを避けるには、 使えない ・ Tomcat の既存ファイルと同しファイル名や URL は ・意図しないファイルか表示される可能性がある 伺属のファイルか伺じディレクトリに混在するため、 ただしこのガ去では、自分で作ったファイルと Tomcat UNIX MAGAZINE 2001.6

8. UNIX MAGAZINE 2001年6月号

写真 1 たくさんのサーバー シグアル・コンノール 図 1 PC UNIX をターミナル・サーパーにする シリアルカードを増設した PCUNIX マシン 写真 2 Annex ターミナル・サー Telnet などで アクセス サーバー 1 (Linux) 0 サーバー 2 (FreeBSD) サーバー 3 (BSD/OS) シリアルケーブル サーバー 4 ( その他 ) 「ターミナル・サーバーはいまはもうないわけ ? だった ら、 PC UNIX でシリアルポート使ったら同しことがで きるのとちがう ? 」 そうです。今回の話は、 PC UNIX にシリアルカード を増設し、 PC UNIX をターミナル・サーバーに仕立て るというものです ( 図 1 ) 。ターミナル・サーバーの箱は現 在でも売られていますが、価格は最低でも 20 ~ 30 万円で す。そこで、手軽に PC UNIX とシリアルカードですま そうというわけです。ただし、独立したハードウェアのは うが安全だし、それくらいの出費は厭わないということで あれは、ターミナル・サーバーの箱を購入するのがよいで 回とりあげる道具は昔からあるはうです。 ターミナル・サーバーとは、シリアルポートが 8 ~ 16 個 とネットワーク・インターフェイスカ咐いた、、箱 " です。 写真 2 は、 10 年ぐらい前にあった Annex というター ナル・サーバーで、 16 個のシリアルポートと、 10Base 5 のネットワーク・インターフェイスカ咐いています。使い ターミナル・サーバーを使うということは、管理の対象 方は、このターミナル・サーバーに telnet などを使って となるマシンにはシリアルポート経由でログインできなけ ログインし、さらに内蔵のシリアルポートの先につながっ オ L ばいけません。 ているマシンにアクセスするというものでした。 通常の PC UNIX では、内蔵のキーポードとマウスの 「けっきよく、ネットワーク経由しゃない ? 」 インターフェイス、そしてグラフィックス・カードをコン ソールに使っています。今回は、その部分の設定を変更す ターミナル・サーバーを使えは、すくなくとも管理対象 る必要があります。以下では Linux 、 FreeBSD 、 BSD/ のサーバー側のネットワーク・インターフェイスに障害が OS でシリアルポートをコンソールとして使うための設定 あっても、そのサーバーにアクセスすることができます。 を紹介します。 途中のネットワークの障害まて考えるなら、管理用の独立 したネットワークを作るという手も考えられます ( 小規模 あ、忘れていました。実際の言殳定とテストの前に、 PC なものであ川ま無線 LAN で簡単に作ることができます ) 。 のシリアルポートにシリアル端末を接続しておきましょ 7 グアル・コンノールの 156 UNIX MAGAZINE 2001.6

9. UNIX MAGAZINE 2001年6月号

特集リ N ー X の基礎知識 0 設定ファイルの準備 次に Samba の設正をおこなう。最初に、 /usr/local /samba/lib/smb. conf ファイルを用意する。ソースコ ードを展開したディレクトリに examples/smb. conf. default. ja というサンフ。ルの成疋ファイルがあるので、 れをコピーして編集すればいいだろう。 それでは、設定ファイルをみてみよう。この成疋ファイ ルには日本語でコメントか書かれているので、注架くコ メントに従って設定すれはよい。とくに、以下の点に注意 する。 ・ワークグルーフ窈旨定 Microsoft の提供するネットワーク環境では、すべて のホストは、ホスト名とそのホストか属する、、ワークグ ループ (workgroup)" によって識別される。 NT ドメ インか力している場合は、ワークグルーフ。の代わりに 、、ドメイン " によって識別する。そこで、必要なワーク グルーフ。名、または NT ドメイン名を指定する。システ ムを接続したネットワーク竟で SMB ドメインか設定 されているのであれば、ドメイン名を合わせておいたほ うがよいだろう。これは、以下の行の指定でおこなう。 workgroup = IP1ab ・ユーサー認証の去窈旨定 これについては、一殳には Samba サーバーか稼動して いる UNIX システムでのユーザー・アカウントにもと づく認証を利用する。そのための設定は、以下のように 当する。 security = user ・ domain master 、 10Ca1 master 、 preferred master 、 os level の成正 Samba サーバーを稼動させる工竟に応じて設定する必 要がある。この部分については、さまざまな状況に応し たテンプレートか複数用意されている。テンプレートの 説明を読んで必要なものを設定し、その他はコメントア ウトしておく。たとえは、同一サプネット内に、さきほ ど workgroup 行旨定したワークグループに所属する Windows NT / 2000 のシステムか下力している場合な どは、テンプレートの説明に従って、 domain master 10Ca1 master = no preferred master Ⅱ 0 os 1eve1 0 を有効にする。 ・クライアント (Windows システム ) で使用する言語の 指定 通常は、以下に示すデフォルトの設定でよい。 client code page 932 ここで指定されている、、 932 " という値は、 MS-DOS Japanese Shift-JIS のし御未である。 ・ coding system フ日疋 クライアントが Shift-JIS コードで送信した日本語の ファイル名を、 UNIX ファイルシステムに書き込むと きの文字コードを指定する。通常は、 EUC を指定して おけは間題が少ない。 coding system = EUC ・接続可能なホスト窈旨定 host allow では、 Samba サーバーに接続を許可する ホストの IP アドレスを指定する。通常は、ローカルの LAN およびルーフ。バック・インターフェイスからの アクセスを許可すればよい。以下のように指定すると、 ルーフ。バック・インターフェイス ( 127.0.0.1 ) とロー カルの LAN ( 133.1.134 / 24 ) からのアクセスを許可 する。 hosts a110W = 127. 133. 1 .134. この例ではネットワーク単位で指定しているが、もちろ ん各ホストの IP アドレスをすべて列挙してホスト単位 のアクセス制御をおこなうこともできる。 ・シンポリック・リンクの扱いク旨定 シンポリック・リンクをたどってアクセスさせるのは なにかと危険なので、通常は以下のように設定して禁止 する。 f0110 symlinks = Ⅱ 0 ・プリンタの成正 Samba の本来の目的である、、 Windows のホストから のネットワーク共有を利用した印刷 " を実現するための 設定である。つまり、 UNIX 環境て利用しているプリン タを Windows システムに対してもサービスできるよ うにする。これは、 printcap の成正に従って指定する。 1 三ロ 46 UNIX MAGAZINE 2001.6

10. UNIX MAGAZINE 2001年6月号

lnside Cygwin 藤枝和宏 UNIX のアクセス権限のエミュレーション この記事力階さんの目に触れるころには Cygwin DLL 1.3.0 がリリースされているはすだ。則回のバージョン 1.1.8 から、 1.2 を飛ひ越して 1.3.0 である。たしかに今回 のバージョンには、Ⅵⅱ ndows のショートカットを使った シンポリック・リンクの実装など、かなり大きな変更が含 まれている。しかし、 1.3.0 というバージョン番号は、そ んなこととはまったく関係のない理由で付けられている。 このバージョン番号は 1.1.8 の開発中にすでに決まって いた。以前から噂のあった製品版の Cygwin 1.2 がリリー スされそうだったので、 Cygwin 1.2 が出る前にさっさと 1.1.8 をリリースして、次を 1.3.0 にすることにしたため だ。だから、今回のバージョンアッフがバグフィックスだ けだったとしても、バージョン番号は 1.3.0 になっていた はずだ。そうなったとしても、いまごろは Cygw ⅲ 1.2 が 発売されていて、 1.3.0 というバージョン番号はユーサー に自然に受け入れられるはすだった。 ところが、 Cygwin 1.2 の話は立ち消えてしまった。正 確には、 Cygwin 1.2 を一殳ューザー向けにオンラインス トアで売る話がなくなってしまった。 Cygwin 1.2 を入手 するには、 GNUPro という GNU の開発ツールのサポー ト製品を Red Hat から購入するしかない。価格はもっと も安いもので 5 インシデントあたり 1 万ドルで、配布さ れるのは Cygwin DLL と開発ツールだけである。残念 ながら、 1.2 は普通のユーサーには縁のないバージョンに なってしまった。 さて、前回説明した Cygwin DLL によるアクセス権 限のエミュレーション方式には、ファイルに所有者とグ はじめに 114 ループの念がない、書込別限と実行権限しか制御でき ない、 ls —F を実行するだけでファイルの atime か更新 されるといった間題があった。今回はこれらの間題を解消 できる、 Windows NT / 2000 に固有の機能を使った工 ミュレーション方式である ntea と ntsec について説明し よう。 Windows NT / 2000 では、ファイルシステムのもつ サイズや日該リなどの属性とは別に、アプリケーション固有 の属性をファイルやディレクトリに付できる。これを 拡張属性 (Extended Attributes) という。これはもと もと OS/2 の機能で、 OS/2 との親和性を高めるために Windows NT に導入されたものである 1 。 Cygwin DLL は、拡彊属性を使ったアクセス権限のエミュレーション方 式をサポートしており、環境変数 CYGWIN に、、 ntea" を設定するとこの方式か有効になる。 竟変数 CYGWIN の設定方法 ところで、環境変数 CYGWIN の設定を . bashrc など のシェルの設定ファイルでおこなうのは、トラブルのも となのでやめたほうがいい。この環境変数の値が Cygwin DLL に読み込まれるのは、 Cygwin のアプリケーション の起重加で、それも main 関数か呼ばれる前である。シェ ルの設定ファイルはそのあとに読み込まれるので、工韆竟変 数 CYGWIN を設疋してもシェル自身の Cygwin DLL には応央されない。 1 こク韋は、うプログラマー仕・一ト ) 』 (Greg Pascal zachary 著、山羊一一訳日経 BP 出版センター、 1994 を読むとう切、る。 拡張属性を利用する (ntea) UNIX MAGAZINE 2001.6