コマンド - みる会図書館


検索対象: UNIX MAGAZINE 2004年5月号
41件見つかりました。

1. UNIX MAGAZINE 2004年5月号

連載 / U N Ⅸ便利帖ー 0 anacrontab. sample PATH=/bin : /sbin : /usr/bin : /usr/sbin 図 3 1 2 3 4 5 6 7 8 10 # days # delay # id # days 1 30 make sure the command is executed at least every delay in minutes, before a command starts id Of a command ' days ) days delay 5 15 60 id daily weekly monthly command periodic daily periodic weekly periodic monthly weekly 、 monthly という引数を与えて実行するように書 かれています。行頭の数字はコマンドを動かす間隔を日数 で指定したもので (days) 、その次は anacron がこのファ イルを読んでから何分後にコマンドを起動するか (delay) 、 そして、このコマンドに与える ID (id) が指定されてい delay の指定で、各コマンドの起動順序をある程度決め ることができます。これによって、、、同時に動いては困る " ようなコマンドの実行を制御するわけです。 anacron に引 数を与えて、コマンドの起動順序をきちんと指定すること もできますにれについてはあとで説明します ) 。 id は、 anacron が各コマンドを区別するために利用す るもので、 anacrontab 全体を通じてコマンドと 1 対 1 に 対応していなければなりません。 anacron は、コマンド の実行履歴を管理するために /var/spool/anacron ディ レクトリを利用します。このとき、 id の部分で指定した 名前のファイルがこのディレクトリに作られ、各コマンド が実行された日付が書き込まれます。たとえば、図 3 で periodic daily" が実行されると、 /var/spool/anacron /daily というファイルに実行日カ第己入されます。 anacron は、このファイルを利用して、各コマンドを次に実行する 日を決定します。 anacrontab の役割か理解できたら、サンプルファイル の /usr/local/etc/anacrontab. sample を設疋ファイル として使えるようにコピーします。 % cd /usr/local/etc % sudO cp anacrontab. sample anacrontab これで、 anacron で periodic コマンドを実行する設疋 ができました。 次に、それまで cron が管理していた periodic コマンド の実行を停止します。それには、 /etc/crontab から pe- riodic コマンドカ艚かれている行をコメントアウトまたは UNIX MAGAZINE 2004.5 削除します 3 。図 1 では 17 ~ 19 行目がこれに相当します。 以上で、 anacron 経由で periodic コマンドを実行する 準備カ墜ったことになります。 anacron の実行 あとは anacron を起動すれば、 anacrontab ファイルに 書かれているとおりに periodic コマンドが実行されます anacron コマンド自体はバックグラウンドで実行されま す ) 。ためしに root になってコマンドラインから実行する と、実行言冢を残すディレクトリ (/var/spool/anacron) に各 id のファイルカ胙られ、 delay で指定した遅延時間後 に各コマンドが実行されます。 # anacron # ls /var/spool/anacron daily monthly weekly そして各コマンドの実行が終了するたびに、その id に対 応する名前のファイルに実行日が書き込まれます。以下の 例では、 2004 年 3 月 8 日に、 periodic daily" が実行さ れたことが分かります。 # cat /var/spool/anacron/daily 20040308 anacrontab に書かれた最後のコマンドが実行される と、 anacron も終了します。 anacron の引数 通常、 anacron に引数を与えなくても問題はないはずで すが、以下に利用できる引数を挙げておきます。さきほど ちょっと触れたように、 anacrontab に言当されたコマン ドの実行順を重視するときには、 、、一 s " を与えます。 -f 各コマンドを強制的に実行します。 3 いろいろな場面で、しまった ! " と思うことの多い私としては、削除よりコメ ントアウトをお勧めします。 161

2. UNIX MAGAZINE 2004年5月号

