プロンプト - みる会図書館


検索対象: UNIX MAGAZINE 1998年7月号
12件見つかりました。

1. UNIX MAGAZINE 1998年7月号

「たんに出力がファイルに送られただけではないか」と 思うかもしれません。和訟驚いたのは、プロンプトがファ イルに送られたことです。これまで、プロンプトは標準ェ ラー出力に出力されるものと思い込んでいました。標準ェ ラー出力は、エラーの出力に使われるだけではなく、パイ プラインに流したくない情報の出力にも利用されます。シ ェルのプロンプトは、まさにこのような情報だと思ってい たのです。プロンプトか標準出力に出力されるなどとは考 えてもみませんでした。 そこで、ほかのシェルではどうなのかを調べてみまし おもしろいのは tcsh です。さきはどの C シェルと同 様、以下のようにファイルにリダイレクトしてみました。 tcsh —f > tcsh . out すると、プロンプトカ咄ないはかりか、自分が入力した 文字すら見えません。リダイレクトで作成したファイルを 見ると、プロンプト、入力した内容、コマンドの出力結果 のすべてかオ褓内されていました。 tcsh にはコマンド行の編集機能があるので、 tcsh 自身 が入力された文字の表小処理をおこなわなけれはなりませ ん。端末ドライバによる出力を利用していると、ヒストリ ーリストの前のコマンドに移動したときにうまく出力でき なくなってしまいます。そこで、端末ドライバではなく tcsh 自身が出力し、しかも標準出力に対して出力するた めにこのような結果になります。なお、このような入力の 段階でコマンド行編集のためのキーを利用すると、画面の 制御コードカ咄力されます。 B シェル系のコマンドはどうでしようか。 sh では、プ ロンプトは表示されません。パプリック・ドメイン版の ksh では、プロンプトか画面に表示されます。標準ェラー 出力に出力されているのかと思って標準ェラー出力もリダ イレクトしてみましたが、今度はプロンプトか表示されな くなってしまいました。どうやら、いつぶう変わった条 件でプロンプトの出力を制御しているようです。 bash で も実験してみました。ところが、 bash の場合には出力リ ダイレクションをおこなうかたちでは実行できませんでし ーロにシェルといっても、それぞれにすこしすっ挙動 ーー 0 が違っていておもしろいですオ C シェノレに話を戻します。 C シェルでは、基本的に入 86 カか端末かどうかでプロンプトを表示します。これをチェ ックしているのは、 csh. c の 400 行目あたりにある isatty という関数です。 isatty は、引数として指定されたファイ ル・ディスクリプタか端末に割り当てられていれは真を返 します。ます、コマンドの入力についてこの値を詩ヾてお き、あとでプロンプトを出す必要があるかどうかを詩ヾる ときにその値を利用しています。 実際にプロンプトを表示する際には、同じく csh. c で定 義されている process 関数の無限ループのなかで、次の ようにして条件を調べます。 if (intty & & prompt & & evalvec こでは、標準入力か端末か (intty) 、プロンプトを出 してもかまわない起動力・法か、そして、前のコマンドカ哘 末にあるかを石薩忍してプロンプトを表示します。 同様なプログラム UNIX MAGAZINE 1998.7 ているので、シングルカラム形式になっています。こオ功ゞ 2 番目の実列では、出力はパイプを通して cat に渡され め、マルチカラム形式で出力されています。これに対して 最初の実行例は、何も指定せすに ls を実行しているた pas swd more logi 取 % ls ー cat passwd login more % ls 出力されない ) になります。 場合は、シングルカラム形式 ( 1 行に 1 つのファイルしか で more コマンドに送るなどして出力か端末に送られない でも、出力をファイルにリダイレクトしたり、パイフ。経由 ファイルか並ぶかたちで出力されます。同じファイル一覧 置かれたディレクトリで ls を実行すると、 1 行に複数の ラムの出力をおこないます。つまり、複数のファイルが 標準出力か端末の場合には、デフォルトではマルチカ 準出力か端末か否かて処理を変えます。 マンドもその 1 つです。 ls では、シェルとは異なり、標 重川乍を変えるプログラムがあります。頻繁に使われる ls コ ルだけではありません。はかにも、ユーザーの便を考えて 入出力の形態に応して処理を変えるプログラムは、シェ

2. UNIX MAGAZINE 1998年7月号

ロプログラミング・テクニック 多治見寿和 端末の操作 9 前回まで、ハッシュについての説明を続けてきました。 - 、 ' ・ロ ~ 聿いたように、 tcsh でのハッシュの利用力 1 去は csh 則写に日 とは異なります。 csh ではパス名とコマンド名を組み合わ せてハッシュを計算しますが、 tcsh では基本的にはコマン ド名のみを使って計算します。このように、同レ、ツシュ でも目的や効率によっていろいろな使い方ができます。 アルゴリズムやデータ構造など、すこし難しい話題カ いたので、このへんでちょっとひと休みしましよう。今回 はすこし趣を変えて、端末の情報を扱うためのテクニック を紹介します。 C シェルのプロンプト C シェルにかぎらす、シェルは一イ殳にユーサーからの入 力を受け入れる準備ができたことを示すためにコマンド・ プロンプトを表示します。しかし、ファイルを入力として いる場合などはプロンプトを出しません。これはどのよう に実現されているのかをみてみましよう。 コードを見る前に、どこでプロンプトを表示し、どこで 表示しないのかを石忍しておきます。ソースコードを読ん こではさまざまなパターン で調べることもできますが、 で実行して石忍することにします。 最初は、普通に C シェルを起動します。起動 - す - るシェ ルとプロンプトか 1 司しでは分かりにくいので、現在使って いるシェルのプロンプトを、、 " ( ハイフン ) に変えておき ます。さらに、 . cshrc などの景を受けないように -f オ プションを付けています。 % set prompt= ' ー csh -f % exit UNIX MAGAZINE 1998.7 この場合は、 ( 当然です普通にプロンプトが表示さ れます。 次に標準入力を置き換えてみます。もっとも簡単なの は、パイプでオ票準入力を cat コマンドと結ぶガ去です。 cat ー csh —f echo abc abc プロンプトカ咄ないところをみると、標準入力か端末か どうかで処理を変えているようです。 それでは、出力はどのように処理されるのでしようか。 この場合も、パイプと cat を使って調べることができま す。 csh —f ー cat % exit 今度は、プロンプトか表示されています。 この実験をしていて、 1 つ驚いたことがあります。 C シ ェルの出力か端末以外に割り当てられたときにプロンプト が表示されるかどうかを調べるために、 C シェルの出力を となっていました。プロンプトとしての、、 % " 、入力した % exit % abc たファイル csh. out の内容は、 ご覧のように、プロンプトは表示されません。作成され echo abc csh —f > csh . out ファイルにリダイレクトしてみました。 85 したときに出力された、、 % exit" です。 echo コマンドの出力の、、 abc" 、 Ctrl-d でシェルを終了

3. UNIX MAGAZINE 1998年7月号

言されているので、同じ関数か再度呼び出されたときには 最初に設疋された値カ戯っています。つまり、最初にこの 関数を呼び出した時点の端末の状態に戻せるのです。 手軽な方法 ちょっとひと休みといいながら、最後はすこし難しかっ ここて紹介したのか正当な たかもしれません。もちろん、 ガ去ですが、場合によってはもっと簡単に端末を設定する こともできます。たとえは、端末の設定が必要になるとい う意未では、パスワードを入力する場合などがすぐに思い 浮かびます。この場合には、文字のエコーをやめなけれは なりません。これだけなら、もっと簡単な方法で対処でき ます。 UNIX には、 getpass という関数があります。この 関数は、引数に指定された文字列をプロンプトとして表 示しながら 1 行の入力を促します。このとき、端末の 設定が一一時的に変更さオ、入力される文字は端末に表示 されません。ここでの入力は長さカ鴃められていますが (-PASSWORD-LEN) 、入力されるパスワードには十分 な長さでしよう。さらに、入力の末尾の予文字 ( 訓 ( り去 られてヌル文字で終端された文字列として返されます。も ちろん、この関数の実行を終了すれは端末はもとの状態に 戻ります。 login や passwd も端末の設定を一時的に変更します が、これらも getpass 関数を利用しています。たんに getpass という関数があるといわれても、パスワードに 関することだけに不安かもしれません。しかし、 login や passwd でも使われていると聞けは、すこしは安心して使 えるのではないでしようか。 このはかに、プログラムのなかから stty コマンドを呼 び出す、、支 " も使えます。これなら、エコーを消すのも RAW モードにするのも意外に簡単です。次のプログラム system("stty raw") ; int int main() #include く stdio . > を試してみてください。 10 ; i + + ) { UNIX MAGAZINE 1998.7 for (i = 0 ; i く プログラミング・テクニック system("stty —raw") ; putchar('>'); putchar(c) ; putchar(' く ,); c = getchar() ; ☆ ありません。とくに、最後の stty コマンドを利用する方 た。しかし、今回紹介したテクニックは慮えておいて損は たので、端末を制御するプログラムを書く機会も減りまし 以前にくらべると端末上で動くプログラムは少なくなっ する例をとりあげました。 そして最後に、これらの複雑な処理をせすに端末を変更 ドを変更します。 取るために termios というシステムを用いて端末のモー かを調べるだけでなく、コマンドへの制御用の入力を読み 次にとりあげた m 。 re コマンドは、入出力か端末かどう ルカラム形式で出力します。 カか端末か否かによって、マルチカラム形式またはシング を表示するかどうかを決めます。 ls コマンドでは、標準出 は、 c シェルは標準入力か端末か否かによってプロンプト 調べて動作を変えるプログラムをとりあげました。たとえ 最初に、標準入出力か端末に割り当てられているかを 0 今回は、端末に関する情報を扱うガ去についてみてきま ると、処理の過程カ吶単になっていることが分かるでしょ グラムに渡されるだけです。さきはどの more とくらべ をおこなうので、入力した文字は画面に表示されす、プロ このプログラムでは、実行時に RAW モードで入出力 法は簡単なうえに効釉勺です。 91 ( たしみ・ひさかず )

4. UNIX MAGAZINE 1998年7月号

連載 / IJN Ⅸの玉手箱ー② ステムがユーザー情報を高速に参照できるように特殊 なデータベース形式に変換して保存されています。デ ータベース形式のファイルは、それぞれ /etc/pwd. db 、 /etc/spwd. db です (Solaris には、このようなイ督はみは ありません ) 。 グループ名と GID は /etc/group というファイルで対 応づけらそのグループに属するユーサーなどを指定す ることができます。 /etc/passwd や /etc/group などは、ローカルマシン のアカウント情報だけでなく、 NIS (Network lnforma- tion Service) などを用いてアカウント情報をネットワー クで共有する場合にも使われます。 ューサーやグルーフ情報の設定については、ツールも凸 めて次回以降で詳しく説明します。 シェルに関する設定 ューザーがログインすると、ます、、シェル (shell: 貝 " と呼ばれるプログラムか起動されます。シェルは、ユ ーサーとシステムの仲立ちをするプログラムです。ログイ ンすると端末に表示されるプロンプトは、システムではな く、シェルがユーザーの入力を促すサインです。たとえ ば、シェルのプロンプトに対して、、 ls" という文字列を入 力してリターンキーを叩くと、シェルは ls というプログ ラムを探し、あればそのプログラムを起動します。起動さ れたプログラムはプロセスとしてシステムの管理下に置か 実行結果がシェルを通して表示されます。ューサー側 からみると、シェルはシステムの中身を覆う、、殻 " のよう な彳難リを担っているのです。 UNIX にはいろいろなシェルがあります。基本的なも のとしては sh や csh 、これらをベースに拡張した bash や tcsh 、 zsh などがあり、ユーサーカ軒みに応じて選ぶこ とができます ( 商用の UNIX で標勺にインストールさ れているのは、 sh 、 csh 、 ksh くらいでしよう ) 。ユーザー がログインしたときに起動されるシェルを、とくに、、ログ インシェル " と呼びます。ログインシェルは、ユーサー情 報の一部として /etc/passwd などに書かれています。ュ ーザーカリ用できる正当なシェルは、 /etc/shells という ファイルに当求されています 6 6 "/bin/sh" のよ引シェルの名前を絶対パスで 1 行に 1 っすっ言己主 UNIX MAGAZINE 1998.7 します。 /etc/shells に登録されていないシェルをログインシェ ルに設定していても、普通にログインするかぎりは問題あ りません。しかし、 ftp コマンドてマシンにアクセスする と /etc/shells がチェックさそこに登録されていない シェルを使っているユーサーはアクセスできないイはみに なっています。 すべてのユーザーに共通するシェルの設定ファイル として、 /etc/profile ()h の場合 ) 、 /etc/csh. cshrc と /etc/csh. login 、 /etc/csh. logout (csh の場合 ) が用意 されています 7 。これらの設定ファイルは、ユーサー との設定ファイル ( ホーム・ディレクトリの . pr 。 file や . cshrc 、 .login など ) より則に読み込まれるため、すべて のユーザーに共通して使わせたいシェルの設定を書いてお くと便利です。ただし、この仕組みは UNIX のシステム やシェルごとに違うので、マニュアルなどて市忍してくだ プリンタに関する設定 ローカルマシンにプリンタをつないだり、リモートマシ ンに接続されたプリンタをネットワーク経由で利用する場 合は、 /etc/printcap というファイル (Solaris 2.6 では /etc/printers. conf) に成疋を言当します。プリンタごと に、プリンタ名や接続しているデバイスの名前、スフ。ール・ ディレクトリのパス名などを指定します。 このファイルについては、プリンタの設定方法やー里コ マンドを説明するときにとりあげます。 ファイルシステムの構成に関する設定 前回、ファイルシステムの構造を簡単に説明しました。 そのなかで、 UNIX ではディスクをパーティションに分 け、各パーティションのファイルツリーを、、マウント ' という操作で接ぎ木することにより、 1 つの大きなツリ ー構造を形成していると書きました。どのパーティショ ンをどのディレクトリにマウントするかは、 /etc/fstab というファイルに書かれています (Solaris などでは、 /etc/vfstab というファイルを使います ) 。マシンは起動 時にこのファイルを参照し、必要なパーティションを自動 的にマウントします 8 。 7 インストール直後は、これらのファイルの中身はすべてコメントアウトさ れています。 8 自重加勺にマウントするカ驕かはパーティションごとに誕定できます。 157

5. UNIX MAGAZINE 1998年7月号

authorize rascal password response sugar ok % telnet 192.168.255.1 7777 Connected to 192. 168.255. 1 Escape character iS Authsrv ready. ()2 . 0 ) そして、次のようにコマンドを順番に入力してくださ グルーフ。管理者を削除するには、 unwiz コマンドを実 グルーフ里者の削除 は伺様です。 authmgr については、次回に説明します。 これ以、降ク篥作方法は authmgr を用いたアクセスとほ グローバル管理者を削除するには、グローバル管理者で グローパル里者の削除 G の文字か消えていることを石忍します。 ューサーのリストを表示し、 rascal の status 欄から authsrv# unwiZ rascal 行します。 ループを作成したのですから、削除するときも、、グループ 考えてみれば、、、存在しないグループを書く " ことでグ つ再言聢していきます。 たいグループに属しているユーザーのグループを、 1 人す グループを削除する専用コマンドはありません。消去し グループの削除 ぜ、こういうイはみになっているのかは分かりません。 ル管理者の権限だけを消去することはできないのです。な perwiz のようなコマンドはなく、ユーザーからグローバ あるユーザーそのものを削除する必要があります。 unsu- UNIX MAGAZINE 1998.7 authsrv# deluser bucho authsrv# deluser rascal ます。 ューザーを削除するには、コマンド deluser を実行し ューサーの削除 を書かないようにする " わけです。 後片付け 遊んだあとは、きちんと後片付けをしましよう。 もっとも簡単かっ確実なガ去は、ユーザー認証システム のデータベースを消去することです。 authsrv# quit # rm /usr/local/etc/fw—authdb # rm /usr/local/etc/fw—authdb . db コマンドの説明 authsrv にアクセスしてアカウント・データベースを操 作するガ去を紹介します。 authsrv にアクセスするには、 次の 3 不頁のガ去があります。 1. authsrv コマンドを実行する。 2. authmgr コマンドを実行する。 3. telnet コマンドで authsrv に孑妾続する。 r 。。 t 権限をもっている ( r 。。 t のパスワードを知ってい る ) のなら、 authsrv コマンドを直接実行するのが一番簡 単です。 authsrv はネットワークからのアクセスを受け付 けるサ→ヾー・プログラムですが、さきほど書いたように コマンド行からも実行できます。 authsrv を実行すると、 いきなりグローバル管理者の権限でデータベースの操作が できます。認証はしません。なかなか危ないですれそこ で、 root 以タ ) 利用者は authsrv を実行できないように なっています。 root 権限をもっている利用者は、 FWTK 認証システ ムのグローバル管理者としての権限もあわせもっことにな ります。 2 つ目は、 authmgr を利用する方法です。 authmgr は、 authsrv へネットワーク経由でアクセスするクライ アント・プログラムです。ファイアウォール・ホストの アカウントは発行したくないが、 FWTK 認証システムの 管理雀限は与えたい場合に使えます。 3 つ目は、 telnet でアクセスするガ去です。 authsrv の プロトコルを直接入力するので authsrv に関する知識が 必要ですが、 authmgr を用いたアクセスとたいした違い はなさそうです。 authsrv をインストールした言算機の root は、 auth- srv を直接 ( 認証なしに ) 実行する権限をもっています。 このとき、 authsrv# というプロンプトが表示さ の状態を authsrv のコマンドモードと呼びます。 33

6. UNIX MAGAZINE 1998年7月号

INTEGRATION Windows NT のシェルコマンド Tom Yager UNIX で育ったユーサーはタイピングを習得している。 そオ功ゞできないと何もできないからである。クラッシュの あとにシステムを復旧させるような場合でも、有能な秘書 顔負けのタイピング・テクニックを使う。 Windows で 育った同僚たちがファイルのコピーにェクスプローラを使 うのに、私はショートカットでコマンド・ウインドウを開 いて、 copy" と入力している。そオ功ゞ普通だと思う。刻ヒ を恐れる堅物のように思われるかもしれないが、 GUI に 頼るよりは進んだューザーだと自負することにしている。 あまり明確なものではないが、 Windows NT ( 以ード、 NT と略 ) は今日でも実用に足るテキスト・インターフェ イスを編にもっている。解説ではコントローノレヾネルや ドメインユーザーマネージャでおこなうとされている操作 の多くも、コマンド行から実行できる。コマンド行ででき るのなら、そ作をスクリプトでおこなうこともできる はすだ。だから、ひそかに NT の GUI に愛着を感してい る人でも、裏かしいコマンドを利用する価値はある。 以下に、 UNIX 管理者の視点からコマンドの概略を紹 介することにしよう。 さまざまな NT のシェル NT か胱供するシェルの不鶤頁はそれはど多くない。デ フォルトのシェルは CMD. EXE だが、これは DOS ( と Windows 95 ) の標準シェルである COMMAND ℃ OM を改良したものだ。はかにもいくつかある (http://ftp. coast. net/Coast/nt/shells. html にリストがある ) 。非 UNIX 系のものからの不身直では、 4DOS と WinOne ( い すれもシェアウェア ) か普及しているようだ。 UNIX のシ ェルか使いたけれは、 csh 、 tcsh 、 bash か翆トで入手でき 102 from UNIX REVIEW る。 MKS (Mortice Kern Systems) からは NT 用のす ばらしい Korn シェルか販売されている (http://www. mks ・ com/)o 代替のコマンドシェルの大半は、 CMD. EXE を置き換 えるものとして重川乍する。これらはコマンド・プロンプト 内て夫行されるコンソールモードの NT プログラムでしか ないが、 W ⅲ One は独自のウインドウを開く。おもしろ い機能がいくつかあるが、なかでも魅力的なのがスクリプ ト用のコマンドである。ファイルのオープン / セープ用の ダイアログ・ポックスを開いたり、 ANSI グラフィックス を ( カラーっ描いたり、オーディオ・ファイルの演奏や 竟変数の文字列操作などかて、きる。レジストリ値の設定 や参照をおこなう SETREG と GETREG コマンドも気 に入っている。 UNIX のユーザーはディレクトリの一覧 の色遣いが目障りだと感じるかもしれないが、 69 ドルの WinOne は代替用シェルとしては悪くない買物である。 DOS 用のコマンド行インタープリタ COMMAND. COM とくらべると、 NT の CMD. EXE にはいくつか の長所と矢可励ゞある。 CMD. EXE は ANSI シーケンスを 解釈してくれないので、カーソノ立置やはかの ANSI 表示 コマンドをバッチファイルに埋め込むことができない。 32 ピットのコンソール・プログラムをサポートする Visual C 十十、 Visual Basic やその他の言語で書かれたコンソー ル・アプリケーションは、カーソルの制御とフルスクリー ンで巣作が可能だ。 COMMAND.COM にはないコマンドのヒストリー機 能は、 CMD. EXE では標準になっている。上と下の矢印 キーで以前のコマンドか表示される。 Page Up キーでヒ ストリーのう巨頁のコマンドに飛び、 Page Down て最後に 飛。コマンド内で左右の矢印キーを押すと、入力した文 UNIX MAGAZINE 1998.7

7. UNIX MAGAZINE 1998年7月号

表 1 authsrv のパラメータ属性 パラメータ属性 permit—hosts IPaddress permit—hosts hostname deny—hosts IPaddress deny—hosts hostname nobogus true badsleep seconds database ん groupid gro 社〃を d userid userid パラメータ属性 permit—operation deny¯operation 説明 プログラムをユーザー ID userid の権限で実行 プログラムをグループ ID gro 叩記の権限で実行 データベースをオ絲タするファイルへのパス 認証失敗が原因で無効にされたユーザーを自動第勺に有効にする 存在しないユーサーで認証を試みられたときにエラーを表示 ん os 腕のれ e からの接続を拒否 IPaddress から妾続を拒否 hostname からの接続を許可 IPaddress からの接続を許可 引数 user users semice des をれ at 0 れ group gro 〃 s service des 厖れ佖 0 れ オプション 0 〃 0 れ s time s め 0 end 説明 拡張認証欟冓を利用する 引数には、ホスト名や IP アドレスをします。その 文字列の一部にワイルドカードを使用し、計算機の集合を 指定することもできます。 permit-hosts で明確に許可されていない言算機は、す べて、、拒否 " として扱われます。 deny-hosts authsrv への接続を拒否する計算機を指定します。 引数にはホスト名や IP アドレスを言当します。その文 字列の一部にワイルドカードを使用し、計算機の集合を指 「そんなユーザーおらへんで」 存在しないユーザー名が入力されたとき、 ューザー認証時のプロンプトに対して、データベースに nob ogus 定することもできます。 と正直に答えるのではなく、まるで正しいユーザー名が入 UNIX MAGAZINE 1998.7 スを返すように作られています。ただし、 netperm-table たはうがよく、 F Ⅵ叮 K もデフォルトで SNK のレスポン したがって、このような場合には偽のレスポンスを返し しなければならない事柄カ噌えるからです。 から判断するのカ難しく、侵入者の立場からすると、孑佩リ うなシステムは、侵入に利用するアカウントの有無を外部 が、セキュリティ的に安全なシステムといえます。このよ とパスワードの入力ミスだったかのように振る舞ったほう Permission Denied 力されたかのようにパスワードの入力を要求し、 に次のエントリを追加するとこの機能は停止します。 authsrv: nobogus true そして、存在しないユーサー名でログインか試みられた ときは、次のエラーメッセージを返します。 Userid nonexistent badsleep さきほど述べたようにユーサーがログイン時の認証を 5 回連続して失敗すると、そのユーザーは無効にされます。 この場合、管理者がそのユーサーを有効にしなけれは、ユ ーサーは永久にログインできません。 通常、利用者が自分のパスワードを 5 回もタイプミスす ることはないので、このような連続した認証の失敗は不審 なアクセスであり、外部から侵入を試みられている可能性 があります。したがって、ユーサーを無効にしてログイン できないようにするのはセキュリティ的には正しい対処と いえます。 しかし、ユーサーは人間です。パスワードを忘れてしま うこともあります。 「これかな ? ( カタカタ ) 」 「あ違ったこれかな ? ( カタカタカタ ) 」 「あれこっちかなぁ ( ポンポンポン ) 」 つつ、これならどうだ ( バシバシッ ) 」 などという事態は十分に起こりえます。 さらに、嫌いな人に意地悪をするために、その人のユー サー名でログインを試み、パスワードを故意に 5 回間違っ 37

8. UNIX MAGAZINE 1998年7月号

図 2 Safe 、 vord の WebR—ジ 回も間違えるのは不正アクセスの試みだろう」という仮定 のもとに、ログインできるタイミングを遅らせて不正アク セスを妨げるためです。 FWTK にも似たようなイ督はみがあります。ューザーの 、 Vel ( 0m03 Sa 、、′ 0 「 d パスワードを 5 回連続して間違って入力すると、そのユー 年 ! 物物ー、編「・第 io 物Ⅱ”・破物、 . ( 道、 konooe 。、ト・ lo 物、 el ・は サーをロックし、ログインできないようにします。こう ( 、、・Ⅱ国、 ofh d ・ hold ・ 1 ト ! : 、しソ、鰤をドいいは なってしまうと、管理者に泣きついて、 物 1- 4 画 5 ⅱ 「ロック、外してえな」 入手できます。 とお願いするしかありません ( 私も何回か泣きつきまし 4. SafeWord DES Silver Enigma Logic か発したワンタイム・パスワードで 、 5 回 " という値はソースプログラムに直接書かれている す。詳しくは以下の URL を参照してください ( 図 2 ) 。 ので、変更するには再コンパイルが必要です。 http://www.safeword.com/welcome.htm 時間によるアクセス制御 5. MD5 FWTK の設定ファイル netperm-table に適当なル Ronald L. Rivest か開発したメッセージダイジェス ールを言当すれは、時間によるアクセス制御か実現できま ト・アルゴリズムです。 MD5 のアルゴリズムは RFC す。つまり、「このユーザーについては、この時間帯にの 1321 で公開されているので、ご存しの方も多いでしょ みアクセスを許可する」といったことが可能になります。 う。 FWTK では、この MD5 を利用してワンタイム・ パスワードを生成します。必要なプログラム・モジュー ところが、 authsrv がアクセスの正当性を判断する部分 ルは、 FWTK'S ッケージに含まれています。 と、クライアント側のライプラリ 0 ンヾグがあるために の機能は利用できません。そこで、これを修正するパッチ 6. Reusable Password 通常の ( ワンタイムではない ) パスワードです。今回の を作ってみました ( リスト 1 ) 。時間によるアクセス制御を ように内部ネットワークが対象の場合は利用してもかま したいときは、このパッチを当て、再コンパイルと再イン いませんが、盗聴に弱いので、インターネット経由でア ストールをしてください。 クセスする際は使わないほうがいいでしよう。 もちろん、時間によるアクセス缶衂をおこなわない場合 は、このパッチを当てる必要はありません。 今後しはらくのあいだは、、 Reusable Password" を使 うガ去について説明しますが、 S/Key を利用するガ去も - authsrv とりあげる予定です。 SecurID や SNK 、 SafeWord な どについては手許に実物がないため、残念ながら紹介でき 認証システムの褪旡要はここまでにして、 ません。 サーバーの設定と使用ガ去について説明します。 たくさん間違えると悲しくなる 導入の手順 UNIX のなかには、ログイン時に間違ったパスワード authsrv 導入の判断 を入力すると、次のログイン・プロンプトか表示されるま で数秒待たさふたたひ間違ったパスワードを入力して ポリシーやガイドラインのなかで、 しまうと十数秒待たささらに間違えると二十数秒待た 「プロキシー・サーバーへのアクセス時にユーサー認証を され・・・・・・といったシステムがあります。 必要とする」 これは、「正当な利用者であれば、パスワードの入力を と決めている場合は、認証システムを導入します。 何回も間違えたりしないはすだ」「パスワードの入力を何 Different View 、 ofthe SafeWord A 代 hi 、で、 ら カ 28 UNIX MAGAZINE 1998.7

9. UNIX MAGAZINE 1998年7月号

INTEG RATION かし、工クスプローラの ACL 操作のすべてが可能なわけ ではない。たとえは、ディレクトリ上での実行属性などの 朱なアクセス権は設定できない。それでも重要なファイ ルツリーを移動けるスクリプトを作り、 cacls を使って基 本的なイ矍機能だけでも定すれは、楽になるはすだ。 どのディレクトリやファイルにも ACL がある。ファ イルやディレクトリの ACL を表小するには、 > cacls 五 le れ佖 7 〃 e と入力する。 cacls は、そのファイルもしくはディレクト リのすべての ACL を一覧表示する。作成したり修正する ことかできない ACL のリストを見ることもできる。ある ューザーク寺定のファイルに対するアクセス権を解除した いときには、 > cacls 五 le れ佖 7 〃 e /r u,ser と入力する。ューサーに全面的なアクセス権を設定するに > cacls filename /d ・ 禁止するなら、 変更 ( 書込み ) 許可なら c とする。ューザーのアクセスを と入力する。ューサー名のあとの f を、言翹 ( り許可なら r 、 > cacls filename /g 、 :f UNIX MAGAZINE 1998.7 ファイルであることを NT に伝える。 compact コマンド ておけるのである。日丑後は、読み込む前にフラグかⅡ 名前や位置についての処理がない場合は、サイズを縮小し 適当な箇所に日することができる。つまり、ファイルの る圧縮をファイルやディレクトリに追加する。ファイルを NTFS ()T FiIe System) は、もう 1 つの属性であ cacls ... " とす川よよい。 で終るところである。スクリプト中て使うには、、 echo y ー cacls で不愉决なのは、、 are you sure?" のプロンプト れば NT はアクセスを拒否する。 を許可する ACL を作成しても、 1 つでも禁止 ACL があ セスか寸にできないということである。いくらアクセス をもっグループに所属している場合でもファイルへのアク ミツン・ヨン る。アクセスの禁止とは、そのユーサーがパー と入力する。アクセスの取消しはアクセスの禁止とは異な は、圧 ) 2 つの側面を処理する。 1 つはファイルの実際 の ) 宿と伸長処理であり、もう 1 つはディレクトリ刎」孫宿 フラグの変更である。このフラグか有効な場合、そのディ レクトリに置かれたファイルは自重加勺に日される。ディ レクトリ刎イ宿フラグの変更は、すでにそのディレクトリ にあるファイルには景グ繹しない。 ファイルのグループを日するには、 > compact /c 五 le れ佖 7 〃 e を用いる。ファイル名にはワイルドカードカ硬える。カレ ント・ディレクトリやその下のディレクトリに日フラグ を設定し、そのディレクトリ以下のすべてのファイルを圧 縮するには、 > compact /c /s を用いる。 旧い NT では、実行中のプログラムか終了する前にコマ ンド行に戻りたい場合には start コマンドが必要だった。 現バージョンではバックグラウンドでの実行かⅶ醍となっ ているが、それでもイ叫リなコマンドである。オプションに より起重加のアプリケーションの実行の優先頂位を設定で きる。優先順位には / 10W 、 /normals /high 、 /realtime がある。アプリケーションの期ディレクトリ ( / d ん ) や、メインウインドウのタイトルを言できるオプション もある。説明的なタイトルで優先度の低いディレクトリチ ェック・スクリプトを実行する場合は、 " / 10 > start "Checking directories . checkdirs . bat となるだろう。デフォルトでは、 start はアプリケーショ ンのための新しいウインドウを開く。 /b スイッチで開か ないようにすることもできる。 ◆ 可はもっと役に立つコマンドをいくつカ介する。た とえば、いちいちコントローノレヾネルやドメインユーサー マネージャを使う必喫をなくすコマンドなどである。 ◎ 1997 , UNIX REVIEW (). S. A. ) UNIX REVIEW 1997 年 10 月号より 「 Taking Command of Windows NT 」 105

10. UNIX MAGAZINE 1998年7月号

0 います。現在普及しているウインドウ・システムでは、ウィ ンドウをアイコン化するときとアイコンをウインドウに戻 すとき篥作が違いますし、ウインドウを連続的に縮小し てアイコン化するようなことはできません 3 。これに対し、 ズーミング・インターフェイスの場合は連続的 / 可 j 動勺な 拡大・縮′」髞作を用意するだけでよいわけです。 日常舌で使われていん欟戒や道具類の大半は、連続的 かっ可 j 動勺に操作できます。たとえば自動車の場合、ハン ドルの回転量に比例して連続的に向きを変えていくので、 ハンドルを逆に回せば方向を戻せます。だからこそ、面 的かっ容易に操作できるのです。一方、現在の言算機は、 前述のようにはとんど巣作が可逆的になっていないこと が使いにくいと感しさせる大きな要因の 1 っといえるで しよう。画面上のボタンを押すと何カ起こるか分からす、 しかも元に戻せない可能生もあるというのでは、とても気 軽には扱えません。 こういう状況を改善するためにも、ズーミング・イン ターフェイスのような連続的 / 可逆的な操作ができるイン ターフェイス手法は今後普及していく可能性があるのでは ないでしようか。 Pad 十十 [ 1 ] は、 New York University の Ken Per- lin が 1993 年に提案した 2 次元ズーミング・システム 「 Pad 」 [ 2 ] を、 University of New Mexico の Ben Bed- erson カ甘広張したシステムです。 現在、 Pad 十十は Tcl/Tk を拡張したツールキットと して実装されて公開されています 5 。 Tk の canvas オプ ジェクトを連続的に拡大・縮小できるようにした Pad オ プジェクトを用いて TcI のプログラムを動かすことがで きます。 Pad 十十では、通常の TcI/Tk で使われるシェ ル wish の代わりに padwish というシェルが用意され ています。 ツールキットと padwish のほかに、 Pad 十十には描画 3 連勺ではなく物勺 " という感しでしようか。 4 http://www.cs.umd.edu/-bederson/ 5 Bederson が University of Maryland に移ったため、現在は http://www.cs.umd.edu/hcil/pad 十十 / で公開されています。 IRIX 、 SunOS 、 Solaris 、 Linux など各種の UNIX 版と Win- dows 95 版がありますが、 Windows 版は芝点では動イ虧屋く、あ Pad + + システム 146 まり安定していません。 工デイタ Paddraw が付属しています。これは、 Pad 十十ツールキットを利用した約 26 , 000 行の Tcl スクリ プトです。 Paddraw は任意のズーミングか可能なドロー 系ェデイタとして使えるのはもちろん、ハイバーリンク機 構も備えているので、画面上のオプジェクトをクリック して視点を別のオプジェクトに移動けるといった指定を簡 単におこなえます。たとえは、画面 - E にスライド画像を並 ペそれらをリンクで結んでおけは、市販のプレゼンテー ション・ツールのようにマウスクリックにより順番にスラ イドを切り替えていくことができます。 Paddraw は、任意の Tcl プログラムを読み込めるだ けでなく、 Paddraw で作成したデータも Tcl プログラ ム形式で保存されるので、データやプログラムの言もムみや 再利用も簡単です。たとえは、攵研彡を 100 イ鉗苗く TcI プ ログラムを読み込めば、 Paddraw の画面に 100 個の矩 形か描けます。 Paddraw は、いわば描画編集機能付きの PostScript ピューアのようなものといえるでしよう。 Pad 十十プログラミング ます、 TcI から Pad 十十ツールキットを扱うガ去を簡 単に説明します。 padwish の padwish コマンドを起動すると Padwish ウインドウ カ俵示さ TcI のプロンプトか表示されます。 % padwish Pad 十十は Tk の部品として実装されており、 padwish は wish の拡張となっています。したがって、 padwish では普通の Tcl/Tk と同様のプログラミングか可能です。 % set x 10 10 % puts abc abc Pad 十十のマニュアルは 100 ページもあり、すべての 機能はとりあげられません。基本的な機能に絞って以下に 紹介します。 Pad 十十オプジェクトのと表示 pad 十十画面を表示する場合は、通常の Tcl/Tk で Canvas オプジェクトを作る場合と同様に Pad オプジェ UNIX MAGAZINE 1998.7