連載 / UN Ⅸ便利帖ー 0 リスト 1 6 日おきに anacron を実行 0 -s -t 3 , 9 , 15 , 21 /usr/local/sbin/anacron -u 各コマンドを実行せずに、実行した日付だけを更新し ます。 各コマンドを逐次実行します。前のコマンドカ鮗了す るまで次のコマンドを起動しません。 ーⅡ遅延時間を無視してコマンドを逐次実行します。 anacron をフォアグラウンドで実行します。 -q 上記の一 d と同時に指定すると、メッセージカ咄力さ れません。 標準以外の anacrontab を指定します。 -V バージョン情報を表示して終了します。 -h 簡単な利用法を表示して終了します。 162 なして説明します。 こでは 2 つをほ司じ状態とみ 4 またはサスペンド状態かもしれませんが、 開けてスリープ状態 4 を解除し、使い終えたら蓋を閉じて ノート PC の利用形態をみると、使い始めるときに蓋を そうはいかないでしよう。 これでもなんとかなりますが、個人のノート PC の場合は 置された PC なら、電源を朝入れて夜切ることが多いので、 自体を毎日起動しなければなりません。大学の演習室に設 る必要が出てきます。この場合、上記の定だけでは、 PC と、 anacron を毎日 ( すくなくとも 1 日に 1 回 ) 起動す しかし、 periodic daily " を毎日実行させようとする /usr/local/sbin/anacron # ! /bin/sh anacron が実行されるようになります。 保存し、実行権限を与えました。これで、毎起動時に これを /usr/local/etc/rc. d/anacron. sh という名前で スクリプトの内容は以下のようにごく簡単なもので、 ことにしました。 動スクリプトを /usr/local/etc/rc. d ディレクトリに置く うが後々のメンテナンスなどがしやすいだろうと考え、起 りも、ほかのデーモンプロセスと同様の方式で起動したほ た。しかし、私は / etc ディレクトリにファイルを置くよ anacron を /etc/rc. local から実行しなさいとありまし インストール直後に表示されたメッセージ ( 図 2 ) には、 anacron 実行のタイミンク スリープ状態にすることが多いようです。したがって、シ ステムにとくに問題がなければ、再起動はほとんどおこな われません。このような場合も、 anacron をすくなくと も 1 日に 1 回実行するには、スリープを解除する時点で anacron を実行すればよいでしよう。 FreeBSD では、スリープ状態が解除されると /etc/rc. resume というスクリプトが実行されます。標準では、、目 覚めた " 日付と時刻を記録して sync コマンドを実行する だけですが、このスクリプトに、 /usr/local/sbin/anacron /usr/local/etc/rc . d/anacron. sh のどちらか 1 行を追加すれば、スリープの解除と同時に anacron が実行されます。もちろん、スリープと解除の動 作を 1 日に 1 回以上おこなう必要はありますが、そのタイ ミングで anacron も確実に起動されます。 さきほど書いたように、 anacron は最初に anacrontab ファイルを読み込み、そこに記述されているコマンドが 前回に実行された日付を知るために /var/spool/anacron 以下のファイルを読み込みます。そして、 anacrontab に 書かれている各コマンドが、前回の実行日から指定した期 間が経っても実行されていないときに限り、そのコマンド を実行します。ですから、 1 日に 2 回以上 anacron が起 動されても、 periodic daily" が実行されるのは 1 回だ けということになります。したがって、スリープを解除し た時点での anacron の起動は、 1 日 1 回以上ノート PC の蓋を開ける人にとって理想的な anacron の実行環境と いうことになるでしよう。 さらに念には念を入れて、毎日決まった時刻に anacron を起動するよう crontab に記述しておけは万全です。た とえば、リスト 1 のような行を /etc/crontab に追加する と、毎日 6 時間おきに anacr 。Ⅱか起動されます。こうし ておけば、 1 日に 1 回もノート PC をスリープさせること なく仕事をし続けることがあっても、 anacron か起動する 可能性が大きくなります。 ( みやした・けんすけ京都女子大学 ) UNIX MAGAZINE 2004.5

3. UNIX MAGAZINE 2004年5月号

3 律儀な cron UN Ⅸ便利帖 40 宮下健輔 anacron になります。 あらかじめ決められた日時に任意のコマンドを実行する ための仕組みとして cron があります。これは、、、〇月〇 日の x 時 x 分に△△というコマンドを動かしなさい " とい う命令を crontab と呼ばれる一覧表にまとめておくと、 1 分に 1 回、 cron というデーモンプロセスがこの表をチェッ クし、その時刻に動かすべきコマンドがあればそれを実行 するというものです。 次ページの図 1 は、 FreeBSD におけるシステム標準の crontab である /etc/crontab です 1 行頭が、、 # " の行はコメントです。 5 ~ 7 行目の、、変数名 = 値 " という言当は、コマンドを実行する環境の指定です。 肝腎のコマンド実行を指定する行では、時刻、ユーザー名、 コマンドの順に言当します。たとえば、図 1 の 17 行目は、 、、毎日、午前 3 時 1 分に root の権限で、 periodic という コマンドに daily という引数を与えて実行しなさい " とい う未です。 この periodic というコマンドは、その名が示すとお り、定期的に実行するコマンドを集中管理するために用い られます。これに、、 daily" という引数を与えると、 /etc/ periodic/daily というディレクトリの下にあるコマンド が実行されます。このディレクトリには、 1 日に 1 回か ならす実行することカましいようなコマンドが置かれて います。同様に、、、 weekly" という引数で 1 週間に 1 回、 monthly" では 1 カ月に 1 回、コマンドを実行すること 1 ユーザーごとの crontab は、 crontab コマンドで閲覧・編集すること ができます。詳しくは *rnan 1 crontab " を参照してください。また、 crontab の書式については "man 5 crontab" で参照できます。 UNIX MAGAZINE 2004.5 この cron という仕組みがうまく働くためには、コンピ ュータカ晦日 24 時間ずっと稼動していなければなりませ ん。たとえば、さきほどの periodic などのコマンドは、通 常は深夜や早朝に動かすように設定します。ところが、個 人の所有するノート PC や大学の演習室にある pc などの 多くは 24 時間稼動ではありません。ノート pc は、仕事 や遊びで使われていないときはスリープもしくは電源が切 られている状態でしようし、演習室にある pc は、学生の いない夜間は節電のために電源が切られているのが普通で す。つまり、これらの PC では periodic コマンドがめっ たに実行されないことになります。 すぐに思いっく対策は、 periodic コマンドを昼間の比較 的電源が入っていることの多い時間帯に実行するというも のでしよう。しかし、その時間帯に電源が切られていれば、 やはりコマンドは実行されません。 アバウトな anacron これよりも、、、もっとアバウトに " 考えられたのが今回紹 介する anacron です。 anacron は、、、起動する時刻を厳 密に指定しなくてもよい " 、つまり、、 1 日に 1 回 " とか、、週 に 1 回 " といった頻度で実行すればよいコマンドを効率よ く動かす仕組みです ( 逆に、、、〇時 x 分に実行しなさい " と いう指定はできません ) 。 anacron の公式 WWW サイトは、 ・ http://sourceforge.net/projects/anacron です。ただし、開発自体はほば終了しているらしく、 2000 年 6 月のバージョン 2.3 のリリースを最後にアップデート 159

4. UNIX MAGAZINE 2004年5月号

特集インターネットと世界のすきま ーダーはコマンド / レスポンス方式のプロトコルを用いた デバイスと通信するため、すこし扱いカ灘しい。 RFID タ グを読み書きするソフトウェアを作成するための前提知識 として、 RFID リーダーの動作の概要を述べる。 ー-ヨ殳に RFID リーダーは、上位コンポーネントからのコ マンドに従って RFID タグや RFID リーダー自身に対す る処理をおこなう。処理の結果としてなんらかのレスポン スを返すが、かならずしも 1 つのコマンドに対してレスポ ンスが 1 っとはかぎらない。コマンドによっては、複数の レスポンスカ咥生する場合もある。 オムロンの V720 シリーズには数種類のリーダーユニッ トが用意されているが、各リーダーユニットの扱いも統一 されていない。そのため、機種ごとに依存したアプリケー ションを書くか、アダブテーション層を設計してその差を 吸収する必要がある。今回はそこまではやらずに、 CF タ イプの RFID リーダー ( 形 V720 ー HMFOI ) の利用方法 に絞って説明をする。 CF 型 RFID リーダー 実祭に RFID リーダーを扱うためには、さまざまなコマ ンドとそのレスポンスのセットを理解しなければならない。 タの動リ言 の扱い方をとりあげる際に詳しくみていくことにする。 具体的なコマンドについては、次回以降、 RFID リーダー を扱ううえで必要となる知識をまとめてみた。 まず、具体的なコマンドの説明ではなく、 RFID リーダー 48 操作がけっこうややこしい。ユーザーエリアは、 4 バイト モリマップを意識して操作する必要がある。しかし、この 自由に RFID タグへデータを読み書きできる領域だが、メ テム領域についての解説は割愛する ) 。これはユーザーが チップ内にはユーザーエリアという記億領域がある ( シス さきに述べたように、 I-CODE 1 や I-CODE SLI の メモリマップ 必要がある。 メータとしてどちらのタグをアクセスするのかを明示する マンドでもそのフォーマットが一致しているだけで、パラ SLI 共通のものと、それぞれに専用のものがある。共通コ 両方を扱えるが、コマンドは I-CODE 1 および I-CODE 形 V720 ー HMFOI は、 I-CODE 1 と I-CODE SLI の ごとに 1 ページという単位でまとめられている。ページは 記應領域の最小アクセス単位であり、 RFID タグのデータ を読み書きする際には、ページごとにアクセスする必要が ある。 I-CODE SLI では、 16 ページをバンクとしてまと めて扱う。バンクは最大アクセス単位として位置づけられ ており、バンクを超えての同時アクセスはできない。以上 のように、 RFID タグの読み書きの際には、プログラマーや ユーザーがページやバンクを指定して操作する必要がある。 格納データ 格納するデータとしては 16 進数の数値データと ASCII コードが指定可能である。 RFID を読み書きするコマンド を実行するときは、明示的に HEX または ASCII を指定 する必要がある。 交信モード RFID を読み書きするコマンドを実行する場合、交信モ ードも指定しなければならない。交信モードは、 RFID リ ーダーとタグ間のコマンド、タグ動作、レスポンスの手順 とタイミングを規定している。タグがどのようにリーダー と関係するのか、つまり対象となるアプリケーションの性 格を考慮して選択しなければならないため、実際にアプリ ケーションを作る際にさまざまな実験が必要となる場合も ある。 よく使う言モードには、以下の 2 つがある。 ・シングルトリガー コマンド受信後、すぐにタグを読み書きしてレスポンス を送信する。コマンド発行時にタグが検出範囲になけれ ば、タクく在工ラーをレスポンスとして送信する。 ・ FIFO リピート コマンドを受信したあと、タグが検出範囲に入りしだい タグを読み書きしてレスポンスを送信する。別のストッ プコマンドを受信するまで連続的にタグを処理し、いっ たん処理されたタグは再度検出範囲に入らないかぎりア クセスされない。 いずれもまったく動作パターンが違うことが分かるだろ う。これ以外の交信モードとして、 ・シングルオート ・シングルリピート ・ FIFO トリガー UNIX MAGAZINE 2004.5

5. UNIX MAGAZINE 2004年5月号

連載 /Services for UNIX - ー① ウインドウべースの管理ツール さきほども説明したように、 SFU の管理は、、管理ツー ル " フォルダか、 Windows Services for UNIX" フォル ダにある、、 Services for UNIX の管理 " ( 図 5 ) 、あるい は SFU 管理用のコマンドライン・ツールを使っておこな います。 Services for UNIX の管理 " ツールは Windows 標準 の管理ツールである MMC ( マイクロソフト管理コンソー ル ) のスナップインとして提供されているので、ほかのよ く使うスナップインと組み合わせ、専用の管理コンソール にすることもできます。その場合は、 MMC を起動し ( コ マンド・プロンプトやスタートメニューの、、ファイル名を 指定して実行 " で mmc と入力します ) 、 MMC の、、ファ イル " メニューから、、スナップインの追加と削除 " を選択 します。 [ 追加 ] ボタンをクリックすると、利用可能なス ナップインが表示されるので、そのなかから、、 Windows Services for UNIX" を i 尺します。 Services for UNIX の管理 " ツールでは、左ペインに 表示された各コンポーネントをクリックすると、右ペイン にその管理画面が表示されます。右ペインには複数のタブ が表示されることもあるので、その場合は各タブをクリッ クします。ただし、 SFU の各コンポーネントで使用する ユーザー名マッピング・サーバーの指定だけは、操作が 異なるので注意してください。この場合は、左のペインの コンポーネントをクリックするのではなく、一番上にある Microsoft Windows Services for UNIX" をクリック し、さらに、、設疋 " タブをクリックします。以上のように ウインドウべースの管理は直感的におこなえます。 コマンドラインの管理ツール SFU では、コマンドラインでもすべての管理作業をおこ なうことができます。提供されているコマンドラインの管 理ツールは表 4 のとおりです。 これらの管理コマンドは、パラメータとしてコンピュー タ名を指定することもできるので、リモートマシンの管理 も可能です。操作をおこなうユーザーのユーザー名とパス ワードを入力すれば、ふだんは一般ユーザーのアカウント で操作している場合でも、 SFU の管理だけは管理者権限で おこなえます。各コマンドで利用できるパラメータの一覧 UNIX MAGAZINE 2004.5 TeInet サーバー Windows Cron サービス 表 4 コマンドラインの里ツール SFU 全体の設疋 ユーザー名マッピング・サーバー NFS 管理 NIS サーバー sfuadmin. exe mapadmin. exe nfsadmin. exe nisadmin. exe nis2ad. exe msmap. exe tnadmin. exe cron. exe は、ヘルプファイルか、各コマンドに、、 / ? " を付けると表示 されるコマンドの使い方に示されています。 さきほど、、 Services for UNIX の管理 " ツールの解説で とりあげたユーザー名マッピング・サーバーの指定は、コ マンドラインでは次のように実行します。 sfuadmin config mapsvr= サーノヾー名 なお、管理コマンドの出力は通常は日本語ですが、コー ドベージ 2 を 437 に変更すれは英語のメッセージに切り 替えることができます。コマンド・プロンプトで、、 chcp 437 " または、、 us " とタイプするとコードベージが 437 に 切り替わります。もとの日本語のコードベージに戻すに 、、 chcp 932 " もしくは、、 jp" とタイプします。 telnet は、 などでリモートシステムからログインして操作する場合、 システムによっては日本語が出力できなかったり、異な る文字コードを使っている場合があるかもしれません。そ のようなときは、英語メッセージに切り替えればよいでし よっ。 以降の各コンポーネントの説明では、 Services for UNIX の管理 " ツールではなく、コマンドッールを使った 方法を中心にとりあげます。 ユーサー名のマッピング SFU では、 Windows ユーザーと UNIX ユーザーの 対応づけのために、ユーザー名マッピング・サーバーを提 供しています。ューザー名マッピング・サーバーは、 Win- dows ユーザーやグループの内部識別子である SID ( セキ ュリティ識別子 ) と、 UNIX のユーザーやグループを識別 する UID や GID とのマッピングをおこないます。 たとえば、 Windows と UNIX の各プラットホームに 表 5 のようなユーザーが登録されていたとします。 2 Windows のレガシー・アプリケーション用の文字コードの念 123

6. UNIX MAGAZINE 2004年5月号

ー① 連載 /Services for UNIX 図 21 gwshare コマンドによる共有 E: は decian. unix. 10Ca1. root:/home に正常に接続しました C:*>mount ー 0 lang=euc—jp decian. unix. root .10Ca1 : /home * 図 22 mount コマンドによるマウント コマンドは正常に終了しました。 C:*>gwshare add —d x: —n decian. unix. root .10Ca1 :/home —s decianhome コマンドは正常に終了しました。 'Home 0 Ⅱ ー 1 euc-JP 表 6 テフォルトのアクセス権 言諏り翻ムみ 実行 X ユーザー グループ その他 X 必要に応じて、 chmod コマンドを実行し、読取り、書 込み、実行のアクセスモードを適切に変更するようにして ください。 UNIX 上の NFS 共有を Windows クライアントにゲー トウェイを介して提供するには、ウインドウべースのツー ル gwconfig か gwshare コマンドのいずれかを使います。 図 21 は gwshare コマンドをイ吏用し、 decian. unix. root .10Ca1 で NFS を使って工クスポートされているディレク トリ /home を、 NFS ゲートウェイで Windows クライ アントに共有する例です。 NFS サーバーの場合と同様、ファイル名が日本語のファ イルのために EUC-JP からの奐を肩効にしています。 NFS クライアント NFS クライアントは、 Windows から UNIX 上の NFS 共有にアクセスするために使用します。ェクスプローラか ら、、ネットワーク・ドライプの割り当て " を使う方法と、 mount や、、 net use" コマンドを使う方法があります。い ずれの場合も共有名は Windows 標準の UNC 形式、すな わち、、¥¥サーバー名¥共有名 " の形式か、 NFS でよく使 われる、、サーバー名 : / 共有名 " の形式で指定します。 図 22 の例は、 mount コマンドで decian. unix. local . root:/home を任意のドライプ名でマウントしています ( 結果的に E ドライプにマウントされています ) 。 指定できるオプションは、このほかにも fileaccess や mtype 、 retry などがあります。 fileaccess は、 NFS ゲー トウェイの場合と同様に、 Windows から作成されたファ イルやディレクトリのファイルアクセス・モードのデフォ 130 ルトの設疋をおこないます。 mtype はソフトマウントと ハードマウントの切替え、 retry はソフトマウントをおこ なった場合の再言回数を設定します。言田は、、、 / ? " でコ マンドの使用法カ俵示されるので、そちらをご覧ください。 工クスプローラからは、 、、ネットワーク・ドライプの 割り当て " 以外にも、、、マイネットワーク " から NFS で 共有されたファイルにアクセスできます。、、マイネット ワーク " から、、ネットワーク全体 " をクリックし、さらに 、 NFS Network" をクリックします。、、 Default LAN" と、、 Favorite LAN" の 2 つのアイコンがあるので、いず れかをクリックします。それぞれの LAN 上にある NFS サーバーが表示されるので、そこから NFS 共有を選択し、 ファイルにアクセスできます。 なお、、、 DefauIt LAN " には同一セグメントの LAN にある NFS サーノヾーカ汐リ挙されます。一方、、、 Favorite LAN " ではあらかじめ追加しておいたよく利用するホス トが表示されます。、、 Favorite LAN " へのホストの追加 は、、 Favorite LAN " のアイコンをマウスで右クリック し、、、ホストの追加と削除 " でおこないます。 、、 NFS Network" への LAN の追加も可能です。こちら は、、、 NFS Network " のアイコンをマウスで右クリック し、、、 NFS LAN の追加と削除 " で設定します。 ☆ 今回は、 SFU の導入から NFS コンポーネントの設疋 までを解説しました。おもにコマンドラインでの操作につ いて説明しましたが、 Services for UNIX の管理 " ツー ルや他のウインドウべースのツールからの設定も可能です。 卿未があれば、それらも試してみてください。 次回は、 NIS とパスワード同期、および lnterix サプシ ステムについて解説します。 ( おいかわ・たくやマイクロソフト ) UNIX MAGAZINE 2004.5

7. UNIX MAGAZINE 2004年5月号

ー 0 連載 /Services for UNIX 図 8 現在の言諚内容の表示 更新間隔 UNIX ユーザーとグループのソース : NIS localhost の設定 C : *>mapadmin サポートしていますが、以後の説明では NIS の使用を肘是 : 1 日 0 時間 0 分 UNIX MAGAZINE 2004.5 応づける必要があります。以下は、 Windows ドメイン 一方、詳細マッピングは個別にユーザーやグループを対 ると表示されます ( 図 9 ) 。 リストは、 list サプコマンドに -simple オプションを付け 簡易マッピングで対応づけられたユーザーとグループの 設定が正常に更新されました。 C : *>mapadmin adddomainmap —d windows —y nisdom しています。 いう名前の NIS ドメインを簡易マッピングのソースに指定 windows という名前の Windows ドメインと nisdom と サプコマンド adddomainmap を使います。この例では、 けでかまいません。これには以下のように、 mapadmin の となる Windows ドメインと NIS ドメインを指定するだ 簡易マッピングを使用する場合は、マッピングのソース 設定が正常に更新されました。 C:*>mapadmin config —r 0000 : 12 : 00 以下は、 12 時間おきに更新するように設疋しています。 します。この更新間隔を設定するのが -r オプションです。 る Windows と UNIX のユーザー / グループ情報を更新 ューザー名マッピング・サーバーは、定期的にソースとな 設定が正常に更新されました。 C : *>mapadmin config —i NO 以下は、簡易マッピングを無効にしています。 ピングは、一 i オプションにより肩効 / 無効を譿定できます。 ッピング・サーバーの基本設定を変更できます。簡易マッ mapadmin のサプコマンド config では、ユーザー名マ じ結果になり、現在の設定内容か表示されます。 実行すると、 config サプコマンドを付けて実行したのと同 mapadmin コマンドをパラメータなしで図 8 のように コマンドでおこないます。 ユーザー名マッピング・サーバーの管理は mapadmin ルプなどを参照してください。 とします。 passwd/group ファイルを使用する場合はヘ windows のユーザー kusumoto と、 NIS ドメイン nis- dom のユーザー kusumoto を対応づける例です。 C : *>mapadmin add —wu windows*kusumoto - —uu kusumoto@nisdom マップは正常に追加されました。 ユーザー名マッピングに変更を取り入れるのに少々時間がか かることがあります。 設定が正常に更新されました。 詳細マッピングでのマッピング結果のリストは、 list サ プコマンドの -advanced オプションで取得できます ( 図 10 ) 。 言田ユーザー・マッピングの表示では、 Windows ユー ザーのユーザー名の前に、、 * " カ寸いていますが、これはプ ライマリ・マッピングであることを示しています。ューザ ー名マッピング・サーバーは 1 つの UNIX ユーザーに複 数の Windows ユーザーを対応づけることができますが、 プライマリ・マッピングは複数のマッピングがおこなわれ ていた場合に優先される対応づけのことです。 ューザー名マッピング・サーバーの設疋とマップの内容 は、サプコマンドの backup でバックアップしたり、 re- store で復元したりすることができます ( 図 11 ) 。障害の 発生に備え、マップの内容は定期的に保存しておくとよい でしよう。 以上のように、 mapadmin コマンドを使うと、大量 のユーザーの対応づけをバッチ処理することができます。 なお、 Windows ドメインへのユーザー登録を同時にお こなう場合は dsadd コマンドが使えます。たとえば図 12 の例は、 DN が、、 cn=UNIX Magazine,cn=Users, dc=windows,dc=root,dc=local" で、 SAM アカウント および UPN が unixmag のユーザーを作成します。 Windows ドメインへのユーザーの登録は、 net user コマンドでもおこなえますし、 ADSI (Active Directory Services lnterfaces) を使ってほかの処理を組み合わせ たスクリプトを作成することもできます。また、 ldifde や csvde というコマンドを使用し、ディレクトリに登録する 情報を LDIF (LDAP lnterchange Format) や CSV 形 式のファイルから読み込むこともできます。これらのコマ ンドを mapadmin と組み合わせれば、 Windows のユー ザー管理と、ユーザー名マッピング・サーバーへのマップ の登録を同時におこなうことができます。 125

8. UNIX MAGAZINE 2004年5月号

ー① 連載 /Services for UNIX 表 3 SFU で撼共されるサーヒス サービス lnterix サービス・インターフェイス Telnet サーバー PCNFS サーバー NIS サーバー NFS サーバー NFS ゲートウェイ NFS クライアント Windows Cron サービス Windows Remote Shell サービス ユーザー名マッピング 図 5 Services for UNIX の管理ツール ファイル槲乍 (A) 表示 OØウインめヘルプ ( 印 M ロ 0S0 れ Wrdows Serv1ce 新 Microsoft Windows Services ー 0 ′ tJNIX サービス名 lnterix Subsystem Startup Client for NFS Gateway for NFS Server for NFS Server for NIS Server for PCNFS Telnet Windows Service Remote Shell Service User Name Mapping サーバー切定 クライアントグループ サービス名 ( サービスキー名 ) zzlnterix Client for NFS Gateway for NFS NfsSvc NisSvc Pcnfsd Tlnt Svr ervice RshSvc MapSvc 属読み込み⑧・用い、」② 」製 FS サー′ト NFS ゲートウ 1 イ Tehet サーバー PCNFS サー / ト ユーザー名マ死ング バスワード司期 ーサーバー ローカルコンビュータ上の NFS サーバー ロッり クライアントが指定された NFS 共有に対して持つアりセス宿を制御する似こグループ名を使用してください。グループを作成す引こは、グループ名を入力し噺規 ] を列 ッりしてください。 グループ名 0 : 現在のグループ (C ) : クライアントを男トプに追加したりグループのクライノトを表示したりす引こは、一覧なら男トプを選択してま総情報 ] をグルクしてください。 追加するりアントの名前を入力して [ りライアントの追加 ] をグルりし ( くい アントー ~ al 1 コ りライアントの一覧 - DEV: 名前 = NfsSvc Windows のサービス名には、表示名のほかにサービス キー名とも呼ばれる狭義のサービス名があります。サービ スを制御する sc コマンドは、サービスの設定変更の際に ( 狭義の ) サービス名を引数とするので、まず getkeyname サプコマンドでサービス名を取得します。その結果、 Nfs- Svc が NFS サーバーサービスのサービス名であることが 分かったので、次にサービスを肩効化します ( 下記の例では auto の前に半角スペースがあることに注意してください ) 。 C:*>sc config nfssvc start= autO [SC] ChangeServiceConfig SUCCESS そして、最後にサービスを開始します。 C:*>sc start nfssvc 122 サービスの開始や停止には、、 net start" コマンドも使え ますが、サービスの有効 / 無効化はできないので sc コマン ドを使っています。ただし、いったんサービスを肩効にし てしまえば、 sc や、、 net start" コマンドを使わなくても、 SFU の管理コマンドでサービスを開始 / 停止することがで きます。もちろん、、、管理ツール " フォルダの、、サービス " を使っても肩効 / 無効化や開始 / 停止は可能です。なお、 sc コマンドは Windows XP や Windows Server 2003 で は OS の一部として提供されていますが、 Windows 2000 ではリソースキットに含まれます。 参考までに、 SFU で提供されるサービスの一覧を表 3 に まとめます。 UN 工 X MAGAZ 工 NE 2004.5

9. UNIX MAGAZINE 2004年5月号

図 1 1 3 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 図 2 連載 / UN Ⅸ便利帖ー 0 FreeBSD の /etc/crontab # /etc/crontab ー root ' s crontab for FreeBSD 1 . 21 . 2 . 3 2000 / 12 / 08 10 : 56 : 07 obrien Exp $ PATH=/etc : /bin:/sbin: /usr/bin: /usr/sbin SHELL=/bin/sh # $FreeBSD: src/etc/crontab,v HOME=/var/10g #minute hour * / 5 mday month wday who root # rotate 10g files every hour, 0 if necessary # do daily/weekly/monthly maintenance 1 15 30 3 4 5 6 1 root root C ommand /usr/libexec/atrun newsyslog periodic monthly periodic weekly periodic daily # time zone change # does nothing , if # See adjkerntz(8) 1 , 31 adjustment for wall cmos clock, you have UTC cmos clock. for details . root adjkerntz —a インストール終了時のメッセージ Configuration hints : Deactivate the 'periodic' commands in /etc/crontab Activate the ) periodic ' commands in anacrontab Copy /usr/local/etc/anacrontab. sample t0 /usr/local/etc/anacrontab Add 'anacron' to /etc/rc .10Ca1 Read anacron(8) and anacrontab(5) されていないようです。 インストール Linux のいくつかのディストリビューションでは標準で anacron カ吏えますが、 FreeBSD では自分でインストー ルしなければなりません。とはいっても、上記のページか らソースなどをダウンロードする必要はなく、 port または package を用いて簡単にインストールできます。 たとえば p 。 rt を利用するのなら、次のようにします 2 % cd /usr/ports/sysutils/anacron % sud0 make install anacron のインストールには GNIJ make や gettext ライプラリが必要なので、これらがシステムに入っていな いと自動的にインストールされます。その場合は、作業に 2 この例の sudo コマンドは、一時的に管理者権限を得るためのものです。 anacron と同じく、 port を使って /usr/ports/security/sudo か らインストールできます。 0 160 すこしよぶんな時間がかかるかもしれません。 インストールが終了すると、最後に図 2 のようなメッ セージカ咄力されます。 以降は、このメッセージに従って作業を進めることにな ります ( 私は、このメッセージの最後に書かれているマニュ アルを真っ先に読みましたが・ まず、 /usr/local/etc/anacrontab. sample ( 図 3 ) を 読みましよう。このファイルは cron に対する crontab と 同じく、 anacron で動かすコマンドを一覧表にしたもので す。 このファイルの 1 行目では、 crontab と同様にして変 数を定義しています。その後に数行のコメントが続き、 8 ~ 10 行目にコマンドを動かすための指定が記述されてい ます。これらは、それぞれ periodic コマンドに daily 、 UNIX MAGAZ 工 NE 2004.5

10. UNIX MAGAZINE 2004年5月号

図 5 kbdsim モジュール使用例 #include く fcntl . h> #include く unistd . h> main ( ) int fd; char s [ 2 ] ; fd = open ( "/dev/kbdsim" , O_WRONLY) ) ; s [ 0 ] 41 ; / * 1 のスキャンコード * / / * キーを押した * / write(fd, s, 2 ) ; sC1] = 0 ; / * キーを離した * / write(fd, s, 2 ) ; 連載 1 Zaurus with Linux を作成するか、 iPKG パッケージから kbdsim. 0 を抜き出 して適当なディレクトリに置きます。そして、デバイスフ アイル /dev/kbdsim を用意し、 insmod コマンドで kbd- sim. 。をカーネル・モジュールとして組み込みます。たと えば、 # mknod /dev/kbdsim c 61 0 # chmod 600 /dev/kbdsim # insmod —f kbdsim . 0 のようにします。 モジュールが組み込まれたかどうかは lsmod で確認します。 コマンド # lsmod Modu1e kbdsim pxa—bi Size 992 21328 Used by 0 (unused) 0 (unused) 外部プロセスからキーボード入力をシミュレートするに UNIX MAGAZINE 2004.5 5 PS/2 キーポードのキーポード・スキャンコードとはまったくの別勿で - す・ いるものを利用します。 linux24/drivers/char/corgi-keymap ・ map に書かれて なお、こ ーで使うキー・スキャンコード 5 は、 kernel/ レークを示す 0 を書き込んでいます。 示す 1 を write で書き込み、最後にスキャンコードとプ ンし、次に 1 キーのスキャンコードである 41 とメークを います。まず、デバイスファイルを書込みモードでオープ では、数字の 1 キーを押して離す動作をシミュレートして は、図 5 のようなプログラムを使います。このプログラム kbdsim の応用 kbdsim モジュールを使って、最終目標のキーポード・ ドライバを作成する前段階として、コマンドラインから指 定した文字列をキー入力に送り込む、、仮想キーボード " ソ フトを作ってみました。このソフトの名称は、仮想キーボ ード (pseudo keyboard) の頭文字をとって、、 pk" としま 0 pk は、次のようにして起動します。 pk s カれ 9 引数の s は、キー入力に送り込む文字列です。この 文字列では、バックスラッシュを使ったエスケープ・シー ケンスカ吏えます。たとえば、 \ r はキャリッジ・リターン ( 0x0d ) 、 \t はタブ ( 0X08 ) 、 \n は直 oxoa ) 、 \ \ はバック スラッシュ ( 0x5c ) になります。また、 \ ゅん勧でコン トロール文字を指定することもできます。 \Ac は ctrl 十 c ( 0X03 ) になります。 簡単な実行例を示します。 # pk 'echo "foo"\r' # echO " f00 " f00 pk -d [ + ト ] scancode. とすると、文字列ではなく scancode で指定したキー・ス キャンコードをキー入力として送り込むことができます。 scancode の前に符号を付けないと、 scancode で示される キーを押してから離す動作をシミュレートします。また、 、、十 " は scancode で示されるキーを押す動作を、 は scancode で示されるキーを離す動作をシミュレートしま す。したがって、次の 2 つの例は、どちらもスキャンコー ド 41 のキー ( 数字の 1 ) を押して離すことをシミュレート 1 行目では、 pk コマンドで、、 echo "foo"\r" という文字 列をキー入力に送り込むことを指示しています。そして、 2 行目では、その送り込まれた文字列がシェルに渡されてェ コーバックされています。 3 行目では、結果として入力さ れた echo コマンドの引数である foo が表示されています。 また、 # pk —d + 41 ー 41 # pk —d 41 することになります。 177