diff --git a/ja/man/man1/Makefile b/ja/man/man1/Makefile index 42a227b8e9..91803fb0e8 100644 --- a/ja/man/man1/Makefile +++ b/ja/man/man1/Makefile @@ -1,412 +1,413 @@ MAN1 = a2p.1\ addftinfo.1\ addr2line.1\ alaw2ulaw.1\ apply.1\ apropos.1\ ar.1\ as.1\ at.1\ awk.1\ basename.1\ bc.1\ biff.1\ bison.1\ brandelf.1\ btreeop.1\ c89.1\ calendar.1\ cap_mkdb.1\ cat.1\ catman.1\ cccp.1\ cd.1\ cdcontrol.1\ checknr.1\ chflags.1\ chkey.1\ chgrp.1\ chio.1\ chmod.1\ chpass.1\ ci.1\ ckdist.1\ cksum.1\ cmp.1\ co.1\ col.1\ colcrt.1\ colldef.1\ colrm.1\ column.1\ comm.1\ compile_et.1\ compress.1\ cp.1\ cpio.1\ crontab.1\ crunchgen.1\ crunchide.1\ csh.1\ ctags.1\ ctm.1\ ctm_rmail.1\ cu.1\ cursor.1\ cut.1\ cvs.1\ date.1\ dc.1\ dd.1\ df.1\ dialog.1\ diff.1\ diff3.1\ dig.1\ dnsquery.1\ domainname.1\ + doscmd.1\ du.1\ echo.1\ ed.1\ ee.1\ enigma.1\ eqn.1\ error.1\ expand.1\ expr.1\ f2c.1\ f77.1\ false.1\ fdformat.1\ fdwrite.1\ fetch.1\ file.1\ file2c.1\ find.1\ finger.1\ fmt.1\ fold.1\ fontedit.1\ fpr.1\ from.1\ fsplit.1\ fstat.1\ ftp.1\ gcc.1\ gcore.1\ gctags.1\ gdb.1\ gdbserver.1\ gencat.1\ genclass.1\ getNAME.1\ getopt.1\ global.1\ gperf.1\ gprof.1\ grep.1\ grodvi.1\ groff.1\ grolj4.1\ grops.1\ grotty.1\ groups.1\ gtags.1\ gzexe.1\ gzip.1\ h2ph.1\ head.1\ hexdump.1\ host.1\ hostname.1\ htags.1\ id.1\ ident.1\ indent.1\ indxbib.1\ install.1\ install-info.1\ intro.1\ ipcrm.1\ ipcs.1\ ipf.1\ ipftest.1\ ipnat.1\ ipresend.1\ ipsend.1\ iptest.1\ join.1\ jot.1\ kbdcontrol.1\ kbdmap.1\ kcon.1\ kdump.1\ key.1\ keyinfo.1\ keyinit.1\ keylogin.1\ keylogout.1\ kill.1\ killall.1\ ktrace.1\ lam.1\ last.1\ lastcomm.1\ ld.1\ ldd.1\ leave.1\ lex.1\ limits.1\ lint.1\ lkbib.1\ ln.1\ loadfont.1\ locate.1\ lock.1\ lockf.1\ logger.1\ login.1\ logname.1\ look.1\ lookbib.1\ lorder.1\ lp.1\ lpq.1\ lpr.1\ lprm.1\ lptest.1\ ls.1\ lsvfs.1\ m4.1\ mail.1\ mailq.1\ make.1\ makewhatis.1\ man.1\ manpath.1\ mcon.1\ md5.1\ merge.1\ mesg.1\ minigzip.1\ mkdep.1\ mkdir.1\ mkfifo.1\ mklocale.1\ mkstr.1\ mktemp.1\ more.1\ mptable.1\ mset.1\ msgs.1\ mt.1\ mv.1\ ncal.1\ neqn.1\ netstat.1\ newaliases.1\ nfsstat.1\ nice.1\ nm.1\ nohup.1\ nroff.1\ objcopy.1\ objdump.1\ objformat.1\ od.1\ opieinfo.1\ opiekey.1\ opiepasswd.1\ pagesize.1\ passwd.1\ paste.1\ patch.1\ pawd.1\ pax.1\ perl.1\ pfbtops.1\ pic.1\ pkg_add.1\ pkg_create.1\ pkg_delete.1\ pkg_info.1\ pr.1\ printenv.1\ printf.1\ ps.1\ psbb.1\ psroff.1\ pwd.1\ quota.1\ ranlib.1\ rcp.1\ rcs.1\ rcsclean.1\ rcsdiff.1\ rcsfreeze.1\ rcsintro.1\ rcsmerge.1\ rdist.1\ refer.1\ rev.1\ rlog.1\ rlogin.1\ rm.1\ rmdir.1\ rpcgen.1\ rs.1\ rsh.1\ rtprio.1\ rup.1\ ruptime.1\ rusers.1\ rwall.1\ rwho.1\ s2p.1\ sasc.1\ scon.1\ script.1\ sdiff.1\ sed.1\ send-pr.1\ sgsc.1\ sh.1\ shar.1\ size.1\ skey.1\ sleep.1\ soelim.1\ sort.1\ split.1\ startslip.1\ strings.1\ strip.1\ stty.1\ su.1\ symorder.1\ systat.1\ tail.1\ talk.1\ tar.1\ tbl.1\ tconv.1\ tcopy.1\ tcpdump.1\ tcpslice.1\ tee.1\ telnet.1\ test.1\ tfmtodit.1\ tftp.1\ time.1\ tip.1\ tn3270.1\ top.1\ touch.1\ tput.1\ tr.1\ troff.1\ true.1\ truss.1\ tset.1\ tsort.1\ tty.1\ ul.1\ ulaw2alaw.1\ uname.1\ unifdef.1\ uniq.1\ units.1\ unvis.1\ uptime.1\ users.1\ uuconv.1\ uucp.1\ uuencode.1\ uulog.1\ uuname.1\ uupick.1\ uuto.1\ uustat.1\ uux.1\ vacation.1\ vgrind.1\ vi.1\ vidcontrol.1\ vis.1\ vt220keys.1\ vttest.1\ w.1\ wait.1\ wall.1\ wc.1\ what.1\ whereis.1\ which.1\ who.1\ whoami.1\ whois.1\ window.1\ write.1\ xargs.1\ xstr.1\ xten.1\ yacc.1\ yes.1\ ypcat.1\ ypmatch.1\ ypwhich.1\ yyfix.1\ zdiff.1\ zforce.1\ zmore.1\ znew.1 MLINKS= csh.1 limit.1 csh.1 alias.1 csh.1 bg.1 csh.1 dirs.1 csh.1 fg.1 \ csh.1 foreach.1 csh.1 history.1 csh.1 jobs.1 csh.1 popd.1 \ csh.1 pushd.1 csh.1 rehash.1 csh.1 repeat.1 csh.1 suspend.1 \ csh.1 stop.1 csh.1 source.1 MLINKS+= ed.1 red.1 MLINKS+= test.1 '[.1' MLINKS+= gcc.1 cc.1 gcc.1 c++.1 gcc.1 g++.1 MLINKS+= cccp.1 cpp.1 MLINKS+= grep.1 egrep.1 grep.1 fgrep.1 MLINKS+= grep.1 zgrep.1 grep.1 zegrep.1 grep.1 zfgrep.1 MLINKS+= gzip.1 gunzip.1 gzip.1 zcat.1 gzip.1 gzcat.1 MLINKS+= zdiff.1 zcmp.1 MLINKS+= apropos.1 whatis.1 MLINKS+= send-pr.1 sendbug.1 MLINKS+= at.1 batch.1 \ at.1 atq.1 \ at.1 atrm.1 MLINKS+= basename.1 dirname.1 MLINKS+= chpass.1 chfn.1 chpass.1 chsh.1 MLINKS+= chpass.1 ypchpass.1 chpass.1 ypchfn.1 chpass.1 ypchsh.1 MLINKS+= compress.1 uncompress.1 MLINKS+= ee.1 ree.1 MLINKS+= expand.1 unexpand.1 MLINKS+= ftp.1 pftp.1 ftp.1 gate-ftp.1 MLINKS+= hexdump.1 hd.1 MLINKS+= intro.1 introduction.1 MLINKS+= lex.1 flex.1 MLINKS+= lex.1 flex++.1 MLINKS+= lex.1 lex++.1 MLINKS+= mail.1 Mail.1 MLINKS+=passwd.1 yppasswd.1 MLINKS+= printenv.1 env.1 MLINKS+= tconv.1 tic.1 tconv.1 captoinfo.1 MLINKS+= tput.1 clear.1 MLINKS+= tset.1 reset.1 MLINKS+=vi.1 ex.1 vi.1 view.1 MLINKS+=vi.1 nex.1 vi.1 nview.1 vi.1 nvi.1 MLINKS+=yacc.1 byacc.1 MLINKS+= ctm_rmail.1 ctm_smail.1 MLINKS+= ctm_rmail.1 ctm_dequeue.1 MLINKS+= kbdmap.1 vidfont.1 MLINKS+= rtprio.1 idprio.1 MLINKS+= cksum.1 sum.1 MLINKS+= ktrace.1 trace.1 MLINKS+= uuencode.1 uudecode.1 MLINKS+= ncal.1 cal.1 .include "bsd.prog.mk" diff --git a/ja/man/man1/chpass.1 b/ja/man/man1/chpass.1 index 504822f6ef..05e616252d 100644 --- a/ja/man/man1/chpass.1 +++ b/ja/man/man1/chpass.1 @@ -1,422 +1,422 @@ .\" Copyright (c) 1988, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)chpass.1 8.2 (Berkeley) 12/30/93 .\" %Id: chpass.1,v 1.14 1998/12/13 15:32:26 bde Exp % .\" jpman %Id: chpass.1,v 1.2 1997/03/31 14:06:36 horikawa Stab % .\" .Dd December 30, 1993 .Dt CHPASS 1 .Os .Sh 名称 .Nm chpass, chfn, chsh, ypchpass, ypchfn, ypchsh .Nd ユーザデータベース内の情報を編集する .Sh 書式 .Nm chpass .Op Fl a Ar list .Op Fl p Ar encpass .Op Fl s Ar newshell .Op user .Sh 解説 .Nm chpass は .Ar user もしくはデフォルトでは実行したユーザのユーザデータベースの情報を変更します。 情報はフォーマットされ、必要な部分をエディタで変更します。 .Pp ユーザが変更することができる情報だけが表示されます。 .Pp -オプションとしては、以下のものがあります: +オプションとしては、次のものがあります: .Bl -tag -width flag .It Fl a スーパユーザは、ユーザデータベースのエントリを .Xr passwd 5 で定義されたフォーマットで引数として直接指定できます。 -この引数はコロン(``:'')で区切られたリストであり、 +この引数はコロン (``:'') で区切られたリストであり、 空きの部分があっても許されますが、 すべてのフィールドをリストにしなければなりません。 .It Fl p スーパユーザは、暗号化されたパスワードフィールドを .Xr crypt 3 で用いられているフォーマットで引数として直接指定することができます。 .It Fl s .Fl s オプションは、ユーザのシェルを .Ar newshell に変更します。 .El .Pp 表示されるエントリには以下のものがあります: .Pp .Bl -tag -width "Other Information:" -compact -offset indent .It Login: ユーザのログイン名 .It Password: ユーザの暗号化されたパスワード .It Uid: ユーザの ID .It Gid: ユーザのグループ ID .It Class: ユーザの一般的な分類 .It Change: パスワードの変更時間 .It Expire: アカウントの有効期限 .It Full Name: ユーザの実際の名前 .It Location: ユーザが通常いる場所 (1) .It Home Phone: ユーザの自宅の電話番号 (1) .It Office Phone: ユーザのオフィスの電話番号 (1) .It Other Information: ユーザに関するローカル定義情報 (1) .It Home Directory: ユーザのホームディレクトリ .It Shell: ユーザのログインシェル .Pp -.It 注釈(1) - +.It 注釈 (1) - 実際の master.passwd ファイルでは、 これらのフィールドはコンマで区切られたフィールドとして FullName フィールドに埋め込まれます。 .El .Pp .Ar login フィールドは計算機にアクセスするときに使われるユーザ名です。 .Pp .Ar password フィールドはユーザの暗号化されたパスワードが収められています。 .Pp .Ar uid フィールドは .Ar login フィールドと関連した番号です。ファイルのアクセスを制御するために、 どちらのフィールドもシステム (しばしば、複数のシステム) の中で 一意である必要があります。 .Pp 複数のエントリが同一のログイン名や同一のユーザ ID を持つことは可能ですが、 そのようにすることは通常誤りです。 これらのファイルを操作する手順では、 それらの複数のエントリ内から無作為に選んだものの一つだけを返すでしょう。 .Pp .Ar group フィールドはユーザがログイン時に所属するグループです。BSD が複数の -グループを採用してから( +グループを採用してから ( .Xr groups 1 参照) このフィールドはほとんど意味がありません。 -このフィールドは番号やグループ名( +このフィールドは番号やグループ名 ( .Xr group 5 参照) のどちらかが記述されます。 .Pp .Ar class フィールドは .Ar /etc/login.conf のクラスに関する記述を参照します。 典型的には、ユーザのログイン時に、 ユーザのシステムリソースを制限するために使用されます。 .Pp .Ar change フィールドはパスワードが変更されているべき日付です。 .Pp .Ar expire フィールドはアカウントの満了する日付です。 .Pp .Ar change と .Ar expire の両方のフィールドは ``month day year'' の形式で入力し、 .Ar month -は、英語の月の名前 (はじめの3文字でも十分です) で、 +は、英語の月の名前 (はじめの 3 文字でも十分です) で、 .Ar day は、その月の中の日で、 .Ar year は、その年です。 .Pp 5 つのフィールドは、ユーザの .Ar 実際の名前 、 .Ar オフィスの場所 、 .Ar 職場 と .Ar 家で使う電話 番号、そして .Ar その他の情報 を保管しています。 .Ar その他の情報 は、コンマで区切った単一文字列であり、追加の gcos フィールドを表現します。 (典型的にはサイト固有のユーザ情報のために使用します)。 .Pp ユーザの .Ar home directory はユーザがログイン時にいる場所への絶対 UNIX パス名です。 .Pp .Ar shell フィールドはユーザの好むコマンドインタプリタです。 もし .Ar shell フィールドが空であれば、ボーンシェル .Pa /bin/sh であると仮定します。 ログインシェルを変更するときに、スーパユーザではないユーザは、 非標準シェルから、または非標準シェルへの変更は許されていません。 非標準シェルとは .Pa /etc/shells で見つけられないシェルのことです。 .Pp 一度情報が確認されたら .Nm chpass はユーザデータベースを更新するために .Xr pwd_mkdb 8 を用います。 .Sh 環境変数 環境変数 EDITOR を設定して他のエディタを指定している場合を除き、 .Xr vi 1 エディタが使われます。エディタが終了すると、その情報は再度読み込まれ、 ユーザデータベースを変更するための情報とします。 ユーザの情報を変更できるのは、そのユーザかスーパユーザのみです。 .Sh NIS との相互作用 いくつかの制限が適用されますが、 .Nm chpass を NIS と同時に使うこともできます。現在 .Nm chpass が .Xr rpc.yppasswdd 8 を通じて NIS のパスワードマップ中で変更できるのは、 通常はユーザのパスワード、シェル、GECOS フィールドだけです。 NIS マスタサーバ上でスーパユーザによって起動された場合を除き、 .Nm chpass (同様に .Xr passwd 1 ) は、ユーザ情報の変更および新レコードの追加のために .Xr rpc.yppasswdd 8 サーバを使用出来ません。 なお、 .Xr rpc.yppasswdd 8 は、どのような変更を行う前にもパスワード認証を要求します。 パスワード無しで変更要求できるユーザは NIS マスタサーバ上のスーパユーザだけです; 他の全てのユーザはパスワードを入力する必要があります。 -他の全てのユーザには NIS クライアント(および NIS スレーブサーバ)上の -ルート権限を持つユーザも含まれます。 +他の全てのユーザには NIS クライアント (および NIS スレーブサーバ) 上の +root 権限を持つユーザも含まれます。 (NIS マスタサーバ上のスーパユーザがこの制約をバイパスできる理由は、 主に簡便さのためです: -NIS マスタサーバへのルートアクセス権限をもつユーザは +NIS マスタサーバへの root アクセス権限をもつユーザは 既に NIS マップを更新するための権限を持っています。 それにもかかわらずマップソースファイルを手で編集することは面倒です。 .Pp 注: これらの例外が適用されるのは NIS マスタサーバが FreeBSD システムの時だけです。) .Pp その結果として、上述の例外を除き、NIS 環境で .Nm chpass を使う場合には以下の制限が適用されます: .Bl -enum -offset indent .It .Pa シェルと GECOS 情報だけを変更できます。 たとえ .Nm chpass がスーパユーザによって起動された場合であってもです。 他のフィールドの変更がサポートされるようになっても、 他の NIS システムとの互換性の問題を引き起こすでしょう。 スーパユーザがあるエントリを編集している時に、 他のフィールドにデータを書いても、余分な情報として (パスワードは例外 -- 以下を参照してください) だまって廃棄されるでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは、 任意のフィールドの変更が許されています。 .Pp .It .Pa パスワード認証が要求されます。 どのような変更を行う前にも .Nm chpass はユーザの NIS パスワードを要求します。もしパスワードが間違っていたら、 どのような変更も行われません。 .Pp 例外: NIS マスタサーバ上のスーパユーザはパスワード無しに変更要求できます。 (スーパユーザは、後述するように .Fl o フラグを指定する事によりこの仕様を無効にする事が選択できます。) .It .Pa 新しいレコードのローカルパスワードデータベースへの追加は勧められません。 NIS が動作しているときに、管理者が .Nm chpass によって新しいレコードをローカルのパスワードデータベースに追加可能です。 しかし、新しいレコードがマスタパスワードファイルの最後、 通常は NIS の特別な '+' エントリの後に追加されるため、 いくつかの混乱を招きかねません。 .Xr vipw 8 を使ってローカルのパスワードファイルを変更するべきです。 .Pp NIS マスタサーバ上のスーパユーザによる NIS パスワードマップへの新レコードの追加が許可されるのは、 .Xr rpc.yppasswdd 8 サーバが .Fl a フラグ付で起動された場合、すなわち追加を許可して起動された場合のみです (通常は追加を拒否します)。 .Nm chpass はデフォルトではローカルのパスワードデータベースを更新しようとします; NIS マップを変更する場合には chpass を .Fl y フラグ付で起動してください。 .It .Pa パスワードの変更は許可されていません。 ユーザが、自分の NIS のパスワードを変更するときには .Xr passwd 1 か .Xr yppasswd 1 を使うべきです。スーパユーザは新しいパスワードを指定することを許され -ています(たとえ、``Password:'' フィールドがエディタのテンプレートに +ています (たとえ、``Password:'' フィールドがエディタのテンプレートに あらわれていなくても、スーパユーザは手動で加えることができます) 。 しかしながら、スーパユーザであってもユーザの元のパスワードがなければ .Xr rpc.yppasswdd 8 が NIS マップの更新を拒否するでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは .Nm chpass を使用して、ユーザの NIS パスワードを変更する事が許されています。 .El .Pp .Nm chpass が NIS をサポートしてコンパイルされたときに、数個の特別なフラグが有効 になります: .Bl -tag -width flag .It Fl l .Fl l フラグは、ローカルと NIS の両方のデータベースにユーザが存在していても、 ユーザのパスワード情報のローカルのコピーを修正することを .Nm chpass に強制します。 .It Fl y このフラグは .Fl l と反対の効果があります。もし NIS が動作していれば、 デフォルトでは .Nm chpass は NIS のエントリを操作するので、 このフラグはまったく冗長です。 .It Fl d Ar domain NIS ドメインを指定します。 .Nm chpass はデフォルトではシステムのドメイン名を使用します。 これは .Xr domainname 1 コマンドにて設定されています。 .Fl d オプションは、 このデフォルトを上書きするため、 もしくはドメイン名が設定されていない場合にドメイン名を指定するために 使用できます。 .It Fl h Ar host 問い合わせるべき NIS サーバの名前もしくはアドレスを指定します。 通常 .Nm chpass は .Pa master.passwd もしくは .Pa passwd マップにて指定される NIS マスタホストと通信します。 NIS クライアントとして構成されていないホスト上では、 この情報を決定するための方法がプログラムにはありませんので、 ユーザがサーバのホスト名を指定します。 指定するホスト名は NIS マスタサーバである必要が無い事に注意してください; NIS ドメイン内のマスタサーバ名でもスレーブサーバ名でも良いのです。 .Pp .Fl d オプション使用時には、ホスト名のデフォルトは ``localhost'' です。 .Fl h オプションを .Fl d とともに使用し、ユーザが指定するホスト名でこのデフォルトを上書きできます。 .Pp .It Fl o .Xr rpc.yppasswdd 8 -に RPC ベースの更新を強制します(``旧モード'')。 +に RPC ベースの更新を強制します (``旧モード'')。 NIS マスタサーバ上でスーパユーザにより起動された場合、 .Nm chpass は専用の非 RPC ベースの機構を使用し、 NIS パスワードマップに対する無制限の変更を許可します (この場合 UNIX ドメインソケットを使用します)。 .Fl o フラグを使用する事により .Nm chpass に標準の更新メカニズムを使用させる事が出来ます。 このオプションは主にテスト目的のために提供されています。 .El .Pp .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/master.passwd ユーザデータベース .It Pa /etc/passwd Version 7 フォーマットのパスワードファイル .It Pa /etc/chpass.XXXXXX パスワードファイルのテンポラリ用コピー .It Pa /etc/shells 利用できるシェルのリスト .El .Sh 関連項目 .Xr finger 1 , .Xr login 1 , .Xr passwd 1 , .Xr getusershell 3 , .Xr login.conf 5, .Xr passwd 5 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Rs .%A Robert Morris and .%A Ken Thompson .%T "UNIX Password security" .Re .Sh 注釈 .Xr chfn 1 , .Xr chsh 1 , .Xr ypchpass 1 , .Xr ypchfn 1 , .Xr upchsh 1 コマンドは実際には .Nm chpass にリンクしているだけです。 .Sh バグ ユーザ情報の保存はどこか他の場所にするべきです (し、いつかはそうなるでしょう)。 .Sh 歴史 .Nm chpass コマンドは .Bx 4.3 Reno から登場しました。 diff --git a/ja/man/man1/diff.1 b/ja/man/man1/diff.1 index 3d33c65cbc..f5acc61b2f 100644 --- a/ja/man/man1/diff.1 +++ b/ja/man/man1/diff.1 @@ -1,433 +1,434 @@ .TH DIFF 1 "22sep1993" "GNU Tools" "GNU Tools" .\" jpman %Id: diff.1,v 1.3 1997/05/16 00:15:44 h-nokubi Stab % .SH 名称 diff \- 2 つのテキストファイルの間の差を求める .SH 書式 .B diff [options] from-file to-file .SH 解説 .I diff の最も単純な使用方法は、 .I from-file と .I to-file の 2 つのファイルを指定することです。 この場合、 .I diff は、その 2 つのファイルの内容を比較します。ファイル名 として、`-' を指定した場合は、標準入力から読み込みを行ないます。 特殊な場合として、 .B "diff \- \-" は標準入力をそれ自身と比較します。 .PP もし、 .I from-file としてディレクトリを指定し .I to-file がディレクトリでなかった場合、 .I diff は .I to-file で指定したファイル名と同じ名前のファイルを .I from-file のディレクトリから捜して、そのファイルとの間で比較を行ないます。 その逆に、 .I to-file がディレクトリで .I from-file がディレクトリでない場合も、同様に処理します。なお、 ディレクトリでない方のファイルに `-' を指定することはできません。 .PP .I from_file と .I to_file の両方がディレクトリだった場合、 .I diff は、両方のディレクトリ内でファイル名が同じファイル同士をアルファベット順に 比較していきます。この時、 .B \-r もしくは、 .B \-\-recursive オプションが指定されていれば、 サブディレクトリの中のファイルも再帰的に比較していきます。 .I diff は、ディレクトリの実際の中身をファイルのように比較しません。標準入力は名前 が無く``同じ名前を持ったファイル''の概念が適用できないので、 完全指定したファイルは標準入力であってはなりません。 .PP .B diff のオプションは .BR \- で始まります。よって通常 .I from_file と .I to_file は .BR \- で始まりません。しかしながらそれ自体が引数である .B \-\- の後では、 残された引数が .BR \- で始まっていてもファイル名として扱います。 .SS オプション GNU .I diff のすべてのオプションの要約は以下の通りです。ほとんどのオプション -は2つの同等な名前を持ちます。1つは +は 2 つの同等な名前を持ちます。1 つは .BR \- -で始まる1文字の名前で、もう1つは、 +で始まる 1 文字の名前で、もう 1 つは、 .BR \-\- -で始まる長い名前です。複数の1文字のオプション(引数を持たない場合)は、 -1つの文字列にまとめてしまって構いません。つまり +で始まる長い名前です。複数の 1 文字のオプション (引数を持たない場合) は、 +1 つの文字列にまとめてしまって構いません。つまり .B \-ac は .B "\-a \-c" と同等です。長い名前のオプションはその名前の接頭辞が一意的に決まればどんな 省略でもできます。鍵括弧 .RB ( [ と .BR ] ) は、オプションが省略可能な引数を持つことを示します。 .PP .TP .BI \- lines .B \-c か .B \-u -と組み合わせて、相違点の前後(context)の表示行数を `数字' +と組み合わせて、相違点の前後 (context) の表示行数を `数字' で指定します。このオプションだけでは、出力フォーマットは変化しません。 -このオプションは旧式(obsolete)です。 +このオプションは旧式 (obsolete) です。 .I patch をうまく働かせるためには、少なくとも前後 2 行ずつは必要です。 .TP -.\" 以下では、同等な1文字オプションと長い単語のオプションが +.\" 以下では、同等な 1 文字オプションと長い単語のオプションが .\" まとめて表示されるようにアレンジされ直されている。 .B \-a .br .ns .TP .B \-\-text テキストファイルでないようなものについても、全てのファイルを テキストとみなして、1 行づつ比較していきます。 .TP .B \-b .br .ns .TP .B \-\-ignore\-space\-change 空白の数の違いを無視します。 .TP .B \-B .br .ns .TP .B \-\-ignore\-blank\-lines 空行が入っているもしくは足りないなどの違いは無視します。 .TP .B \-\-brief .br .ns .TP .B \-q ファイルの違いの詳細は表示せず、違っているかどうかだけを報告します。 .TP .B \-c ``context output format'' を使用します。 .\" これは、patch コマンドに .\" 適した形式で、違っている行だけでなく、その前後も数行出力する形式で .\" す。デフォルトでは 3 行づつ表示します。行数を変えるには、`-行数'オ .\" プションを使うか、次のオプションを使用します。 .TP .BI "\-C " 行数 .br .ns .TP .BI \-\-context[= 行数 ] ``context output format'' を使用します。不一致の行の前後に、`行数' -で指定した行数だけ表示します (context) 。 +で指定した行数だけ表示します (context)。 .I patch をうまく働かせるためには、少なくとも 2 行の context が必要です。 .TP .BI \-\-changed\-group\-format= format if-then-else 形式の両方のファイルから異なった行を含む部分を出力する ために .I format を使う。 .TP .B \-d .br .ns .TP .BI \-\-minimal より小さな違いを見つけるアルゴリズムに変更します。このオプションを 指定すると .I diff -の処理速度は遅くなります(かなり遅くなることもあります)。 +の処理速度は遅くなります (かなり遅くなることもあります)。 .TP .BI "\-D " name .br .ns .TP .BI \-\-ifdef= name プリプロセッサマクロ .I name の条件記述を用いた if-then-else 形式にマージして出力します。 .TP .B -e .br .ns .TP .B \-\-ed .I ed のスクリプトの形式で出力します。 .TP .BI \-\-exclude= pattern .br .ns .TP .BI "\-x " pattern ディレクトリ単位の比較の時、ファイルやディレクトリ名が .I pattern にマッチした場合は、比較しないようにします。 .TP .BI \-\-exclude\-from= file .br .ns .TP .BI "\-X " file ディレクトリ単位の比較の時、ファイルやディレクトリ名が .I file の中に含まれる pattern にマッチした場合は、比較しないようにします。 .TP .B \-\-expand\-tabs .br .ns .TP .B \-t 入力ファイルのタブによる位置調整をくずさないよう、タブを空白に展開します。 .TP .B \-f .br .ns .TP .B \-\-forward\-ed .B ed のスクリプトと一見同じような出力をします。ただし、ファイルに 現われる順序が違います。 .TP .BI "\-F " regexp .br .ns .TP .BI \-\-show\-function\-line= regexp context diff 形式および unified diff 形式において、差分のブロック毎に、 差分のブロックに先行し、かつ .I regexp にマッチする行のうちでもっともブロックに近い行を出力します。 .TP .B \-h なにも機能はありません。通常の UNIX の diff との互換のためにあります。 .TP .B \-H .br .ns .TP .B \-\-speed\-large\-files 小さな違いがあちこちにあるような大きなファイルの処理を 高速化するヒューリスティックを用います。 .TP .BI \-\-horizon\-lines= lines -2つのファイルの先頭と末尾における共通部分のうち +2 つのファイルの先頭と末尾における共通部分のうち .I lines 行を残したままで差分を検索します .\" (通常は先頭と末尾の共通部分を削除してから検索を行います)。 .TP .B \-i .br .ns .TP .B \-\-ignore\-case 英大文字と小文字の違いを無視します。 .TP .BI "\-I " regexp .br .ns .TP .BI \-\-ignore\-matching\-lines= regexp 正規表現 .I regexp にマッチした行が追加あるいは削除されていても無視します。 .TP .B \-\-initial\-tab .br .ns .TP .B \-T 通常形式および context diff 形式において、テキスト先頭に空白文字ではなく タブを入れます。行に含まれるタブが元と同じような形で見えます。 .TP .B \-l .br .ns .TP .B \-\-paginate 出力を .I pr に通してページ付けを行ないます。 .TP .BI "\-L " label .br .ns .TP .BI \-\-label= label context diff 形式および unified diff 形式において、 出力に付加されるファイル名の代わりに、 .I label で指定したラベルを使用します。 .TP .BI \-\-left\-column -2段組形式において、2つの共通の行の左の欄だけを表示します。 +2 段組形式において、2 つの共通の行の左の欄だけを表示します。 .TP .BI \-\-line\-format= format .I format を用いて、すべての入力行を if-then-else 形式で出力します。 .TP .B \-n .br .ns .TP .B \-\-rcs RCS形式の差分を出力します。 .B \-f と似ていますが、各コマンドには適用した行数がついた形となります。 .TP .B \-N .br .ns .TP .B \-\-new\-file ディレクトリ単位の比較の時に、片方のディレクトリにだけ存在するファイルに 関しては、他のディレクトリでは空のファイルがあるものとして扱います。 .TP .BI \-\-new\-group\-format= format -2番目のファイルにだけ存在する部分をif-then-else 形式で出力するために +2 番目のファイルにだけ存在する部分をif-then-else 形式で出力するために .I format を使います。 .TP .BI \-\-new\-line\-format= format -if-then-else 形式で 2番目のファイルにだけ存在する行を出力するために使う +if-then-else 形式で 2 番目のファイルにだけ存在する行を出力するために使う .I format .TP .BI \-\-old\-group\-format= format -if-then-else 形式で 1番目のファイルにだけ存在する部分を出力するために使 +if-then-else 形式で 1 番目のファイルにだけ存在する部分を出力するために使 う .I format .TP .BI \-\-old\-line\-format= format #### -if-then-else 形式で 1番目のファイルにだけ存在する行を出力するために使う +if-then-else 形式で 1 番目のファイルにだけ存在する行を出力するために使う .I format .TP .B \-P .br .ns .TP .B \-\-unidirectional\-new\-file -ディレクトリの比較において、2番目のディレクトリにしか存在しないファイル -があれば、1番目のディレクトリにもサイズ 0 のファイルがあるとみなします。 +ディレクトリの比較において、2 番目のディレクトリにしか存在しないファイル +があれば、1 番目のディレクトリにもサイズ 0 のファイルがあるとみなします。 .TP .B \-r .br .ns .TP .B \-\-recursive ディレクトリ単位の比較の時に、サブディレクトリがあれば、その配下も再帰的に 検索して比較を行ないます。 .TP .B \-\-report\-identical\-files .br .ns .TP .B \-s ファイルの内容が同じだった時に、その旨を報告します。 .TP .BI "\-S " file .br .ns .TP .BI \-\-starting\-file= file ディレクトリ単位の比較の時に、 .I file で指定したファイル名から実行します。これは、一連の比較作業を中断した後に 途中から再開するのに便利です。 .TP .B \-\-sdiff\-merge\-assist .I sdiff 作業の手助けになる補足の情報を表示します。普通、 .I sdiff が .I diff を実行する際にはこのオプションを付けるので、 -ユーザーが直接このオプションを使うことはありません。 +ユーザが直接このオプションを使うことはありません。 .TP .B \-\-show\-c\-function C のプログラムを認識して、どの関数で変更があったかを表示します。 .TP .B \-\-side\-by\-side .br .ns .TP .B \-y -比較する 2 つのファイルの内容を、横に並べて表示します(side-by-side 形式)。 +比較する 2 つのファイルの内容を、横に並べて表示します (side-by-side 形式)。 .TP .B \-\-suppress\-common\-lines side-by-side 形式の表示で、同じ内容の行は表示しないようにします。 .TP .B \-u unified diff 形式を用います。 .TP .BI \-\-unchanged\-group\-format= format if-then-else 形式で変更がなかった部分を出力するために使う .I format .TP .BI \-\-unchanged\-line\-format= format if-then-else 形式で変更がなかった行を出力するために使う .I format .TP .BI "\-U " 行数 .br .ns .TP .BI \-\-unified[= 行数 ] -unified diff 形式にします。不一致の行の前後に、`行数'で -指定した行数のマッチした行も表示します。`行数'を省略した場合は 3行になります。 +unified diff 形式にします。不一致の行の前後に、`行数' で +指定した行数のマッチした行も表示します。`行数' を省略した場合は +3 行になります。 patch をうまく働かせるためには、少なくとも前後 2 行は必要です。 .TP .B \-v .br .ns .TP .B \-\-version .I diff のバージョンを表示します。 .TP .B \-w .br .ns .TP .B \-\-ignore\-all\-space 比較時に、空白は無視するようにします。 .TP .BI "\-W " columns .br .ns .TP .BI \-\-width= columns side-by-side 形式の表示で、1 行の幅を .I columns で指定した文字数にします。 .SH 関連項目 cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1) .SH 戻り値 比較結果として、違いが無かった場合は 0 を、違いが発見された場合は 1 を、 何かエラーがおきた場合は 2 を返します。 diff --git a/ja/man/man1/ftp.1 b/ja/man/man1/ftp.1 index 0d7487af05..1c2f65e15c 100644 --- a/ja/man/man1/ftp.1 +++ b/ja/man/man1/ftp.1 @@ -1,1379 +1,1379 @@ .\" %Id: ftp.1,v 1.8 1998/03/01 18:58:03 steve Exp % .\" %NetBSD: ftp.1,v 1.21 1997/06/10 21:59:58 lukem Exp % .\" .\" Copyright (c) 1985, 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ftp.1 8.3 (Berkeley) 10/9/94 .\" jpman %Id: ftp.1,v 1.3 1997/08/20 12:54:33 horikawa Stab % .\" .Dd August 18, 1997 .Dt FTP 1 .Os BSD 4.2 .Sh 名称 .Nm ftp , pftp , gate-ftp .Nd .Tn ARPANET ファイル転送プログラム .Sh 書式 .Nm .Op Fl a .Op Fl d .Op Fl e .Op Fl g .Op Fl i .Op Fl n .Op Fl U .Op Fl p .Op Fl P Ar port .Op Fl t .Op Fl v .Op Fl V .Op Ar host Op Ar port .Nm ftp ftp://[\fIuser\fR:\fIpassword\fR@]\fIhost\fR[:\fIport\fR]/\fIfile\fR[/] .Nm ftp http://\fIhost\fR[:\fIport\fR]/\fIfile\fR .Nm ftp \fIhost\fR:[/\fIpath\fR/]\fIfile\fR[/] .Sh 解説 .Nm は、 .Tn ARPANET 標準のファイル転送プロトコルを用いてファイル転送を実現するためのコマンドです。 本コマンドは、ネットワークを介して接続されているコンピュータ間で ファイルを転送する手段をユーザに提供します。 .Pp 書式の後ろから 3 つの使用例の形式では HTTP または FTP プロトコルの いずれかを使ってファイルをカレントディレクトリに取得します。 これはスクリプト用に理想的です。 より詳しい情報については .Sx ファイルの自動的な取得 を参照して下さい。 .Pp オプションは、コマンドライン上か、コマンドインタプリタで指定できます。 .Bl -tag -width "port " .It Fl a .Nm は通常のログイン手続きを飛ばして、かわりに anonymous ログインを 使います。 .It Fl d デバッグを有効にします。 .It Fl e コマンドラインでの編集を無効にします。 .It Fl g ファイル名展開を無効にします。 .It Fl U データポートの範囲制限を無効にします。 .It Fl i 複数ファイル転送を行っている間の対話的プロンプトモードを オフにします。 .It Fl n .Nm が最初に接続する際の .Dq 自動ログイン を行いません。 自動ログインが許可された場合は、 .Nm は起動したユーザのホームディレクトリの .Pa .netrc (下記参照) ファイルに、リモートマシンのアカウントを記述している エントリがあるかどうかを調べます。 そのファイルにエントリがない場合には、 .Nm はリモートマシン上のログイン名 (デフォルトはローカルマシンでのユーザ ID) を要求します。 そして、もし必要があればログイン用のパスワードと アカウントの入力も促します。 .It Fl p 防火壁を越える接続のためのパッシブモード操作を有効にします。 .Nm pftp コマンドを使うのと同じです。 .It Fl P Ar port ポート番号を .Ar port に設定します。 .It Fl t パケットのトレースを有効にします。 .It Fl v 饒舌モードを有効にします。 入力が端末からの場合はこれがデフォルトです。 .Nm はデータ転送状況と、 リモートサーバからのすべてのレスポンスを表示します。 .It Fl V 入力が端末からの場合に、デフォルトで有効になっているのを無視して 饒舌モードを無効にします。 .El .Pp .Nm は、通信相手をコマンドラインで指定することが出来ます。通信相手を コマンドラインで指定した場合、 .Nm は指定したリモートマシンの .Tn FTP サーバプログラムとの接続を試みます。それ以外の場合、 .Nm は内部のコマンドインタプリタに入り、ユーザからの コマンド入力を待ちます。このとき .Nm は、 .Ql ftp> というプロンプトを出力します。 本状態の時には、 .Nm は以下のコマンドを受け付けます。 .Bl -tag -width Fl .It Ic \&! Op Ar command Op Ar args ローカルマシン上でシェルを起動します。 引数が指定された場合、最初の引数をコマンドとして実行し、 それ以降の引数はそのコマンドに対する引数として処理されます。 .It Ic \&$ Ar macro-name Op Ar args .Ar macro-name で定義されたマクロを実行します。マクロは、 .Ic macdef コマンドで定義出来ます。 .Ar args で指定された文字列は、展開されずにマクロに対して引き渡されます。 .It Ic account Op Ar passwd 一旦ログインに成功したユーザが、資源を扱うためにリモートマシンから 要求された追加のパスワードを入力します。 引数が指定されない場合、ユーザに対してパスワード入力を促す表示がされます。 この場合はパスワードはエコーバックされません。 .It Ic append Ar local-file Op Ar remote-file ローカルファイルをリモートマシン上のファイルに追加書き込みします。 もし、 .Ar remote-file が指定されていなければ、ローカルファイルの名前を .Ic ntrans や .Ic nmap で修正した名前をリモートファイル名として使います。 ファイル転送では .Ic type , .Ic format , .Ic mode , .Ic structure の現在の設定が使われます。 .It Ic ascii 転送ファイルの .Ic type をネットワーク .Tn ASCII 形式にします。 これはデフォルト時の設定です。 .It Ic bell 各ファイル転送コマンド終了時にベルを鳴らすかどうかを指定します。 .It Ic binary 転送ファイルの .Ic type をバイナリ形式にします。 イメージファイルなど、バイナリファイルを転送する時には本指定は必須です。 .It Ic bye リモートサーバとの .Tn FTP セッションを終了し、 .Nm を終了します。 EOF を入力した場合も同様です。 .It Ic case .Ic mget コマンドで連続してファイルを取得する場合、リモートマシン上の ファイル名の大文字小文字の対応を切り替えます。 デフォルトでは .Ic case はオフですが、オンの場合にはリモートマシンファイル名の すべての大文字が小文字に変換されて、ローカル マシンのディレクトリに 書き込まれます。 .It Ic \&cd Ar remote-directory リモートマシン上での作業ディレクトリを .Ar remote-directory へ変更します。 .It Ic cdup リモートマシン上での作業ディレクトリを一つ上に変更させます。 .It Ic chmod Ar mode file-name .Ar file-name で指定したリモートマシン上のファイルの属性を、 .Ar mode で指定したものに変更します。 .It Ic close リモートサーバとの .Tn FTP セッションを終了します。そしてコマンド入力待ちのプロンプトを表示します。 すでに定義されたマクロはすべて無効になります。 .It Ic \&cr ASCII 形式ファイルの転送を行なう場合に、 復帰コードの除去を行なうかどうかを変更します。 ASCII 形式のファイル転送時には、 復帰/改行 の文字列によってレコードが認識されます。 .Ic \&cr -がオン(デフォルト)の時には、改行コードのみでレコードを区切る +がオン (デフォルト) の時には、改行コードのみでレコードを区切る .Ux に適合するように、 復帰コードが文字列から除去されます。 .Ux 以外のリモートのシステムのレコードは 単独の改行コードを含む可能性があります。 ASCII 形式で転送を行った時には、そういった改行コードは .Ic \&cr がオフの場合にだけレコード区切り記号と区別して扱われます。 .It Ic delete Ar remote-file リモートマシン上のファイル .Ar remote-file を削除します。 .It Ic debug Op Ar debug-value デバッグモードを切り替えます。 .Ar debug-value が指定されるとデバッグレベルとして設定されます。 デバッグモードが有効になると、 .Nm はリモートマシンに送信されたコマンドを .Ql \-\-> に続けて表示します。 .It Ic dir Op Ar remote-directory Op Ar local-file リモートマシン上のディレクトリの内容を表示します。 表示内容にはサーバが選択したシステム依存の情報を含みます。 例えば大部分の .Ux システムは .Ql ls \-l コマンドから得られる出力を表示します。 ( .Ic ls も参照して下さい) もし .Ar remote-directory が指定されなければ、リモートマシン上のカレントディレクトリの内容が 表示されます。 もしプロンプトがオンだったら、 .Nm は、最後の引数が本当に .Ic dir の出力を書き込むローカルファイルかどうか問い合わせます。 ローカルファイルの指定が無い場合、または .Ar local-file の指定が .Sq Fl だった場合は出力は画面に表示されます。 .It Ic disconnect .Ic close と同じです。 .It Ic edit コマンドラインの編集機能、そして文脈に応じたコマンドとファイルの 補完機能を切り替えます。 これは入力が端末の場合は自動的に有効になり、そして そうでなければ無効になります。 .It Ic exit .Ic bye と同じです。 .It Ic ftp Ar host Op Ar port .Ic open と同じです。 .It Ic form Ar format ファイル転送様式を .Ar format と指定します。 デフォルトでは、様式は \*(Lqfile\*(Rq となります。 .It Ic get Ar remote-file Op Ar local-file リモートマシン上のファイル .Ar remote-file を取得してローカルマシン上に格納します。 ローカルファイル名 .Ar local file が指定されない場合、 ローカルファイル名は取得したファイルの リモートマシン上の名前と同じになります。 ただし、その名前は .Ic case , .Ic ntrans , .Ic nmap の設定により変更される事があります。 ファイル転送の時には現在の .Ic type , .Ic form , .Ic mode , .Ic structure の設定が使用されます。 .It Ic gate Op Ar host Op Ar port gate-ftp モードを切り替えます。 これは gate-ftp サーバが設定されていないと有効になりません (ユーザによって明示的に、または .Ev FTPSERVER 環境変数によって)。 .Ar host が与えられると、 gate-ftp モードが有効になり、そして gate-ftp サーバが .Ar host に設定されます。 .Ar port も同時に与えられると、それが gate-ftp サーバへ接続する際のポートとして使用されます。 .It Ic glob .Ic mdelete , .Ic mget , .Ic mput を行なう場合のファイル名の展開のオン/オフを切り替えます。 .Ic glob がオフの場合には、ファイル名は展開されずにそのままになります。 .Ic mput でのファイル名展開の規則は .Xr csh 1 のファイル名展開規則と同様です。 .Ic mdelete と .Ic mget の場合には、 各々のリモートファイル名はリモートマシン上で別々に展開され、 リストはマージされません。 ディレクトリ名の展開は普通のファイル名の展開と異なる事があります。 つまり、展開の結果はリモートの OS と FTP サーバに依存しています。 これは .Ql mls remote-files \- を実行する事によってあらかじめ知ることができます。 注意: .Ic mget と .Ic mput はファイルのディレクトリ・サブツリーを全て転送する物ではありません。 そのようにしたい時はサブツリーの .Xr tar 1 のアーカイブを作成してバイナリモードで転送します。 .It Ic hash Op Ar size 1 データブロック転送するごとに ハッシュサイン (``#'') を出力するかどうかを切り替えます。 デフォルトでは 1 データブロックは 1024byte です。 これは .Ar size でバイト単位で指定する事で変更できます。 .It Ic help Op Ar command 引数 .Ar command で指定したコマンドのヘルプメッセージを出力します。 引数が与えられない場合、 .Nm は使用可能なコマンドの一覧を出力します。 .It Ic idle Op Ar seconds リモートサーバ上のアイドルタイマを .Ar seconds 秒に設定します。 .Ar seconds が与えられない場合は現在のアイドルタイマ値を表示します。 .It Ic lcd Op Ar directory ローカルマシン上の作業ディレクトリを変更します。 .Ar directory 名が与えられない場合はユーザのホームディレクトリに移動します。 .It Ic less Ar file .Ic page と同じです。 .It Ic lpwd ローカルマシン上の作業ディレクトリを表示します。 .It Ic \&ls Op Ar remote-directory Op Ar local-file リモートマシンのディレクトリの内容のリストを表示します。 .Ar remote-directory の指定が無い場合には、 代わりに現在の作業ディレクトリが使われます。 もしプロンプトモードになっているならば, .Nm は、最後の引数が .Ic ls -の出力を受け取るローカルのファイルであるかをユーザーに問い合わせます。 +の出力を受け取るローカルのファイルであるかをユーザに問い合わせます。 .Ar local-file の指定がない場合や .Fl が指定されている場合には、 出力は画面に表示されます。 .It Ic macdef Ar macro-name マクロ定義を行ないます。 後続の行がマクロ .Ar macro-name として格納されます。 空行 (1 つのファイル内での連続した改行文字や端末からの連続した 復帰文字) は マクロの入力モードを終了させます。 マクロの数の制限は 16 個で、定義されたマクロ全部で 4096 文字までがゆるされています。マクロは .Ic close コマンドが実行されるまで持続します。 マクロプロセッサは `$' と `\e' を特別な文字として解釈します。 1つ以上の数字が続く `$' は、コマンドラインで呼び出したマクロの 対応する引数によって置き換えられます。 後ろに `i' が続く `$' は、マクロプロセッサに対して実行している マクロのループを指示します。 最初のパスで `$i' はマクロを呼び出したコマンドラインの最初の引数に 置き換えられ、2 回目のパスで 2 つ目の引数に置き換えられ、それ以降も 同様に置き換えられます。 後ろに任意の文字が続いている `\e' はその文字に置き換えられます。 `\e' は `$' の特別な扱いを避けるために使用します。 .It Ic mdelete Op Ar remote-files リモートマシンの .Ar remote-files を削除します。 .It Ic mdir Ar remote-files local-file 複数のリモートファイルを指定出来る点を除くと .Ic dir と同様です。 プロンプトがオンの時には、 .Nm は最後の引数が .Ic mdir -の出力を受け取るローカルファイルであるかをユーザーに問い合わせます。 +の出力を受け取るローカルファイルであるかをユーザに問い合わせます。 .It Ic mget Ar remote-files リモートマシンで .Ar remote-files で指定されたファイルを展開し、展開後の各ファイル名のファイルに対して .Ic get を実行します。 ファイル名の展開の詳細は .Ic glob を参照してください。 生成されたファイル名は .Ic case , .Ic ntrans , .Ic nmap の設定に従い処理されます。 ファイルはローカルの作業ディレクトリに転送されます。 そのディレクトリは .Ql lcd directory で変更できます。 ローカルの新しいディレクトリは .Ql "\&! mkdir directory" で作成できます。 .It Ic mkdir Ar directory-name リモートマシンにディレクトリを作ります。 .It Ic mls Ar remote-files local-file 複数のリモートファイル名を指定できる点と .Ar local-file を必ず指定しなければならない点を除くと .Ic ls と同様です。 プロンプトがオンの時には、 .Nm は最後の引数が .Ic mls の出力を受け取る目標のローカルファイルであるかをユーザに確認します。 .It Ic mode Op Ar mode-name ファイル転送モード .Ic mode を .Ar mode-name で指定したものに設定します。 デフォルトは \*(Lqstream\*(Rq です。 .It Ic modtime Ar file-name リモートマシン上の指定ファイルの最終更新日時を参照します。 .It Ic more Ar file .Ic page と同じです。 .It Ic mput Ar local-files 引数として与えられたローカルファイルのリスト中の ワイルドカードを展開し、 展開後の各ファイル名のファイルに対して .Ic put を実行します。 ファイル名の展開の詳細については .Ic glob を参照してください。 生成されたファイル名は .Ic ntrans と .Ic nmap の設定に従って処理されます。 .It Ic msend Ar local-files .Ic mput と同じです。 .It Ic newer Ar file-name リモートマシンのファイルの最終更新日時の方が ローカルマシンのファイルより新しい場合にのみファイルを取得します。 現在のシステムにファイルが無いときには、リモートファイルの方が .Ic 新しい ものとして扱われます。 その他については .Ar get と同じです。 .It Ic nlist Op Ar remote-directory Op Ar local-file .Ic ls と同じです。 .It Ic nmap Op Ar inpattern outpattern ファイル名のマッピング機能を設定したり解除したりします。 引数が無い場合にはマッピング機能が解除されます。 引数がある場合には、出力先のリモートファイル名の指定されていない .Ic mput コマンドと .Ic put コマンドの実行時に、リモートファイル名がマップされます。 同様な事が .Ic mget コマンドと .Ic get コマンドのローカルファイル名についても行われます。 このコマンドはファイルの命名規則が異なる .Ux ではないリモートマシンとの接続時に便利です。 マッピングは .Ar inpattern と .Ar outpattern によって設定されたパターンに従って行われます。 .Op Ar inpattern は (すでに .Ic ntrans と .Ic case によって処理されているかもしれない) 入力ファイル名のためのテンプレートです。 .Ar inpattern -に`$1', `$2', ..., `$9' の文字列を含むことによって、 +に `$1', `$2', ..., `$9' の文字列を含むことによって、 変数を使用したテンプレートも使えます。 `$' を特別扱いしたくない時には `\\' を使ってください。 他の文字はそのままその文字として扱われ、 .Ic nmap の .Op Ar inpattern 変数の値を決めるのに用いられます。 例えば、 .Ar inpattern として $1.$2 が、 リモートファイルの名前として "mydata.data" が 与えられた時に、$1 は "mydata" という値となり, $2 は "data" という値になります。 .Ar outpattern は生成されるマッピング後のファイル名を決定します。 文字列の `$1', `$2', ...., `$9' は .Ar inpattern のテンプレートから生成される値に置き換えられます。 文字列の `$0' は元のファイル名で置き換えられます。 さらに、文字列の .Ql Op Ar seq1 , Ar seq2 は .Ar seq1 が空文字列でない時には .Op Ar seq1 に、 空文字列の時には .Op Ar seq2 に置き換えられます。 例えばコマンド .Pp .Bd -literal -offset indent -compact nmap $1.$2.$3 [$1,$2].[$2,file] .Ed .Pp は、 入力ファイル名 "myfile.data" と "myfile.data.old" に対して出力ファイル名が "myfile.data" になり、 入力ファイル名 "myfile" に対して出力ファイル名が "myfile.file" になり、 入力ファイル名 ".myfile" に対して 出力ファイル名が "myfile.myfile"になります。 例えば、`nmap $1 sed "s/ *$//" > $1' のように、 .Ar outpattern にはスペースが入っていても構いません。 文字 `$', `[', `]', `,' を特別扱いしたくない時には `\e' を使ってください。 .It Ic ntrans Op Ar inchars Op Ar outchars ファイル名の文字変換機能を設定したり解除したりします。 引数が無い場合には文字変換機能が解除されます。 引数がある場合には、出力先のリモートファイル名の指定されていない .Ic mput コマンドと .Ic put コマンドの実行時にリモートファイル名が変換されます。 同様な事が .Ic mget コマンドと .Ic get コマンドでもローカルファイルに対して行われます。 このコマンドは、 .Ux とは異なるファイル命名規則のリモートマシンとの接続時に有効です。 ファイル名中の文字で、 .Ar inchars の中の文字に一致するものが .Ar outchars の対応する文字に置き換えられます。 .Ar inchars の中での文字の位置が .Ar outchars の長さを越えている時には、その文字はファイル名から削除されます。 .It Ic open Ar host Op Ar port 指定した .Ar host の .Tn FTP サーバとのコネクションを確立します。 ポート番号 .Ar port を指定した場合、 .Nm は指定したポート番号を用いて .Tn FTP サーバとのコネクションの確立を試みます。 .Ic 自動ログイン -オプションがオン ( デフォルト時 ) の場合には、 +オプションがオン (デフォルト時) の場合には、 .Nm は自動的に .Tn FTP -サーバに対してログインを行ないます ( 以下を参照 ) 。 +サーバに対してログインを行ないます (以下を参照)。 .It Ic page Ar file .Ic file を取得して、 .Ev PAGER で指定されたプログラム (デフォルトは .Xr less 1 -)を使って表示します。 +) を使って表示します。 .It Ic passive パッシブモードを切り替えます。パッシブモードがオン (デフォルトはオフ) なら、ftp クライアントは すべてのデータコネクションにおいて、通常の .Dv PORT コマンドの代わりに .Dv PASV コマンドを送ります。 .Dv PASV コマンドはリモートのサーバにデータコネクションのためのポートを 開いて、そのポートのアドレスを返すよう要求します。 リモートサーバはそのポートで待ち、クライアントはそこに接続します。 より伝統的な .Dv PORT コマンドを使う場合は、クライアントがポートで待ち、そしてそのアドレスを リモートサーバに送ってリモートサーバはそこに接続して来ます。 パッシブモードは ゲートウェイ・ルータやトラフィックの方向を制御しているホストを 経由して .Nm を使う場合に有用です。 (注意: ftp サーバが RFC 1123 の .Dv PASV コマンドをサポートしている必要がありますが、サポートしていない 場合もあります。) .It Ic preserve 受け取ったファイルの更新日時を保存するかどうかを切り替えます。 .It Ic progress 転送の進行状況を表す棒グラフ表示を切り替えます。 この棒グラフは、 .Ar ローカルファイル として .Sq Fl か .Sq \&| で始まるコマンドが指定された転送では表示されません。 詳しくは .Sx ファイル名の規則 を参照して下さい。 .It Ic prompt 対話的プロンプトモードを切り替えます。 対話的プロンプトモードをオンにすることで、 複数ファイル転送時に転送ファイルの選択を行なえます。 対話的プロンプトモードをオフにすると (デフォルトはオン)、 .Ic mget や .Ic mput で指定したファイルはすべて転送され、 .Ic mdelete で指定したファイルはすべて削除されます。 .Pp プロンプトモードがオンの時には、プロンプトにおいて以下の コマンドが使用できます: .Bl -tag -width 2n -offset indent .It Ic n ファイルを転送しません。 .It Ic a 現在のファイルについて .Sq yes とし、自動的に現在のコマンドに対する残りのすべての ファイルに対しても .Sq yes とします。 .It Ic p 現在のファイルについて .Sq yes とし、プロンプトモードをオフにします (あたかも .Dq prompt off が指定されたかのように)。 .El .Pp これ以外の応答は現在のファイルに対する .Sq yes として扱われます。 .It Ic proxy Ar ftp-command -ftp コマンドを 2次制御接続上で実行します。 +ftp コマンドを 2 次制御接続上で実行します。 本コマンドを用いることで、同時に 2 つのリモートマシンとコネクションを確立し、 -2つのサーバ間でファイル転送を行なうようにすることができるようになります。 +2 つのサーバ間でファイル転送を行なうようにすることができるようになります。 最初の .Ic proxy コマンドは .Ic open コマンドである必要があります。 これは、2 次的な制御コネクションを確立するために必要な操作です。 "proxy ?" とコマンドを実行することで、 2 次接続下で使用可能なコマンド一覧が表示されます。 以下のコマンドは .Ic proxy の後におかれた時には異なった働きをします。 .Ic open は自動ログイン処理中には新しいマクロの定義を行いません。 .Ic close はマクロの削除を行いません。 .Ic get と .Ic mget は 1次制御接続のホストから 2次制御接続のホストにファイルの転送を行います。 .Ic put と .Ic mput と .Ic append は 2次制御接続のホストから 1次制御接続のホストにファイルの転送を行います。 第三者のファイル転送は、2次制御接続のサーバが FTP プロトコルの .Dv PASV コマンドをサポートしているかどうかに依存します。 .It Ic put Ar local-file Op Ar remote-file ローカルマシン上の指定ファイルをリモートマシンに転送します。 .Ar remote-file が指定されない場合には、転送先でのファイル名は、 .Ic ntrans か .Ic nmap の設定に基づく処理を行ったローカルファイルの名前が用いられます。 ファイル転送には .Ic type , .Ic format , .Ic mode , .Ic structure の現在の設定が用いられます。 .It Ic pwd 現在のリモートマシン上での作業ディレクトリを表示します。 .It Ic quit .Ic bye と同じです。 .It Ic quote Ar arg1 arg2 ... 引数で指定した文字列を、そのままリモート .Tn FTP サーバに送信します。 .It Ic recv Ar remote-file Op Ar local-file .Ic get と同じです。 .It Ic reget Ar remote-file Op Ar local-file getと似ていますが、 .Ar local-file が存在しており .Ar remote-file よりサイズが小さい場合には、 .Ar local-file がリモートファイルの一部であるとみなして続きをコピーする点が異なります。 本コマンドは、大きいファイルの転送中にコネクションが 切断されてしまった場合の続きを受信しなおす場合などに有用です。 .It Ic remotehelp Op Ar command-name リモート .Tn FTP サーバのヘルプメッセージを要求します。 .Ar command-name が指定された場合にはそのコマンドのヘルプが表示されます。 .It Ic rstatus Op Ar file-name 引数がない場合にはリモートマシンのステータスが表示されます。 .Ar file-name が指定されている場合には、 リモートマシン上の指定ファイルのステータスが表示されます。 .It Ic rename Op Ar from Op Ar to リモートマシン上のファイル .Ar from が、 .Ar to というファイル名にリネームされます。 .It Ic reset リプライキューをクリアします。 本コマンドはコマンド/リプライのシーケンスの再同期をとるのに使われます。 再同期を取ることは ftp プロトコル上の障害が発生した時に必要な操作です。 .It Ic restart Ar marker .Ic get や .Ic put を指定した .Ar marker 位置から再開します。 .Ux システムにおいては、通常 marker はファイルのバイトオフセットで指定します。 .It Ic restrict データポートの幅を制限するかをオン/オフします。 パッシブモードでない時に、 .Nm クライアントはリモートサーバに対して、独立したデータポートで クライアントホストに接続してくることを要求します。 前のバージョンでは、そのリモートポートは 1024 から 4999 までの幅に 収まっていました。 しかしほとんどの防火壁 (fire wall) では、その範囲に他のサービスが あるために TCPポートをフィルタリングしています。 現在のデフォルトの動作では、ポート番号が 40000 から 44999 の間で、 サーバがクライアントに対して接続してくることを要求します。 もしセキュリティ上の危険性がないと考えるならば、防火壁管理者は その幅での TCP 接続に対して許可を行うという選択ができます。 .It Ic rmdir Ar directory-name リモートマシン上のディレクトリを消去します。 .It Ic runique ローカルマシンに保存されるファイルに対して ユニークな名前を付加するかどうかを切り替えます。 .Ic get や .Ic mget コマンドで目的のローカルファイルと同じ名前のファイルが既に存在する時には、 ".1" が名前に付加されます。 その名前も既に存在する時には ".2" が付加されます。 このように順番に処理をし、 ".99" になっても存在する時には エラーメッセージが表示され、転送は行われません。 生成されたユニークなファイル名は報告されます。 注意: .Ic runique はシェルコマンドで生成されるファイル名には効果がありません (下記参照)。 デフォルトではオフになっています。 .It Ic send Ar local-file Op Ar remote-file .Ic put と同じです。 .It Ic sendport .Dv PORT コマンドを使用するかどうか切り替えます。 デフォルトでは、 .Nm は各データ転送用のコネクションの確立の際に .Dv PORT コマンドの使用を試みます。 .Dv PORT を使うことで複数ファイル転送を行なう場合の遅延を避けることが出来ます。 .Dv PORT コマンドが失敗した場合、 .Nm はデフォルトのデータ・ポートを使用します。 .Dv PORT コマンドが無効になった場合、データ転送時に .Dv PORT コマンドは使われません。 これはある種の .Tn FTP の実装で .Dv PORT コマンドは無視するが、誤っていて、受け入れたと返事を返すような 物に対して有効です。 .It Ic site Ar arg1 arg2 ... 引数で指定した文字列を、 .Dv SITE コマンドの引数としてそのまま .Tn FTP サーバに送信します。 .It Ic size Ar file-name リモートマシン上の .Ar file-name で指定したファイルのサイズを表示します。 .It Ic status .Nm の現在の状態を表示します。 .It Ic struct Op Ar struct-name ファイル転送の .Ar structure を .Ar struct-name に設定します。 デフォルトでは、\*(Lqstream\*(Rq に設定されています。 .It Ic sunique リモートマシン上に転送するファイルのファイル名に対して、 一意な名前を付与するかどうかを切り替えます。 この機能が使えるためには、 リモートの FTP サーバが FTP のプロトコルの .Dv STOU コマンドをサポートしていなければなりません。 リモートサーバがユニークな名前を報告します。 デフォルトではこの機能はオフになっています。 .It Ic system リモートマシンで稼働している OS のタイプを表示します。 .It Ic tenex .Tn TENEX マシンと 通信するために必要なファイル転送モードを設定します。 .It Ic trace パケットトレースをするかどうかを切り替えます。 .It Ic type Op Ar type-name ファイル転送の .Ic type を .Ar type-name に変更します。引数が指定されない場合には 現在のファイル転送タイプを表示します。 デフォルトタイプはネットワーク .Tn ASCII です。 .It Ic umask Op Ar newmask リモートサーバのデフォルトの umask 値を .Ar newmask で指定した値に変更します。 .Ar newmask が指定されていない場合は現在の umask 値を表示します。 .It Xo .Ic user Ar user-name .Op Ar password Op Ar account .Xc ユーザをリモート .Tn FTP サーバに認識させます。 .Ar password が指定されていなくて、 .Tn FTP サーバが必要とする場合は -( ローカルエコーをオフにしてから ) +(ローカルエコーをオフにしてから) .Nm がユーザに問い合わせます。 .Ar account が指定されていなくて、 .Tn FTP サーバが必要とする場合には、 .Nm がユーザに問い合わせます。 リモートサーバがログイン時にアカウントを必要としないのに .Ar account フィールドが指定された場合には、ログイン処理の完了後に account コマンドがリモートサーバに渡されます。 「自動ログイン」を無効にした状態で .Nm が呼び出されない限り、 この処理は .Tn FTP サーバに最初につながった時に自動的に行われます。 .It Ic verbose 饒舌モードの切り替えをします。 饒舌モードの時には .Tn FTP サーバからの全ての応答が表示されます。 さらにこのモードがオンの時には、ファイル転送が終了した時に 転送効率に関する統計が報告されます。 デフォルトではオンになっています。 .It Ic ? Op Ar command .Ic help コマンドと同じです。 .El .Pp スペースを含むコマンドの引数は、`"' マークで括って下さい。 .Pp 設定を切り替えるコマンドでは、設定を指定するために明示的に .Ic on か .Ic off を引数として指定できます。 .Pp .Nm が転送中に .Dv SIGINFO ( .Xr stty 1 の引数 .Dq status を参照) シグナルを受けると、その時点での転送レートの統計情報が 終了時の標準的なフォーマットと同じ形式で標準エラー出力に書き出されます。 .Sh ファイルの自動取得 標準的なコマンドに加えて、 このバージョンの .Nm は自動取得の機能をサポートします。 単にホスト名/ファイルのリストをコマンドラインで渡すと 自動取得が有効になります。 .Pp 自動取得の指定では以下の形式を認識します: .Bl -tag -width "host:/file" .It host:/file .Dq 古典的な ftp の形式 .It ftp://[user:password@]host[:port]/file -ftp URL形式で、 +ftp URL 形式で、 .Ev ftp_proxy -が定義されていなければ ftpプロトコルで取得します。 +が定義されていなければ ftp プロトコルで取得します。 そうでなければ .Ev ftp_proxy で指定されたプロキシを経由した http を使って転送します。 .Ar user:password@ が指定されていて .Ev ftp_proxy が定義されていない場合は、 パスワードに .Ar password を使って .Ar user でログインします。 .It http://host[:port]/file -HTTP URL形式、http プロトコルで取得します。 +HTTP URL 形式、http プロトコルで取得します。 .Ev http_proxy -が定義されている場合は、その内容が HTTPプロキシサーバの +が定義されている場合は、その内容が HTTP プロキシサーバの URL として使用されます。 .El .Pp 古典的な形式または ftp URL形式で最後に .Sq / がある場合は、 .Nm はサイトに接続して与えられたパスのディレクトリに .Ic cd し、以降の入力を受け付けるために対話モードに入ります。 .Pp 自動取得の対象が複数指定されていて、連続しているものが同じホストを 参照している時は、接続の確立と切断によるオーバヘッドを避けるために 複数の転送にわたって接続が維持されます。 .Pp ファイル名の展開がオンで .Ic file が展開の対象となる文字を含んでいるなら ( .Ic glob 参照) .Ic "mget file" と同じ事を行います。 .Pp .Ic file のディレクトリ部分が展開の対象となる文字を含まなければ、 ファイルは .Ic file から .Xr basename 1 で得られる名前で現在のディレクトリに置かれます。 そうでなければリモートの名前をローカルでの名前として使います。 .Sh ファイル転送の中止 ファイル転送を中断するためには、 端末のインタラプトキー (通常は Ctrl-C) を打鍵してください。 データ送信はただちに停止します。 データ受信は、ftp プロトコルの .Dv ABOR コマンドをリモートサーバに送ることでサーバからのデータ送信がとまります。 そしてそれ以降の受信データは捨てられます。 これが行われる速度は、リモートサーバが .Dv ABOR コマンドをサポートする方式に依存します。 リモートサーバが .Dv ABOR コマンドをサポートしていない時には、 リモートサーバが要求したファイルを送り終るまで .Ql ftp> というプロンプトは現れません。 .Pp 端末からの割り込みキー入力は、 .Nm が何かローカルの処理をすでに完了していて リモートサーバからの応答を待っている時には無視されます。 このモードでの長い遅延は上でも述べたように ABOR 処理の結果に よるものか、 ftp のプロトコル違反を含めたリモートサーバによる 予期せぬ動作のどちらかによるものです。 もしリモートサーバの予期せぬ動作の結果による遅延であるならば、 ローカルの .Nm プログラムは手動で終了 (kill) しなければなりません。 .Sh ファイル名の規則 .Nm コマンドの引数として指定されたファイル名は、以下の規則で処理されます。 .Bl -enum .It ファイル名として .Sq Fl が指定された場合、 入力ファイル名の場合には標準入力 .Ar stdin が、 出力ファイル名の場合には標準出力 .Ar stdout が使用されます。 .It ファイル名の先頭の文字が .Sq \&| の場合には、その後に指定された文字列はすべてシェルコマンドと解釈されます。 .Nm は与えられた引数をつけて .Xr popen 3 -を用いてシェルを呼び出し、標準入力から(標準出力へ)読み出し(書き込み)ます。 +を用いてシェルを呼び出し、標準入力から (標準出力へ) 読み出し (書き込み) ます。 シェルコマンドにスペースが含まれている時には 引数は引用符で囲まれなければなりません。 (例: \*(Lq" ls -lt"\*(Rq ) 特に有用な例としては \*(Lqdir \&|more\*(Rq があります。 .It -上記のチェックにひっかからず、 ``globbing'' が許可されている場合、 +上記のチェックにひっかからず、``globbing'' が許可されている場合、 ローカルファイル名は .Xr csh 1 のファイル名展開規則にしたがって展開されます。 (詳細は .Ic glob コマンドを参照) ただし、 .Nm のコマンドが 1 つのファイル名しか必要としない場合 (例えば .Ic put ) は、ファイル名が展開された後の最初のファイル名だけが使用されます。 .It .Ic mget コマンドと .Ic get コマンドにおいてローカルファイル名が指定されない場合、 ローカルファイル名はリモートファイル名と同一になります。 ただし、これらのファイル名は .Ic case , .Ic ntrans , .Ic nmap の設定によって変わることもあります。 結果として得られたファイル名は、 .Ic runique が設定されていればさらに変わるかもしれません。 .It .Ic mput コマンドと .Ic put コマンドにおいてリモートファイル名が指定されない場合、 リモートファイル名はローカルファイル名と同一になります。 ただし、これらのファイル名は .Ic ntrans , .Ic nmap の設定によって変わることもあります。 結果として得られたファイル名は、 .Ic sunique が設定されていればリモートサーバによって さらに変えられるかも知れません。 .El .Sh ファイル転送パラメータ FTPの仕様にはファイル転送時に影響を及ぼす多くのパラメータがあります。 .Ic type は、\*(Lqascii\*(Rq, \*(Lqimage\*(Rq (binary), \*(Lqebcdic\*(Rq, \*(Lqlocal byte size\*(Rq ( .Tn PDP Ns -10 および .Tn PDP Ns -20 でよく使われます) が指定可能です。 .Nm は、ascii と image のタイプを指定可能なのに加えて、 .Ic tenex モードの転送を指定することにより ローカルバイトサイズ 8 を指定することが可能です。 .Pp .Nm では、他の .Ic mode , .Ic form , .Ic struct のパラメータではデフォルト値だけが使用可能です。 .Sh .netrc ファイル .Pa .netrc ファイルは、自動ログイン処理においてのログインおよび初期設定情報を記述します。 .Pa .netrc ファイルは、ユーザのホームディレクトリに置きます。 .Pa .netrc では以下の予約語が解釈されます。これらはスペース、タブそして new-line によって分割されます。 .Bl -tag -width password .It Ic machine Ar name リモートマシン名 .Ar name を定義します。 自動ログイン処理は .Pa .netrc ファイル中に .Ic machine トークンがあるかどうか探し、そのエントリが .Nm のコマンドラインもしくは .Ic open コマンドの引数と一致するかどうかチェックします。 一致するエントリがあった場合は後に続く .Pa .netrc トークンが処理され、その処理はファイル最後尾に行き着くか他の .Ic machine トークンまたは .Ic default トークンに出くわすまで続きます。 .It Ic default いろんな名前と一致するワイルドカード的な働きがあることを除けば .Ic machine .Ar name と同様です。 .Ic default トークンは、 .Pa .netrc ファイル中に 1 エントリだけが許され、 しかも他の全ての .Ic machine トークンより後ろでなければなりません。 通常は .Pp .Dl default login anonymous password user@site .Pp のように使用されます。 本エントリによって .Pa .netrc に指定の無い ftp サイトに自動で anonymous ログインを試みるようになります。 .Fl n フラグを付加して ftp を起動することで .Pa .netrc ファイルを無視することが出来ます。 .It Ic login Ar name リモートマシンにおけるログイン名を指定します。 本トークンが与えられている場合、自動ログイン処理は .Ar name をログイン名としてログインしようとします。 .It Ic password Ar string パスワードを指定します。 本トークンが指定されている場合でリモートサーバがログイン処理中に パスワードを要求する場合は、自動ログイン処理は指定した文字列を 送ります。 .Pa .netrc ファイルにおいて、 .Ar anonymous 以外のユーザエントリにおいて本トークンが登録されており、なおかつ .Pa .netrc がユーザ以外から読める属性である場合には .Nm は自動ログイン処理を中断します。 .It Ic account Ar string 追加のアカウントパスワードを登録します。 このトークンがあると、 もし追加のアカウントパスワードをリモートホストが必要とする時に 自動ログインプロセスが指定された文字列を与えます。 そうでない場合には、自動ログインプロセスは .Dv ACCT コマンドを与えます。 .It Ic macdef Ar name マクロを定義します。 このトークンの機能は .Nm .Ic macdef コマンドの機能に似ています。 マクロは指定された名前を用いて定義されます。 その内容は .Pa .netrc -の次の行から始まり、空行 ( 改行文字の連続 ) が現れるまで続きます。 +の次の行から始まり、空行 (改行文字の連続) が現れるまで続きます。 .Ic init というマクロが定義されているならば、 自動ログイン処理の中での最後の段階で自動的に実行されます。 .El .Sh コマンドラインの編集機能 .Nm は .Xr editline 3 ライブラリを使った対話的なコマンドラインの編集をサポートします。 これは .Ic edit コマンドによって有効になり、そして入力が tty からの場合は デフォルトで有効になっています。 カーソルキーで以前の行を呼び出して編集できます。 そして他にも GNU Emacs スタイルの編集用のキーが使えます。 .Pp .Xr editline 3 ライブラリは .Pa .editrc ファイルで設定できます - より詳しくは .Xr editrc 5 を参照して下さい。 .Pp .Nm には、文脈に依存したコマンドとファイル名の補完 (リモートファイルの補完を含む) 機能を提供するための 追加のキー割り当てが用意されています。 これを使うためには .Xr editline 3 の .Ic ftp-complete コマンドにキーを割り当てて下さい。 これはデフォルトで TAB キーに割り当てられています。 .Sh 環境変数 .Nm は、以下の環境変数を使用します。 .Bl -tag -width "FTP_PASSIVE_MODE" .It Ev FTP_PASSIVE_MODE パッシブモードの FTP をデフォルトで使用します。 .It Ev FTPSERVER .Ic gate -が有効な時に gate-ftpサーバとして使用するホスト。 +が有効な時に gate-ftp サーバとして使用するホスト。 .It Ev FTPSERVERPORT .Ic gate -が有効な時に gate-ftpサーバに接続するのに使うポート。 +が有効な時に gate-ftp サーバに接続するのに使うポート。 デフォルトは .Dq ftpgate/tcp で .Fn getservbyname を呼び出して返って来たポート。 .It Ev HOME 定義されていれば .Pa .netrc ファイルのデフォルトの置き場所となります。 .It Ev PAGER .Ic page でファイルを表示する際に使われます。 .It Ev SHELL デフォルトで起動するシェルを定義します。 .It Ev ftp_proxy -FTP URLリクエストを発行する時に使う FTPプロキシの URL -(定義されていなければ標準の ftpプロトコルを使います)。 +FTP URL リクエストを発行する時に使う FTP プロキシの URL +(定義されていなければ標準の ftp プロトコルを使います)。 .It Ev http_proxy -HTTP URLリクエストを発行する時に使う HTTPプロキシの URL。 +HTTP URL リクエストを発行する時に使う HTTP プロキシの URL。 .El .Sh 関連項目 .Xr getservbyname 3 , .Xr editrc 5 , .Xr services 5 , .Xr ftpd 8 .Sh 注釈 .Xr pftp 1 と .Xr gate-ftp 1 コマンドは .Nm にリンクされています。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から実装されました。 .Pp コマンドラインの編集、文脈に依存したコマンドとファイルの補完、 進行状況を表す棒グラフ、ファイルの自動的な取得、 ftp と http 形式の URL、更新時刻の保存といった各種の機能は .Nx 1.3 で Luke Mewburn によって、Jason Thorpe のアシスタントを得て実装されました。 .Sh バグ 多くのコマンドの正しい動作は、リモートサーバの適切な動作に依存します。 .Pp .Bx 4.2 の ascii モードでの転送時の復帰文字の取り扱いのエラーは訂正されています。 この訂正の結果として、 .Bx 4.2 のサーバとの間でバイナリファイルを ascii タイプを使用して転送した時に 不正転送をひき起こすことが あります。この問題を回避するためにはバイナリモードを用いて ファイル転送をして下さい。 diff --git a/ja/man/man1/grep.1 b/ja/man/man1/grep.1 index 0344107757..6361697320 100644 --- a/ja/man/man1/grep.1 +++ b/ja/man/man1/grep.1 @@ -1,377 +1,377 @@ .TH GREP 1 "1992 September 10" "GNU Project" .\" jpman %Id: grep.1,v 1.3 1997/07/21 07:22:12 konuma Stab % .SH 名称 grep, egrep, fgrep, zgrep \- パターンにマッチする行を表示する .SH 書式 .B grep [\-[AB] num] [\-HRPS] [\-CEFGLVabchilnqsvwx] [\-e expr] [\-f file] files... .SH 解説 .B grep は、 .I files で名前を指定されたファイル (ファイルが指定されてないか .I files の部分に .B \- が指定された場合は標準入力) を読み込み、 .I pattern で指定したパターンにマッチする部分を含んでいるかどうかを、行毎に調べます。 デフォルト動作では、マッチした行を表示します。 .PP .B grep は、以下のオプションにより大きく 3 つの動作に分かれます。 .PD 0 .TP .B \-G .I pattern として、基本的な正規表現を扱うモードです (下記参照)。デフォルトです。 .TP .B \-E .I pattern として、拡張された正規表現を扱うモードです (下記参照)。 .TP .B \-F .I pattern として、改行で区切られた固定の文字列パターンのリストを扱うモードです。 その文字列のどれかにマッチするかどうか調べます。 .LP さらに、2 つの同種のプログラム .B egrep と .B fgrep が利用可能です。 .B egrep は、 .B "grep\ \-E" と似ています (が等価ではありません) し、歴史的な UNIX の .B egrep と互換性があります。 .B fgrep は、 .B "grep\ \-F" と同じです。 .BR zgrep として呼ばれた場合には、 .BR \-Z オプションが仮定されます。 .PD .LP 全ての .B grep の変種は、以下のようなオプションを理解します: .PD 0 .TP .BI \- num .I num で指定した行数だけ、パターンにマッチした行の前後の行も表示します。 ただし、同じ行を 2 度以上表示する事はありません。 .TP .BI \-A " num" .I num で指定した行数だけ、パターンにマッチした行の後の行も表示します。 .TP .BI \-B " num" .I num で指定した行数だけ、パターンにマッチした行の前の行も表示します。 .TP .B \-C .B \-2 を指定した事と同じです。 .TP .B \-V .B grep のバージョン番号を標準エラー出力に表示します。バグレポート には、この番号を付記してください (下記参照)。 .TP .B \-a バイナリファイルの検索を行いません。 .TP .B \-b 各行の前に、ファイルの先頭からのバイト単位のオフセットを表示します。 .TP .B \-c 各行の表示はせず、マッチした行数だけを表示します。 .B \-v オプションと共に指定した場合は、 マッチしなかった行数の表示となります (下記参照)。 .TP .BI \-e " pattern" パターンを指定します。 .B \- で始まっているパターンを保護するために有効です。 .TP .BI \-f " file" パターンを .I file から読み込みます。 .TP .B \-h 複数ファイルを検索した時に、出力の前にファイル名を付けることを抑制します。 .TP .B \-i パターンマッチにおいて、英大文字と小文字の区別をしないようにします。 .TP .B \-L 通常の表示を抑止します; このオプションを指定しなかったときに 全く出力されない入力ファイルの名前を表示します。 .TP .B \-l 通常の表示を抑止します; このオプションを指定しなかったときに 出力される入力ファイルの名前を表示します。 .TP .B \-n 各行の出力の前に、入力ファイルにおける行番号を表示します。 .TP .B \-q 静粛; 通常の表示を抑止します。 .TP .B \-s 指定されたファイルが存在しないことや読み込みできないことを示す エラーメッセージを抑止します。 .TP .B \-v マッチの意味を逆転します。すなわち、マッチしない行を対象にします。 .TP .B \-w 完全な語にマッチする行のみを選択します。 部分文字列が行頭から始まっているか、 語でない文字列が前にあることがテストされます。 同様に、行末か語でない文字列が後に付いいる必要があります。 単語とは、レター・数字・アンダスコアからなる文字列です。 .TP .B \-x 行全体がマッチする行のみを選択します。 .PP FTS ライブラリとともにコンパイルした場合、以下のオプションが 利用可能です: .PD 0 .TP .BI \-H .I \-R オプション指定時に、 コマンドラインのシンボリックリンクを辿ります (木を探索している時に遭遇したシンボリックリンクは辿りません) 。 .TP .BI \-L .I \-R オプション指定時に、全てのシンボリックリンクを辿ります。 .TP .BI \-P .I \-R オプション指定時に、シンボリックリンクを辿りません。 .TP .BI \-R -ファイルのみを検索する代わりに、ファイルを根とするファイル階層を検索します。 +files のみを検索する代わりに、files を根とするファイル階層を検索します。 .TP .LP 次のオプションは zlib ライブラリと共にコンパイルした場合のみ使用可能です: .PD 0 .TP .BI \-Z .I \-Z オプションが指定されると、検索前に入力ファイルを伸長します。 .TP .PD .SH "正規表現" .PP 正規表現は、文字列の集合を表現するパターンの事です。正規表現は、より小さな 表現を組み合わせるさまざまな演算子を用いる事により、数式表現と同じような 表現を作成する事ができます。 .PP .B grep は、「基本」正規表現と 「拡張」正規表現の 2 種類の正規表現を扱う事ができます。 .RB "GNU\ " grep では、どちらの表現も機能的に違いありません。 他の実装では、基本正規表現は拡張正規表現より能力が低くなっています。 ここでは、拡張正規表現について説明します。 基本正規表現との違いは、その後に説明します。 .PP 正規表現の基本単位は、1 文字にマッチします。 レターや数字などの多くの文字は、それ自身にマッチします。 また、特殊な意味があるメタ文字も、その文字の前にバックスラッシュ を付ける事で、その本来の文字にマッチするようになります。 .PP .B [ と .B ] で囲まれた文字のリストは、そのリストの中に含まれるどれか 1 文字にマッチします。 ただし、リストの先頭がキャレット .B ^ の場合は、そのリストに含まれ .I ない 文字にマッチします。 例えば、正規表現 .B [0123456789] は数字 1 文字にマッチします。 ASCII 文字の範囲は最初と最後の文字をハイフン (`-') でつなぐことで 指定できます。最後に、特定の名前を持つ文字クラスが既定義されています。 名前が内容を示しており、それらは、 .BR [:alnum:] , .BR [:alpha:] , .BR [:cntrl:] , .BR [:digit:] , .BR [:graph:] , .BR [:lower:] , .BR [:print:] , .BR [:punct:] , .BR [:space:] , .BR [:upper:] , .B [:xdigit:] です。 例えば、 .B [[:alnum:]] は .B [0-9A-Za-z] と同じですが、後者は ASCII コード順に依存しますので、前者の方が可搬的です。 (注: クラス名の鈎括弧はシンボル名の一部であり、 リストを区切る鈎括弧とは別に指定する必要があります。) リストの中では、ほとんどの特殊文字は、通常の文字として扱われます。 リテラル .B ] を含むためにはリストの先頭に置いてください。同様に、リテラル .B ^ を含むためには先頭以外に置いてください。リテラル .B \- を含むためには、最後に置いてください。 .PP ピリオド .B . は、任意の 1 文字にマッチします。 シンボル .B \ew は、 .B [[:alnum:]] と同じで、 シンボル .B \eW は、 .B [^[:alnum:]] と同じです。 .PP キャレット .B ^ と、 ドル記号 .B $ は、それぞれ行頭と行末の空文字列にマッチするメタ文字です。 シンボル .B \e< とシンボル .B \e> は、それぞれ単語の先頭と単語の末尾の空文字列にマッチするメタ文字です。 シンボル .B \eb は単語の端の空文字列にマッチします。 シンボル .B \eB は単語の端 .I 以外 の空文字列にマッチします。 .PP 1 文字にマッチする正規表現の後には、繰り返し演算子が付くことがあります: .PD 0 .TP .B ? 直前の項目はオプションであり、最大 1 回マッチします。 .TP .B * 直前の項目は 0 回以上マッチします。 .TP .B + 直前の項目は 1 回以上マッチします。 .TP .BI { n } 直前の項目は厳密に .I n 回マッチします。 .TP .BI { n ,} 直前の項目は .I n 回以上マッチします。 .TP .BI {, m } 直前の項目はオプションであり、最大 .I m 回マッチします。 .TP .BI { n , m } 直前の項目は、最低 .I n 回、最大 .I m 回マッチします。 .PD .PP 2 つの正規表現は結合可能です; 結果としてできあがる正規表現は、 結合された 2 つの部分表現にそれぞれマッチする 2 つの部分文字列を結合した任意の文字列にマッチします。 2 つの正規表現は .B | インフィクス演算子で繋ぐことができます; 結果としてできあがる正規表現は、 どちらかの部分表現にマッチする任意の文字列にマッチします。 .PP 繰り返しは結合に優先します。また結合は選言に優先します。 部分表現全体は括弧で括って、この順序に優先させることができます。 .PP .I n が 1 つの数字であるような、 後方参照 .BI \e n\c \& は、正規表現中で括弧で囲まれた .I n 番目の部分表現にマッチします。 .PP 基本正規表現では、メタ文字 .BR ? , .BR + , .BR { , .BR | , .BR ( , .B ) は、特殊な意味を失います; 代わりに、バックスラッシュを付けた .BR \e? , .BR \e+ , .BR \e{ , .BR \e| , .BR \e( , .B \e) を使用してください。 .PP .B egrep では、 .B { は、特殊な意味を失います; 代わりに、 .B \e{ を使う必要があります。 .SH 診断 通常、パターンにマッチした行が見つかった場合は 0 を、 見つからなかった場合は 1 を返します。(ただし、 .B \-v オプションを指定した場合は、逆になります。) パターンの指定の仕方が間違っていたり、ファイルがアクセスできないなどの エラーが発生した場合は、2 を返します。 .SH バグ バグレポートは、 .B bug-gnu-utils@prep.ai.mit.edu まで Email してください。この時、``Subject:'' のどこにでもいいですから ``grep'' という単語を 忘れずに入れてください。 .PP .BI { m , n } の表現で非常に大きな繰り返しを指定すると、非常に多くのメモリを消費します。 さらに、ある種のあいまいな正規表現を指定すると、必要となる時間とメモリ領域は 指数的に増大し、メモリ不足を起こす可能性があります。 .PP 後方参照は非常に動作が遅く、必要となる時間は指数的に増大します。 diff --git a/ja/man/man1/lastcomm.1 b/ja/man/man1/lastcomm.1 index 4fb6bb8b97..04f98fd535 100644 --- a/ja/man/man1/lastcomm.1 +++ b/ja/man/man1/lastcomm.1 @@ -1,172 +1,161 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" From: @(#)lastcomm.1 8.1 (Berkeley) 6/6/93 .\" %Id: lastcomm.1,v 1.6 1997/07/21 12:01:45 charnier Exp % .\" jpman %Id: lastcomm.1,v 1.2 1997/03/29 06:18:35 horikawa Stab % .\" .Dd September 18, 1996 .Dt LASTCOMM 1 .Os BSD 3 .Sh 名称 .Nm lastcomm .Nd 過去に実行されたコマンドの情報を逆順に表示する .Sh 書式 .Nm .Op Fl EScesu .Op Fl f Ar file .Op Ar command ... .Op Ar user ... .Op Ar terminal ... .Sh 解説 .Nm は、以前に実行されたコマンドの情報を表示します。引数が ないときは、現在のアカウント情報ファイルが存在している間に実行されたすべて のコマンドの記録を表示します。 .Pp -.\" この部分原文にはありませんが、正しいことを確認しています。 -.\" Kazuo HORIKAWA -このコマンドを使用するには、あらかじめ -.Xr accton 8 -で、アカウント -情報ファイルを設定しておく必要があります。このファイルはデフォルトでは、 -.Pa /var/account/acct -ですが、存在しない場合にはあらかじめrootで -touch /var/account/acctとしておいてから、accton /var/account/acct -を実行しなければなりません(通常 /etc/rc で起動されます)。 -.Pp 以下のオプションを使用可能です: .Bl -tag -width XXfXfileX -compact .Pp .It Fl E プロセスが終了した時刻を表示します。 .It Fl S プロセスが開始した時刻を表示します。 .It Fl c プロセスが使用した CPU 時間を表示します。 .It Fl e プロセスが経過した時間を表示します。 .It Fl s プロセスが使用したシステム時間を表示します。 .It Fl u プロセスが使用したユーザ時間を表示します。 .It Fl f Ar file デフォルトの .Pa /var/account/acct のかわりに .Ar file を読み 込みます。 .El .Pp オプションが指定されない場合には .Fl cS が仮定されます。 .Nm が引数付きで呼ばれたときは、引数で与えられた .Ar command , .Ar user , .Ar terminal にマッチする情報を表示します。 たとえば: .Pp .Dl lastcomm a.out root ttyd0 .Pp では、 .Pa a.out というコマンド名か、 .Ar root というユーザか、 .Ar ttyd0 というターミナルで実行されたコマンド全てのリストが出力されます。 .Pp 表示される情報は、次のようなものです。 .Pp .Bl -bullet -offset indent -compact .It ユーザが実行したプロセスの名前 .It システムのアカウント機能によってつけられるフラグ .It コマンドを実行したユーザ名 .It コマンドを実行した端末名 .It プロセスが使用した CPU .Pq Fl c または実 .Pq Fl e またはシステム .Pq Fl s またはユーザ .Pq Fl u -時間の合計(秒) +時間の合計 (秒) .It プロセスが開始 .Pq Fl S または終了 .Pq Fl E した時刻 .El .Pp フラグには次のようなものがあります: ``S'' -コマンドはスーパーユーザーによって実行されました。 +コマンドはスーパーユーザによって実行されました。 ``F'' コマンドが .Xr fork 2 を行いましたが、その後、 .Xr exec 3 を行っていません。 .\" ``C'' .\" コマンドがPDP-11互換モードで実行されました (これはVAXでのみ有効です)。 ``D'' コマンドが .Pa core ファイルを生成して終了しました。 ``X'' コマンドがシグナルで終了しました。 .Pp .Sh 関連ファイル .Bl -tag -width /var/account/acct -compact .It Pa /var/account/acct デフォルトのアカウント情報ファイル .El .Sh 関連項目 .Xr last 1 , .Xr sigvec 2 , .Xr acct 5 , .Xr core 5 .Sh 歴史 .Nm コマンドは .Bx 3.0 から登場しました。 diff --git a/ja/man/man1/login.1 b/ja/man/man1/login.1 index b1cfb43adf..6bc248f021 100644 --- a/ja/man/man1/login.1 +++ b/ja/man/man1/login.1 @@ -1,192 +1,192 @@ .\" %NetBSD: login.1,v 1.5 1994/12/23 06:53:00 jtc Exp % .\" .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)login.1 8.2 (Berkeley) 5/5/94 .\" %Id: login.1,v 1.13 1999/01/11 09:07:42 asami Exp % .\" jpman %Id: login.1,v 1.3 1997/05/19 16:39:53 horikawa Stab % .\" .Dd May 5, 1994 .Dt LOGIN 1 .Os BSD 4 .Sh 名称 .Nm login .Nd 指定したユーザでログインする .Sh 書式 .Nm .Op Fl fp .Op Fl h Ar hostname .Op Ar user .Sh 解説 .Nm は、指定したユーザでログインするものです。 .Pp user を指定しなかった場合、もしくは指定した user でのログインに失敗した ときには、 .Nm は、再度ユーザ名の入力を求めるプロンプトを表示します。 ユーザの確認は入力されたパスワードにより行われます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl f パスワードによるユーザの確認を省略します。このオプションは、スーパーユーザ か、すでにログインしているユーザが同じユーザ名で login を実行す るときのみ指定可能です。 .It Fl h コネクションを受信可能なホスト名を指定します。この機能は .Xr telnetd 8 などのデーモンによって使われています。このオプションはスーパーユーザ しか指定することができません。 .It Fl p .Nm は、デフォルトでは実行時の環境 (環境変数など) を引き継ぎ ませんが、このオプションを指定すると、実行時の環境を引き継ぎます。 .El .Pp もし .Pa /var/run/nologin ファイルが存在した場合、 .Nm はそのファイル内容 を表示してログイン処理をせずに終了します。この機能は .Xr shutdown 8 で使用されており、システムの終了処理実行中にユーザがログインしないよう にしています。 .Pp もし .Pa /etc/login.access ファイルが存在した場合、 .Nm はそのファイルから、ユーザとホストの組が特別に許可されている、もしくは 拒否されているかどうかをチェックします。 .Pp もし .Pa /etc/fbtab ファイルが存在した場合、 .Nm はそのファイルに記述された幾つかのデバイスのプロテクトと所有者を変えます。 .Pp ファイル .Pa /etc/skeykeys が存在する場合、このファイル中にユーザのエントリが存在する時には、 .Nm は S/key パスワード認証を行います。 .Pa /etc/skey.access により、 接続元のホストやネットワークに応じて S/key パスワード使用の義務を制御します。 .Pp 通常、ユーザがログインすると、 .Nm はシステムのコピーライト表示、 ユーザが最後にログインした日付と時間、その日のメッセージなどの 情報を表示します。ただし、ユーザのホームディレクトリに .Dq Pa .hushlogin というファイルが存在した場合は、これらのメッセージを表示 しないようにします (これは .Xr uucp 1 のようなプログラムがユーザとしてログインするためにあります)。 このあと、 .Nm は .Xr wtmp 5 と .Xr utmp 5 ファイルに記録し、ユーザのコマンドインタプリタ (シェル) を起動します。 .Pp なお、環境変数 ( .Xr environ 7 ) HOME, SHELL, PATH, TERM, LOGNAME, USER は .Nm によりセットされます。 他の環境変数はログインクラスケーパビリティデータベースの エントリにより設定されるかも知れません。 ログインクラスはユーザのシステムパスワードレコードに割り当てられています。 ログインクラスは、当該ログインに許された最大および現在の資源制約、 プロセス優先度や他の多くのユーザログイン環境を制御します。 .Pp 標準シェルである .Xr csh 1 と .Xr sh 1 は、 .Nm が実行されてから起動します。 .Sh 関連ファイル .Bl -tag -width /var/mail/userXXX -compact .It Pa /etc/fbtab デバイスのプロテクトの変更 .It Pa /etc/login.access ログインアクセス制御表 .It Pa /etc/login.conf ログインクラスケーパビリティデータベース .It Pa /etc/motd ログイン時に最初に表示するメッセージ .It Pa /var/run/nologin ログインを拒否する時に表示するメッセージ .It Pa /etc/skey.access skey パスワード制御表 .It Pa /etc/skeykeys skey パスワードデータベース .It Pa /var/run/utmp 現在のログイン状況 .It Pa /var/log/lastlog 最後にログインした記録 last login account records .It Pa /var/log/wtmp ログイン・ログアウト状況 .It Pa /var/mail/user -ユーザーごとのメイルボックス +ユーザごとのメイルボックス .It Pa \&.hushlogin ログインメッセージを抑止するファイル .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr chpass 1 , .Xr passwd 1 , .Xr rlogin 1 , .Xr skey 1 , .Xr getpass 3 , .Xr fbtab 5 , .Xr login.access 5 , .Xr login.conf 5 , .Xr skey.access 5 , .Xr utmp 5 , .Xr environ 7 , .Xr nologin 8 , .Xr pam 8 .Sh 歴史 .Nm login ユーティリティは .At v6 から登場しました。 diff --git a/ja/man/man1/lpr.1 b/ja/man/man1/lpr.1 index 05f9888d6b..0a4518f51e 100644 --- a/ja/man/man1/lpr.1 +++ b/ja/man/man1/lpr.1 @@ -1,242 +1,242 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)lpr.1 8.1 (Berkeley) 6/6/93 .\" %Id: lpr.1,v 1.8 1997/09/24 06:48:07 charnier Exp % .\" jpman %Id: lpr.1,v 1.3 1997/08/11 14:28:54 horikawa Stab % .\" .Dd June 6, 1993 .Dt LPR 1 .Os BSD 4 .Sh 名称 .Nm lpr .Nd 印刷ジョブを生成し、キューに登録する .Sh 書式 .Nm lpr .Op Fl P Ns Ar printer .Op Fl \&# Ns Ar num .Op Fl C Ar class .Op Fl J Ar job .Op Fl T Ar title .Op Fl U Ar user .Op Fl i Ar numcols .Op Fl 1234 Ar font .Op Fl w Ns Ar num .Op Fl cdfghlnmprstv .Op Ar name ... .Sh 解説 .Nm lpr は、プリンタが利用可能になったときにファイルをプリント アウトするためにスプーリングデーモンを利用します。 もしファイル名が指定されないようなら、標準入力から読みます。 .Pp 以下の単一文字のオプションは、ファイルが通常のテキストファイルでないこ -とをラインプリンタのスプールデーモンに教えるためのものです。スプールデー -モンはそのデータを適切に出力するために、データにふさわしいフィルタを使 -うようになります。 +とをラインプリンタのスプールデーモンに教えるためのものです。 +スプールデーモンはそのデータを適切に出力するために、 +データにふさわしいフィルタを使うようになります。 .Bl -tag -width indent .It Fl c ファイルが .Xr cifplot 1 で作成されたデータを含んでいるものとみなします。 .It Fl d ファイルが .Tn TeX の .Tn DVI フォーマットであるとみなします。 .It Fl f 各行の最初の文字を、標準的な FORTRAN のキャリッジコントロール キャラクタとして処理するフィルタを使うようになります。 .It Fl g ファイルが .Xr plot ルーチンで作成された 標準的な plot データであるとみなします。 .It Fl l コントロールキャラクタを通し、ページの区切りを抑制するフィルタを利用します。 .It Fl n ファイルが .Em ditroff -(デバイスに依存しないtroff) からのデータであるとみなします。 +(デバイスに依存しない troff) からのデータであるとみなします。 .It Fl p ファイルの整形に .Xr pr 1 を利用します。 .It Fl t -ファイルが(写植印字コマンドである) +ファイルが (写植印字コマンドである) .Xr troff 1 からのデータであるとみなします。 .It Fl v -ファイルが Benson Varian のようなデバイスのためのラスターイメージを +ファイルが Benson Varian のようなデバイスのためのラスタイメージを 含むものとみなします。 .El .Pp 以下のオプションは、プリントジョブを操作するときに適用します: .Bl -tag -width indent .It Fl P 指定したプリンタに出力します。これを指定しない通常の場合は、 -デフォルトプリンタが使われる (これはサイトごとに依存します)か、 +デフォルトプリンタが使われる (これはサイトごとに依存します) か、 環境変数 .Ev PRINTER の値が使われます。 .It Fl h バーストページを出力しないようにします。 .It Fl m 終了時にメールを送ってきます。 .It Fl r スプーリングの終了時にファイルを削除します。 .Fl s オプション使用時には出力の終了時に削除します。 .It Fl s -シンボリックリンクを利用します。通常、ファイルはスプールディ -レクトリにコピーされますが、大きなファイルをコピーするよりは +シンボリックリンクを利用します。通常、ファイルはスプールディレクトリに +コピーされますが、大きなファイルをコピーするよりは .Fl s オプションで .Xr symlink 2 -を使ってデータファイルにリンクを張ったほうがよ -いでしょう。つまり、これはファイルのプリントアウトが完了するまではファ -イルに変更を加えたり、削除したりするべきではないということを意味します。 +を使ってデータファイルにリンクを張ったほうがよいでしょう。 +つまり、これはファイルのプリントアウトが完了するまでは +ファイルに変更を加えたり、削除したりするべきではないということを意味します。 .El .Pp 残りのオプションはコピーを行ったり、ページの表示やヘッダの表示を行います: .Bl -tag -width indent .It Fl \&# Ns Ar num .Ar num は、各ファイルのコピーの枚数です。例えば、 .Bd -literal -offset indent lpr \-#3 foo.c bar.c more.c .Ed -は、foo.cのコピーを3回行った後、bar.cのコピーを3回行います。一方、 +は、foo.c のコピーを 3 回行った後、bar.c のコピーを 3 回行います。一方、 .Bd -literal -offset indent cat foo.c bar.c more.c \&| lpr \-#3 .Ed .Pp -は、連結されたファイルのコピーを3回行います。 +は、連結されたファイルのコピーを 3 回行います。 この機能を禁止してコピー機の使用を推奨しているサイトがあるかもしれません。 .It Xo .Fl Ns Oo Cm 1234 Oc Ar font .Xc フォントポジション .Ar i のフォントを指定します。デーモンはフォントのパス名を参照する .Li .railmag ファイルを作成します。 .It Fl C Ar class バーストページで使うジョブ見出しです。例えば、 .Bd -literal -offset indent lpr \-C EECS foo.c .Ed .Pp -は、バーストページのシステム名( +は、バーストページのシステム名 ( .Xr hostname 1 -で返される)を EECS に置き換えて、foo.c をプリントします。 +で返される) を EECS に置き換えて、foo.c をプリントします。 .It Fl J Ar job バーストページに書くジョブ名です。通常は、 一番最初のファイルの名前が使われます。 .It Fl T Ar title .Xr pr 1 のタイトル名に、ファイル名のかわりにこのタイトルを使います。 .It Fl U Ar user -バーストページで使うユーザー名であり、課金目的でも利用されます。 -このオプションは実ユーザidがデーモン(あるいはデーモンの代わりに -printcap中で指定されているユーザ)のみ使用できます。 +バーストページで使うユーザ名であり、課金目的でも利用されます。 +このオプションは実ユーザ id が daemon (あるいは daemon の代わりに +printcap 中で指定されているユーザ) のみ使用できます。 .It Fl i numcols 出力が .Pq Ar numcols でインデントされます。 .It Fl w Ns Ar num .Xr pr 1 のページ幅を .Ar num にします。 .El .Sh 環境変数 以下の環境変数が存在すると、 .Nm lpr が使用します: .Bl -tag -width PRINTER .It Ev PRINTER かわりのデフォルトプリンタを指定する .El .Sh 関連ファイル .Bl -tag -width /var/spool/output/*/tf* -compact .It Pa /etc/passwd 個人の識別を行うためのファイル .It Pa /etc/printcap プリンタの特徴を記述したデータベース .It Pa /usr/sbin/lpd ラインプリンタデーモン .It Pa /var/spool/output/* スプーリングのために利用するディレクトリ .It Pa /var/spool/output/*/cf* デーモンの制御のためのファイル .It Pa /var/spool/output/*/df* ``cf'' ファイルが指定するデータファイル .It Pa /var/spool/output/*/tf* ``cf'' ファイルの一時的なコピー .El .Sh 関連項目 .Xr lpq 1 , .Xr lprm 1 , .Xr pr 1 , .Xr symlink 2 , .Xr printcap 5 , .Xr lpc 8 , .Xr lpd 8 .Sh 歴史 .Nm コマンドは .Bx 3 から登場しました。 .Sh 診断 もしとても大きいファイルをスプールしようとするなら、途中で切れてしまう でしょう。 .Nm はバイナリファイルを印刷することを目的としています. -もしルート以外のあるユーザーがファイルを印刷しようとしてスプールに +もし root 以外のあるユーザがファイルを印刷しようとしてスプールに 失敗したら、 .Nm はその旨のメッセージを印刷してそのファイルは印刷されません。 もしローカルマシンの .Xr lpd 8 との接続ができなければ、 .Nm はデーモンを起動できなかったと言うでしょう。その結果は .Xr lpd 8 によってファイルのスプールに失敗したとデーモンのログファイルに 残されるでしょう。 .Sh バグ .Xr troff 1 と .Xr tex のフォントは,プリンタがつながっているホストにないといけません。 これは,現在はローカルのフォントライブラリを使うことができないことを 意味します。 diff --git a/ja/man/man1/passwd.1 b/ja/man/man1/passwd.1 index 4015bb4a31..c34d592073 100644 --- a/ja/man/man1/passwd.1 +++ b/ja/man/man1/passwd.1 @@ -1,208 +1,208 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)passwd.1 8.1 (Berkeley) 6/6/93 .\" %Id: passwd.1,v 1.11 1998/11/30 22:41:58 billf Exp % .\" jpman %Id: passwd.1,v 1.4 1997/07/21 09:41:51 konuma Stab % .\" .Dd June 6, 1993 .Dt PASSWD 1 .Os BSD 4 .Sh 名称 .Nm passwd, yppasswd .Nd ユーザのパスワードを変更する .Sh 書式 .Nm passwd .Op Fl l .Op Ar user .Nm yppasswd .Op Fl l .Op Fl y .Op Fl d Ar domain .Op Fl h Ar host .Op Fl o .Sh 解説 .Nm passwd は、ユーザの local, Kerberos, NIS パスワードを変更します。 パスワードの変更にあたっては、最初に、現在のパスワードの入力を求 められます。現在のパスワードが正しく入力されたら、新しいパスワードの入 力を求められます。新しいパスワードは、タイプミスを避けるため、2 回入力しな ければなりません。 .Pp 新しいパスワードは、少なくとも 6 文字以上 (ユーザのログインクラスに対する .Xr login.conf 5 の "minpasswordlen" 設定が優先します) で、アルファベットだけにならな いようにすべきです。パスワードの最大文字数は、 .Dv _PASSWORD_LEN (現在は128文字) より短くなければなりません。 数字、アルファベットの大文字、メタキャラクタの使用を推奨します。 .Pp 新しいパスワードが確認されたら .Nm passwd は新しいパスワードを Kerberos 認証ホストに伝えます。 .Bl -tag -width flag .It Fl l Kerberosデータベースではなく、 ローカルマシンのパスワードだけを変更します。 ローカルマシンのパスワードだけを変更する場合は、 .Xr pwd_mkdb 8 がパスワードデータベースの更新に使われます。 .Pp .El ローカルまたは NIS パスワードを変更する場合、 ユーザのログインクラスの "passwordperiod" ケーパビリティに基づき、 次にパスワードを変更すべき日付が設定されます。 .Pp 別のユーザの Kerberos パスワードを変更するには、 .Xr kinit 1 を実行してから、 .Xr passwd 1 を実行する必要があります。 スーパユーザがローカルマシンのパスワードを修正するときにかぎり、現在の パスワードの入力は不要です。 .Sh NIS との相互作用 .Nm passwd は NIS のサポートが組み込まれています。 もしユーザ名が NIS のパスワードデータベースの中にあり、 ローカルにはない場合、 .Nm passwd は自動的に ``yppasswd'' に切り替わります。 指定されたユーザ名がローカルのパスワードデータベースにも、 NIS のパスワードマップにも存在しない場合、 .Nm passwd はエラーを返します。 .Pp -NIS のパスワードを変更するとき、非特権ユーザーは +NIS のパスワードを変更するとき、非特権ユーザは 確認のために現在のパスワードの入力を求められます ( .Xr rpc.yppasswdd 8 デーモンはいかなる変更でも NIS パスワードマップに加える前に 現在のパスワードの入力を求めます)。 この制限はスーパユーザにも適用されますが、大きな例外があります。 NIS マスタサーバのスーパユーザはパスワードの確認が省略されるの です。 したがって、NIS マスタサーバのスーパユーザは、すべてのユーザの NIS パスワードを無制限に変更できます。 しかし、NIS クライアントや NIS スレーブサーバのスーパユーザは 変更にパスワードが必要です。 .Pp 以下のオプションは NIS のためのものです: .Bl -tag -width flag .It Fl y .Nm passwd は強制的に NIS 用になります。 .It Fl l NIS が有効な場合に .Nm passwd を強制的にローカル用にします。 このフラグは同じログイン名で NIS のユーザと ローカルなユーザが存在するときに、ローカルユーザの パスワードエントリを変更するために使われます。 例えば、システム用の .Pa bin や .Pa daemon といったエントリは NIS パスワードマップとローカルユーザデータベース の両方に存在することが、よくあります。 この場合デフォルトでは .Nm passwd は NIS のパスワードを変更しようとします。 NIS ではなくローカルの パスワードを変更するとき .Fl l を使います。 .It Fl d Ar domain NIS パスワードを変更するとき、ドメイン名を指定します。デフォルトで .Nm passwd は、システムのデフォルトドメイン名を使います。このフラグは主に NIS マスタサーバのスーパユーザが使用するものです。一つの NIS マスタサーバが複数のドメインを扱っている場合や、NIS マスタサーバでは ドメイン名が設定されていない (NIS サーバーは必ずしもクライアントになる 必要はありません) 場合に、 .Nm passwd コマンドがどのドメインを扱うのかを指定する必要があります。 .It Fl s Ar host NIS サーバの名前を指定します。このオプションを .Fl d オプションと共に用いることで、非ローカルな NIS サーバ上の NIS パスワードを変えることが出来ます。 .Fl d オプションでドメイン名を指定し、 NIS マスタサーバの名前が決定できな い (おそらく、ローカルのドメイン名が設定されていないため) ときには、 NIS マスタサーバは、 ``localhost'' であると仮定されます。 このサーバ名を .Fl s で指定することが出来ます。指定するホスト名は NIS マスタサーバ でなくても構いません。 NIS マスターサーバー名はドメイン内の NIS (マスタもしくはスレーブ) サーバに問い合わせることで決定される ので、スレーブサーバを指定しても構いません。 .Pp .It Fl o NIS マスタサーバにおいて、スーパユーザの確認を省略しません。 \'old' モードにします。このフラグはあまり実用的ではありませんが、 パスワードのテストに使うことが出来ます。 .El .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/master.passwd パスワードのマスタファイル .It Pa /etc/passwd Version 7 形式のパスワードファイル .It Pa /etc/passwd.XXXXXX パスワード変更時に作られるテンポラリファイル .It Pa /etc/login.conf ログインクラスケーパビリティデータベース .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr chpass 1 , .Xr kerberos 1 , .Xr kinit 1 , .Xr login 1 , .Xr login.conf 5 , .Xr passwd 5 , .Xr kpasswdd 8 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Rs .%A Robert Morris .%A Ken Thompson .%T "UNIX password security" .Re .Sh 注釈 .Xr yppasswd 1 は実際には .Nm passwd へのリンクです。 .Sh 歴史 .Nm passwd コマンドは .At v6 から登場しました。 diff --git a/ja/man/man1/rcp.1 b/ja/man/man1/rcp.1 index caf1df1715..cf91b91b88 100644 --- a/ja/man/man1/rcp.1 +++ b/ja/man/man1/rcp.1 @@ -1,150 +1,151 @@ .\" Copyright (c) 1983, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rcp.1 8.1 (Berkeley) 5/31/93 .\" %Id: rcp.1,v 1.7 1998/10/09 06:31:45 markm Exp % .\" jpman %Id: rcp.1,v 1.2 1997/05/20 01:30:55 mutoh Stab % .\" .Dd May 31, 1993 .Dt RCP 1 .Os BSD 4.3r .Sh 名称 .Nm rcp .Nd リモートファイルのコピー .Sh 書式 .Nm rcp .Op Fl Kpx .Op Fl k Ar realm .Ar file1 file2 .Nm rcp .Op Fl Kprx .Op Fl k Ar realm .Ar file ... .Ar directory .Sh 解説 .Nm は、ネットワークでつながれた複数のマシンの間でコピーをするプログラムです。 .Ar file および .Ar directory として ``rname@rhost:path'' の形式で指定する ことにより、それがリモートマシン上のファイルであるとみなされます。 ファイル指定に ``:'' が含まれていないか、含まれていても``/''のあとにある 場合は、ローカルマシンのファイルとみなされます。 .Pp 次のオプションを利用可能です: .Bl -tag -width flag .It Fl K 全ての Kerberos による認証を無効にします。 .It Fl k .Xr krb_realmofhost 3 で決定されるリモートホストの realm のかわりに、 .Ar realm で指定したリモートホストの チケットを得るようにします。 .It Fl p .Ar umask を無視し、転送元のファイルの修正日付とアクセスモードを維持したままコピー します。デフォルトでは、転送先に同じファイル名のファイルがすでに 存在していれば、そのファイルのモードと所有者が引き継がれ、もしファイルが 存在していなければ、転送元のファイルのモードに転送先のマシンで使われている .Xr umask 2 のマスクを施したアクセスモードになります。 .It Fl r 転送元としてディレクトリが指定された場合、ディレクトリ下の各ファイルも 再帰的にコピーします。この場合、転送先にはディレクトリを指定しなければ なりません。 .It Fl x .Nm で送るすべてのデータを .Tn DES 暗号化します。これによりレスポンスタイムと .Tn CPU の利用率に影響が生じますが、セキュリティは向上します。 .El .Pp .Ar file がフルパスでなかった場合は、リモートマシン .Ar rhost 上のユーザ .Ar ruser のログインディレクトリ -(リモートユーザー名が指定されていなければ、現在のユーザー名の -ログインディレクトリ)からの相対パスと解釈します。 +(リモートユーザ名が指定されていなければ、現在のユーザ名の +ログインディレクトリ) からの相対パスと解釈します。 リモートマシン上のファイル指定にワイルドカードなどのメタキャラクタを 含める場合は、ローカルマシンのシェルによりワイルドカードが 展開されないよう \e、" または \(aa でクォートする必要があります。 .Pp .Nm では .Xr rsh 1 -を使用するため同様のユーザーの認証が必要とされ、パスワードを要求する +を使用するため同様のユーザの認証が必要とされ、パスワードを要求する プロンプトを出しません。 .Pp .Nm -では転送元、転送先ともにリモートマシンを指定し、第3者によるリモートマシン間での +では転送元、転送先ともにリモートマシンを指定し、 +第三者によるリモートマシン間での ファイルのコピーを行うこともできます。 .Sh 関連ファイル .Bl -tag -width /etc/auth.conf -compact .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr cp 1 , .Xr ftp 1 , .Xr rlogin 1 , .Xr rsh 1 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 このバージョンの .Nm は、 .Bx 4.3 Reno -において Kerberos を組み込んで再インプリメントされました。 +において Kerberos を組み込んで再実装されました。 .Sh バグ ディレクトリが指定されるべき場所にファイルが指定されている場合を検出で きるとは限りません。 .Pp リモートホストの .Pa \&.login , .Pa \&.profile または .Pa \&.cshrc 内のコマンドの出力によって混乱することがあります。 .Pp 転送先のマシンにバージョン .Bx 4.2 の .Nm -が動作している場合、``rhost.rname''のように転送先のユーザー名とホスト +が動作している場合、``rhost.rname''のように転送先のユーザ名とホスト 名を指定しなければなりません。 diff --git a/ja/man/man1/stty.1 b/ja/man/man1/stty.1 index e28e3f8c61..afd7c37546 100644 --- a/ja/man/man1/stty.1 +++ b/ja/man/man1/stty.1 @@ -1,530 +1,531 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)stty.1 8.4 (Berkeley) 4/18/94 .\" %Id: stty.1,v 1.10 1998/06/03 04:07:59 jkoshy Exp % .\" jpman %Id: stty.1,v 1.2 1997/06/05 04:05:59 yugawa Stab % .\" .Dd April 18, 1994 .Dt STTY 1 .Os .Sh 名称 .Nm stty .Nd 端末の設定を行なう .Sh 書式 .Nm stty .Op Fl a | Fl e | Fl g .Op Fl f Ar file .Op operands .Sh 解説 .Nm は、標準入力になっているデバイスの端末属性を設定もしくは表示する プログラムです。オプションや引数を指定しなかった場合、 設定されている属性の一部や、デフォルト値と違う値が設定されている属性 を表示します。 指定した場合は、指定された引数に従って端末の状態を変更します。 ターミナルの種類によっては相互に排他的な引数の組み合わせもあります。 .Pp オプションとしては以下のものがあります。 .Bl -tag -width indent .It Fl a .St -p1003.2 に規定された形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl e .Tn BSD の伝統的な ``all'' や ``everything'' の形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl f 標準入力ではなく、 .Ar file で指定された端末を使います。 このファイルは .Fn open 関数に .Dv O_NONBLOCK フラグを付けてオープンされるので、端末の設定や表示をブロックされず に行なうことができます。 .It Fl g 端末変更後に端末の状態を復帰させられるように、 .Nm の引数として指定できる形式で、現在の端末属性を標準出力に 出力します。 この形式は .St -p1003.2 に規定されています。 .El .Pp 端末属性の設定には、以下の引数が使えます。 .Ss 制御モード: .Pp 制御モードのフラグは端末と関連するハードウェアの属性 に影響します。これは termios 構造体の c_cflag に相当します。 .Bl -tag -width Fl .It Cm parenb Pq Fl parenb パリティ生成および検出を有効 (無効) にします。 .It Cm parodd Pq Fl parodd 奇数パリティ (偶数パリティ) にします。 .It Cm cs5 cs6 cs7 cs8 可能なら 1 文字のビット幅を設定します。 .It Ar number 可能なら、端末のボーレートを .Ar number に設定します。0 を指定した場合は、モデムの制御を切ります。 .It Cm ispeed Ar number 可能なら、入力のボーレートを .Ar number に設定します。0 を設定した場合は、出力のボーレートと同じ値に設定されます。 .It Cm ospeed Ar number 可能なら、出力のボーレートを .Ar number に設定します。0 を設定した場合は、モデムの制御を切ります。 .It Cm speed Ar number .Cm ispeed と .Cm ospeed の両方を .Ar number に設定します。 .It Cm hupcl Pq Fl hupcl そのデバイスをオープンしているプロセスがクローズ処理を行ったとき、ほか にこのデバイスをオープンしているプロセスがなければ、モデムの制御機能に より切断処理を行います (行いません)。 .It Cm hup Pq Fl hup hupcl .Pq Fl hupcl と同じです。 .It Cm cstopb Pq Fl cstopb -ストップビットを 2ビット (1ビット) にします。 +ストップビットを 2 ビット (1 ビット) にします。 .It Cm cread Pq Fl cread 受話器を有効 (無効) にします。 .It Cm clocal Pq Fl clocal 回線に対してモデム制御が不要である (必要である) とみなします。 .It Cm crtscts Pq Fl crtscts RTS/CTS フロー制御を有効 (無効) にします。 .El .Ss 入力モード: これは termios 構造体の c_iflag に相当します。 .Bl -tag -width Fl .It Cm ignbrk Pq Fl ignbrk 入力のブレーク信号を無視します (無視しません)。 .It Cm brkint Pq Fl brkint ブレークを受信したとき、シグナル .Dv INTR を出します (出しません)。 .It Cm ignpar Pq Fl ignpar パリティエラーを無視します (無視しません)。 .It Cm parmrk Pq Fl parmrk パリティエラーをマークします (マークしません)。 .It Cm inpck Pq Fl inpck 入力のパリティチェックを有効 (無効) にします。 .It Cm istrip Pq Fl istrip 入力した文字の 8 ビット目を捨てて 7 ビットにします (8 ビット目 を捨てません)。 .It Cm inlcr Pq Fl inlcr 入力の .Dv NL を .Dv CR に変換します (変換しません)。 .It Cm igncr Pq Fl igncr 入力の .Dv CR を無視します (無視しません)。 .It Cm icrnl Pq Fl icrnl 入力の .Dv CR を .Dv NL に変換します (変換しません)。 .It Cm ixon Pq Fl ixon 制御コードの .Dv START/STOP を使った出力フロー制御を有効 (無効) にします。 システムから端末への出力において、システムが .Dv STOP を受信したら出力を中断し、 .Dv START を受信するか、 .Cm ixany が設定されている場合は何らかの文字を受信すると、 出力を再開するようになります。 .It Cm ixoff Pq Fl ixoff システムの入力キューが 空/満杯に近づいたら、それぞれ .Dv START/STOP を出力するようにします (近づいても、出力しません)。 .It Cm ixany Pq Fl ixany どんな文字が来ても ( .Dv START が来た場合のみ) 出力を再開します。 .It Cm imaxbel Pq Fl imaxbel システムによって入力キューの .Dv MAX_INPUT (一般的には 255) の最大文字数が規定されており、 .Cm imaxbel がセットされていると、入力キューの制限を越えた入力に対して ASCII BEL キャラクタを出力キューに送ります (端末が鳴ります)。 .Cm imaxbel がセットされていなくて入力キューが一杯になった場合、次の文字入力で すべての入力、出力キューは捨てられます。 .El .Ss 出力モード: これは termios 構造体の c_oflag に相当します。 .Bl -tag -width Fl .It Cm opost Pq Fl opost -プロセス後の処理を行った上で出力をします (プロセス後の処理を行わずに出力します。 +プロセス後の処理を行った上で出力をします +(プロセス後の処理を行わずに出力します。 この指定をすると、他のすべての出力モードが無視されます)。 .It Cm onlcr Pq Fl onlcr 出力の .Dv NL を .Dv CR-NL に変換します (変換しません)。 .It Cm oxtabs Pq Fl oxtabs 出力のタブをスペースに展開します (展開しません)。 .El .Ss ローカルモード: .Pp ローカルモードのフラグ (lflags) は端末処理のさまざまな属性に影響します。 -歴史的には、"local"という名前のつけられた新しいジョブコントロール機能 +歴史的には、"local" という名前のつけられた新しいジョブコントロール機能 は Jim Kulp によって .Tn IIASA の .Tn Pdp 11/70 に実装されました。 その後このドライバは、 Evans Hall, UC Berkeley の最初の .Tn VAX 上で走りました。その際ジョブコントロールの細部は大幅に変更されましたが、 構造体の定義と名前は根本的には変わりませんでした。 -lflag の 'l' の二つ目の解釈は、 +lflag の 'l' の 2 つ目の解釈は、 .Ar termios 構造体の .Ar c_lflag に相当する ``line discipline flag''(行制御規則フラグ) です。 .Bl -tag -width Fl .It Cm isig Pq Fl isig 特殊な制御文字 .Dv INTR , QUIT , .Dv SUSP に対する処理を有効 (無効) にします。 .It Cm icanon Pq Fl icanon .Dv ERASE と .Dv KILL 処理による入力制御を有効 (無効) にします。 .It Cm iexten Pq Fl iexten icanon, isig, ixon で制御に使われているもの以外の特殊な 制御文字の処理を有効 (無効) にします。 .It Cm echo Pq Fl echo タイプされた文字をエコーバックします (エコーバックしません)。 .It Cm echoe Pq Fl echoe .Dv ERASE 文字の入力があった場合、可能ならディスプレイ上に見える現在の出力行の 最後の文字を消します (消しません)。 .It Cm echok Pq Fl echok .Dv KILL 文字の入力があった場合、そのあとに .Dv NL を出力します (出力しません)。 .It Cm echoke Pq Fl echoke 可能なら、 .Dv KILL 文字でディスプレイ上の現在の行を消します (消しません)。 .It Cm echonl Pq Fl echonl echo が無効になっているときでも .Dv NL 文字だけはエコーバックさせます (エコーバックしません)。 .It Cm echoctl Pq Fl echoctl .Cm echoctl をセットすると、制御文字は ^X のように表示されます。 セットしなければ、その文字自身が表示されます。 .It Cm echoprt Pq Fl echoprt プリンタ端末に対するもので、設定された場合、削除された文字を ``\\'' と ``/'' で囲んで逆方向にエコーします。 設定されていなければ、この機能を無効にします。 .It Cm noflsh Pq Fl noflsh .Dv INTR , QUIT , SUSP のあとのフラッシュ処理を無効 (有効) にします。 .It Cm tostop Pq Fl tostop バックグラウンドジョブが出力を行おうとした時に .Dv SIGTTOU を送ります (送りません)。これによってバックグラウンドジョブは画面出力を 行おうとすると停止するようになります。 .It Cm altwerase Pq Fl altwerase .Dv WERASE 文字を処理するときに、別の単語消去アルゴリズムを用います (用いません)。 このアルゴリズムは英数字とアンダースコアの並びを単語とみなします。 また、分類上直前の文字をスキップします (便宜的に、直前の文字を .Dv ERASE 一文字で消すことができるようにするため)。 .It Cm mdmbuf Pq Fl mdmbuf セットされると、CD 信号の検出によるフロー制御の出力を行います。 セットされなければ、CD 信号の低下に対してエラーを出力します (キャリア信号は .Dv CLOCAL フラグによっても無視されません)。 .It Cm flusho Pq Fl flusho 出力を捨てます (捨てません)。 .It Cm pendin Pq Fl pendin 入力を非標準 (non-canonical) モードから標準 (canonical) モードへ切り換えた あと、入力を保留します (保留しません)。読み込みが保留されたとき、または更に入力があったときに 再入力されます。 .El .Ss 制御文字: .Bl -tag -width Fl .It Ar control-character Ar string .Ar string に .Ar control-character を割り当てます。もし string が 1 文字だけなら、その文字に .Ar control-character が割り当てられます。 -string が二文字の "^-" もしくは "undef" の場合は +string が 2 文字の "^-" もしくは "undef" の場合は .Ar control-character は無効にされます (つまり、 .Pf { Dv _POSIX_VDISABLE Ns } になります)。 .Pp 認識される制御文字: .Bd -ragged -offset indent .Bl -column character Subscript .It 制御文字 記号   説明 .It _________ _________ _______________ .It eof Ta Tn VEOF EOF No character .It eol Ta Tn VEOL EOL No character .It eol2 Ta Tn VEOL2 EOL2 No character .It erase Ta Tn VERASE ERASE No character .It werase Ta Tn VWERASE WERASE No character .It intr Ta Tn VINTR INTR No character .It kill Ta Tn VKILL KILL No character .It quit Ta Tn VQUIT QUIT No character .It susp Ta Tn VSUSP SUSP No character .It start Ta Tn VSTART START No character .It stop Ta Tn VSTOP STOP No character .It dsusp Ta Tn VDSUSP DSUSP No character .It lnext Ta Tn VLNEXT LNEXT No character .It reprint Ta Tn VREPRINT REPRINT No character .It status Ta Tn VSTATUS STATUS No character .El .Ed .It Cm min Ar number .It Cm time Ar number min あるいは time の値を .Ar number にします。 .Dv MIN と .Dv TIME は非標準的なモード (-icanon) での入力処理に使われます。 .El .Ss 複合モード: .Pp .Bl -tag -width Fl .It Ar saved settings 現在の端末属性を .Fl g オプションによって保存された属性にする。 .It Cm evenp No or Cm parity parenb と cs7 を有効にし、parodd を無効にします。 .It Cm oddp parenb, cs7, parodd を有効にします。 .It Fl parity , evenp , oddp parenb を無効にして、cs8 をセットします。 .It Cm \&nl Pq Fl \&nl icrnl を有効 (無効) にします。 それに加えて、-nl は inlcr と igncr を解除します。 .It Cm ek .Dv ERASE と .Dv KILL に割り当てられている文字をシステムのデフォルトのものに戻します。 .It Cm sane すべてのモードを対話的な端末利用に妥当な値にリセットします。 .It Cm tty 行制御規則を標準端末の規則 .Dv TTYDISC に設定します。 .It Cm crt Pq Fl crt CRT ディスプレイ用に適合するモードをすべて有効 (無効) にします。 .It Cm kerninfo Pq Fl kerninfo .Dv STATUS 文字 (通常 ^T に設定されています) に結びつけられた システムステータス行の生成を有効 (無効) にします。 このステータス行はシステムの負荷、現在のコマンドの名前、プロセス ID、 プロセスが待っているイベント (あるいはプロセスの状態)、 -ユーザー時間とシステム時間、CPU利用率、現在のメモリ使用状況 +ユーザ時間とシステム時間、CPU 利用率、現在のメモリ使用状況 からなっています。 .It Cm columns Ar number 端末の大きさを .Ar number 列とします。 .It Cm cols Ar number .Cm columns の別名定義です。 .It Cm rows Ar number 端末の大きさを .Ar number 行とします。 .It Cm dec Digital Equipment Corporation systems の端末設定にします。 ( .Dv ERASE , .Dv KILL , .Dv INTR をそれぞれ ^?, ^U, ^Cとし、 .Dv ixany を無効、 .Dv crt を有効にします) .It Cm extproc Pq Fl extproc 設定されると、一部の端末処理が端末機器ないし pty に接続されたリモート側 で行なわれるようになります。 .It Cm raw Pq Fl raw 端末モードを全く入出力処理を行なわないモードにします。 これを無効にすると、端末を入出力処理を行なう普通のモードに戻します。 注意すべきなのは、端末用のドライバは単一の .Dv RAW ビットを持つわけではないので、 .Cm raw モードに設定する前にどのようなフラグが設定してあったのかを知ることがで きないということです。つまり、 .Cm raw モードを解除するだけでは、 .Cm raw モード設定前の状態には戻りません。 端末を raw 状態にして、それを正確に元に戻すためには、以下のような シェルコマンドを使うことを薦めます。 .nf save_state=$(stty -g) stty raw \&... stty "$save_state" .fi .It Cm size -端末の大きさを行、列の順に並べた一行で表示します。 +端末の大きさを行、列の順に並べた 1 行で表示します。 .El .Ss 互換モード: .Pp 以下のモードは旧バージョンの stty コマンドとの互換性保持のために残され ています。 .Bl -tag -width Fl .It Cm all 縦覧式でコントール文字を表示する以外は、 .Cm stty Fl a と同様に端末設定を表示します。 .It Cm everything .Cm all と同じです。 .It Cm cooked .Cm sane と同じです。 .It Cm cbreak .Cm brkint , ixon , imaxbel , opost , .Cm isig , iexten , .Cm Fl icanon を有効にします。 解除した場合は .Cm sane と同じです。 .It Cm new .Cm tty と同じです。 .It Cm old .Cm tty と同じです。 .It Cm newcrt Pq Fl newcrt .Cm crt と同じです。 .It Cm pass8 .Cm parity の反対です。 .It Cm tandem Pq Fl tandem .Cm ixoff と同じです。 .It Cm decctlq Pq Fl decctlq .Cm ixany の反対です。 .It Cm crterase Pq Fl crterase .Cm echoe と同じです。 .It Cm crtbs Pq Fl crtbs .Cm echoe と同じです。 .It Cm crtkill Pq Fl crtkill .Cm echoke と同じです。 .It Cm ctlecho Pq Fl ctlecho .Cm echoctl と同じです。 .It Cm prterase Pq Fl prterase .Cm echoprt と同じです。 .It Cm litout Pq Fl litout .Cm opost の反対です。 .It Cm tabs Pq Fl tabs .Cm oxtabs の反対です。 .It Cm brk Ar value 制御文字 .Cm eol と同じです。 .It Cm flush Ar value 制御文字 .Cm discard と同じです。 .It Cm rprnt Ar value 制御文字 .Cm reprint と同じです。 .El .Pp .Nm は成功した場合は 0 を、エラーが起きた場合は 0 より大きい値を返します。 .Sh 関連項目 .Xr termios 4 .Sh 規格 .Nm は .St -p1003.2 互換です。 .Fl e と .Fl f のフラグは規格を拡張しています。 diff --git a/ja/man/man1/tar.1 b/ja/man/man1/tar.1 index 8d9b0c17eb..8a1e3bed8b 100644 --- a/ja/man/man1/tar.1 +++ b/ja/man/man1/tar.1 @@ -1,502 +1,501 @@ .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*- .\" See /usr/src/gnu/COPYING for conditions of redistribution .\" .\" Written by John F. Woods .\" Updated by Robert Eckardt .\" .\" %Id: tar.1,v 1.18.2.1 1999/03/29 11:26:35 obrien Exp % .\" .\" jpman %Id: tar.1,v 1.2 1997/06/24 07:09:44 bobson Stab % .Dd 25 August 1997 .Os FreeBSD .Dt TAR 1 .Sh 名称 .Nm tar .Nd テープアーカイバ; "tar" アーカイブファイルの操作 .Sh 書式 .Nm tar .Op [-] Ns Ar bundled-options .Op Ar gnu-style-flags .Op Ar tarfile .Op Ar blocksize .Op Ar exclude-file .Op Ar filenames .Op Fl C Ar directory-name .Sh 解説 .Nm は、歴史的な理由により .Dq tape archiver を省略して名付けられました。 .Nm プログラムは、 .Ar tarfile と呼ばれる .Dq tar フォーマットのアーカイブファイルを作成し、アーカイブにファイルを追加したり、 またアーカイブからファイルを抽出したりします。 tarfile は通常磁気テープを指しますが、フロッピディスケットや 通常のファイルでも構いません。 .Pp 通常、 .Nm コマンドラインの最初の引数は、機能文字および機能変更文字からなる単語であり、 その前に ダッシュ (-) を付けても付けなくてもいいようになっています。 単語には、次の機能文字のうち丁度 1 つを含んでいる必要があります: .Cm A , .Cm c , .Cm d , .Cm r , .Cm t , .Cm u , .Cm x , これらはそれぞれ、 追加 (append)、作成 (create)、差分 (difference)、置換 (replace)、 リスト表示 (table of contents)、更新 (update)、抽出 (extract) を意味しています (下記に詳細があります)。 これらの他に、以下に詳細を述べる機能変更文字を、コマンド単語に 含めることができます。それらのいくつかは、コマンド単語内と同じ順で -コマンドライン引数を要求します (使用例の節を参照) 。 +コマンドライン引数を要求します (使用例の節を参照)。 機能文字と機能変更文字は、GNU 形式の引数で指定することもできます (2 つのダッシュを最初に付け、1 つのコマンド単語ごとに機能文字か 機能変更文字を 1 つだけ指定する)。 アーカイブへの追加、アーカイブからの抽出、そしてリスト表示のために コマンドライン指定するファイル名には、 シェルのパターンマッチ文字列を使用することができます。 .Sh 機能 以下の機能のいずれか 1 つだけを必ず指定する必要があります。 .Pp .Bl -tag -width "--concatenate" -compact .It Fl A .It Fl -catenate .It Fl "-concatenate" 指定された (tar アーカイブ形式の) ファイルを tar アーカイブの末尾 に追加します。(追加する前の古い end-of-archive ブロックは削除さ れます。) これは、指定されたファイルがアーカイブの中の 1 ファイルとなるので はなく、指定したファイルの中に含まれているファイルを、最初に指定 したアーカイブに追加するという効果を持ちます。 .Em 注: このオプションは tarfile を再書き込みする必要があるため、1/4 インチカートリッジテープでは動作しません。 .It Fl c .It Fl -create 新しいアーカイブを作成して (もしくは古い内容を切り捨てて)、指定 されたファイルをアーカイブに書き込みます。 .It Fl d .It Fl -diff .It Fl -compare アーカイブの中のファイルと、それに相当するファイルシステム内の ファイルとの違いを調査します。 .It Fl -delete 指定されたファイルをアーカイブから削除します。(1/4 インチテープ では動作しません。) .It Fl r .It Fl -append アーカイブの末尾にファイルを追加します。(1/4 インチテープでは 動作しません。) .It Fl t .It Fl -list アーカイブ内容のリスト表示をします。もし引数としてファイル名が 指定されていれば、そのファイルだけがリスト表示されます。そうでなけ れば、アーカイブに含まれるすべてのファイルリストが表示されます。 .It Fl u .It Fl -update 指定したファイルのうち、アーカイブ内のファイルよりもディスク上の ファイルの変更時刻が新しいものだけを追加します。1/4 インチテープ では動作しません。 .It Fl x .It Fl -extract .It Fl -get アーカイブからファイルを抽出します。可能ならば、所有者、 変更時刻、ファイル属性はリストアされます。もし .Ar file 引数が指定されていなければ、アーカイブ内の全ファイルが抽出されます。 もし .Ar filename 引数がテープ上のディレクトリ名にマッチしていれば、そのディレクトリと ディレクトリ内のファイルが抽出されます。(ディレクトリ内の すべてのディレクトリについても同様に抽出されます。) もしアーカイブ内に、相当する同じファイルが複数含まれていれば (上記の .Fl -append コマンドを参照)、最後に含まれているものが他のすべてのファイルを 上書きする形で抽出されます。 .Sh オプション .Nm の他のオプションは、組み合わせて使用することができます。 1 文字オプションは、コマンド単語の中で指定することができます。 引数を与えるべきオプションの場合、オプションに続けて引数を指定し ます。1 文字オプションであれば、これに続くコマンドライン引数を 使用します (以下の .Sx 使用例 を参照してください。) .Pp .Bl -tag -width "--preserve-permissions" -compact .It Fl -help .Nm のすべてのコマンドオプションについて一覧と解説を表示します。 .It Fl -atime-preserve テープに書かれている、ファイルのアクセス時刻をリストアします。 (inode の変更時刻が変更されることに注意してください!) .It Fl b .It Fl -block-size Ar number 読み書きするブロックサイズを .Ar number * 512-byte ブロック に設定します。 .It Fl B .It Fl -read-full-blocks 短い読みだしブロックを、完全なブロックに再組み立てします。 (4.2BSD パイプの読み込み用。) .It Fl C Ar directory .It Fl -directory Ar directory 残りの引数を処理する前に .Ar directory へ移動します。 .It Fl -checkpoint アーカイブを読み書きする間に読み書きしたバッファの数を表示します。 .It Fl f Ar [hostname:]file .It Fl -file Ar [hostname:]file 指定された .Ar file (デフォルトは /dev/rsa0) を読み書きします。 もし .Ar hostname が指定されていれば、 .Nm は .Xr rmt 8 を使って、リモートマシン上の .Ar file を読み書きします。"-" はファイル名として使用されることもありますが、 これは標準入力から読み出したり、標準出力へ書き出したりするために使用されます。 .It Fl -force-local コロンがある時でさえ、アーカイブファイルはローカルのものとします。 .It Fl F Ar file .It Fl -info-script Ar file .It Fl -new-volume-script Ar file それぞれのアーカイブが終ると、スクリプトを実行します (暗黙の .Fl M 指定が行なわれます。) .It Fl -fast-read ワイルドカードで指定されていないすべての抽出ターゲットが アーカイブ内に見つかったら、その時点で終了します。 .It Fl G .It Fl -incremental 古い GNU-format インクリメンタルバックアップファイルを作成/リスト/ 抽出します。 .It Fl g Ar file .It Fl -listed-incremental Ar file 新しい GNU-format インクリメンタルバックアップファイルを作成/リスト/ 抽出します。 .It Fl h .It Fl -dereference シンボリックリンクをシンボリックのまま書き込みません。シンボリックリンクが 指しているデータを書き込みます。 .It Fl i .It Fl -ignore-zeros アーカイブの中のゼロブロック (通常、End-Of-File を意味する) を無視します。 .It Fl -ignore-failed-read ファイルが読めなくても、非 0 のステータスで exit しません。 .It Fl k .It Fl -keep-old-files ディスク上に既にあるファイルを保持します。つまり、アーカイブから 抽出するファイルは、ディスク上のファイルへ上書きしません。 .It Fl K Ar file .It Fl -starting-file Ar file アーカイブの中の .Ar file から (抽出、リストなどを) 始めます。 .It Fl l .It Fl -one-file-system あるファイルシステム内にあるファイルだけでアーカイブを作成します。 (他ファイルシステムへのマウントポイントを跨ぎません。) .It Fl L Ar number .It Fl -tape-length Ar number .Ar number * 1024 バイト書き込んだ後でテープの交換を要求します。 .It Fl m .It Fl -modification-time ファイルの変更時刻を抽出しません。 .It Fl M .It Fl -multi-volume マルチボリュームアーカイブを作成/リスト/抽出します。 .It Fl n .It Fl -norecurse 作成時に再帰的にサブディレクトリを走査しません。 .It Fl -volno-file Ar file ボリューム番号付きのファイル名です。 .It Fl N Ar date .It Fl -after-date Ar date .It Fl -newer Ar date 作成時間が .Ar date より新しいファイルだけを抽出します。 .It Fl -newer-mtime Ar date 変更時間が .Ar date より新しいファイルだけを抽出します。 .It Fl o .It Fl -old-archive .It Fl -portability POSIX フォーマットではなく、V7 フォーマットのアーカイブを作成します。 .It Fl O .It Fl -to-stdout ファイルを標準出力に抽出します。 .It Fl p .It Fl -same-permissions .It Fl -preserve-permissions 保護情報を完全に抽出します。 .It Fl -preserve .Fl p s の指定と同じ効果を持ちます。 .It Fl P .It Fl -absolute-paths ファイル名から先頭の `/' をとりません。 .It Fl R .It Fl -record-number メッセージ中にアーカイブ内のレコード番号を埋め込み表示します。 .It Fl -remove-files アーカイブに追加したファイルを、追加後に削除します。 .It Fl s .It Fl -same-order .It Fl -preserve-order アーカイブ内から抽出するファイルを、指定された順のままにします。 .It Fl -show-omitted-dirs アーカイブ作成中に除外されたディレクトリを表示します。 .It Fl S .It Fl -sparse 「少ない」ファイルを効率的に扱うようにします。 .It Fl T Ar file .It Fl -files-from Ar file .Ar file から抽出もしくは作成するファイル名を得ます。(1 行 1 ファイル名。) .It Fl -null null で終わっている名前を考慮し、 .Fl T の振舞を変更します。 これは .Fl C 指定を無効にします。 .It Fl -totals .Fl -create によって書かれた総バイト数を表示します。 .It Fl v .It Fl -verbose .Fl -create でアーカイブに書くファイルや .Fl -extract でアーカイブから 取り出すファイル名をリスト表示します。 ファイルの保護情報をファイル名とともに表示させるには、 .Fl -list を使います。 .It Fl V Ar volume-name .It Fl -label Ar volume-name 指定された .Ar volume-name を持ったアーカイブを作成します。 .It Fl -version .Nm プログラムのバージョン番号を表示します。 .It Fl w .It Fl -interactive .It Fl -confirmation すべての動作に対して、確認を求めるようになります。 .It Fl W .It Fl -verify アーカイブを書き込んだ後、ベリファイを試みます。 .It Fl -exclude Ar pattern .Ar pattern にマッチするファイルを除外します。 (抽出しません。追加しません。リスト表示しません。) .It Fl X Ar file .It Fl -exclude-from Ar file .Ar file に一覧されているファイルを除外します。 .It Fl y .It Fl -bzip2 .It Fl -bunzip2 アーカイブを .Xr bzip2 1 でフィルタリングします。 .It Fl Z .It Fl -compress .It Fl -uncompress アーカイブを .Xr compress 1 でフィルタリングします。 .It Fl z .It Fl -gzip .It Fl -gunzip アーカイブを .Xr gzip 1 でフィルタリングします。 .It Fl -use-compress-program Ar program アーカイブを .Ar program でフィルタリングします。 (これは、 .Fl d が指定されたときは ``decompress'' を意味しなければなりません。) .It Fl -block-compress テープもしくはフロッピのために、圧縮プログラムの出力をブロック 化します。(そうしないと、ブロック長がおかしくなり、デバイスドライバは そのブロックを拒絶するでしょう。) .It Fl [0-7][lmh] テープドライブと密度を指定します。 .It Fl -unlink ファイルを作成する前に、いったん削除します。 .El .Sh 使用例 "bert" と "ernie" というファイルを含む、 ブロックサイズが 20 ブロックのアーカイブを、 テープドライブ /dev/rsa0 に作るには、 .Pp .Dl tar cfb /dev/rsa0 20 bert ernie .Pp もしくは .Pp .Dl tar\ --create\ --file\ /dev/rsa0\ --block-size\ 20\ bert\ ernie .Pp と入力します。 .Fl f および .Fl b フラグは両方とも引数を必要としていることに注意してください。 この引数は、コマンド単語に書かれているのと同じ順序でコマンドラインから 取得されます。 .Pp /dev/rsa0 はデフォルトのデバイスであり、20 はデフォルトのブロック サイズですので、上記の例は次のように単純化できます。 .Pp .Dl tar c bert ernie .Pp "backup.tar" というアーカイブから、すべての C ソース及びヘッダを 抽出するには、次のようにタイプします。 .Pp .Dl tar xf backup.tar '*.[ch]' .Pp シェルがカレントディレクトリ内のファイル名に展開しないよう、パターンを クォートしなければならないことに注意してください。(当然、 シェルはアーカイブ内のファイル一覧にアクセスすることはできません。) .Pp ファイルを階層構造ごとコピーするには、このようにコマンドを使用してください: .Bd -literal tar cf - -C srcdir . | tar xpf - -C destdir .Ed .Pp ディスケットに、gzip を使った圧縮アーカイブを作成するには、次の ようなコマンドラインを使うといいでしょう。 .Pp .Dl tar --block-compress -z -c -v -f /dev/rfd1a -b 36 tar/ .Pp まとめ指定フラグと -- スタイルのフラグを混在させることができない ことに注意してください。次のようにタイプしなければならないわけで はなく、上記のような書き方で 1 文字フラグを使うことができます。 .Pp -.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar -/ +.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar/ .Pp -上のようにして作成したディスクの内容は、次のようにすればリスト表 -示できます。 +上のようにして作成したディスクの内容は、次のようにすればリスト +表示できます。 .Pp .Dl tar tvfbz /dev/rfd1a 36 .Pp 2 つの tar アーカイブを 1 つのアーカイブにまとめるには、 .Pp .Dl tar Af archive1.tar archive2.tar .Pp を使います。こうすると、archive2.tar に含まれているファイルが archive1.tar の末尾に追加されます。(単純に .Pp .Dl cat archive2.tar >> archive1.tar .Pp とタイプしてもうまくいかないことに注意してください。なぜなら、 tar アーカイブの末尾には end-of-file ブロックがあるからです。) .Pp srcdir ディレクトリから 1997 年 2 月 9 日 13:00 以降に変更をされた 全てのファイルをアーカイブするためには、以下の形式を使って下さい。 .Dl tar\ -c\ -f\ backup.tar\ --newer-mtime\ 'Feb\ 9\ 13:15\ 1997'\ srcdir/ .Pp 他の時間指定形式としては、'02/09/97 13:15', \&'1997-02-09 13:15', '13:15 9 Feb 1997', '9 Feb 1997 13:15', \&'Feb. 9, 1997 1:15pm', '09-Feb', '3 weeks ago', 'May first Sunday' があります。 正しいタイムゾーンを指定するためには、 `13:15 CEST' や `13:15+200' を使用して下さい。 .Sh 環境変数 .Nm プログラムは、以下の環境変数を参照します。 .Bl -tag -width "POSIXLY_CORRECT" .It POSIXLY_CORRECT 通常、 .Nm はファイル指定の中に混ざったフラグを処理します。 この環境変数を設定すると、 .Nm は最初のフラグ以外の引数を見つける とそれ以降の引数に対してフラグ処理を行なわないという、POSIX 仕様 に合わせた動作を行なうようになります。 .It SHELL インタラクティブモードにおいて、サブシェルの起動が要求されたとき、 SHELL 変数が設定されていればそれが、設定されていなければ "/bin/sh" が使用されます。 .It TAPE tar のデフォルトのテープドライブを変更します。(これは、さらに .Fl f フラグによって変更することができます。) .El .Sh 関連ファイル .Bl -tag -width "/dev/rsa0" .It Pa /dev/rsa0 デフォルトのテープドライブ .El .\" This next request is for sections 1, 6, 7 & 8 only .\" (command return values (to shell) and fprintf/stderr type diagnostics) .\" .Sh 診断 .Sh 関連項目 .Xr bzip2 1 , .Xr compress 1 , .Xr gzip 1 , .Xr pax 1 , .Xr ft 8 , .Xr rmt 8 .\" .Sh 規格 .Sh 歴史 .Nm フォーマットは立派な歴史を持っていて、Sixth Edition UNIX に 原点があります。 この .Nm の実装は GNU 実装であり、John Gilmore によって書かれた パブリックドメイン tar が元になっています。 .Sh 作者 次の人を含む、大変多くの人々。[ソースの中の ChangeLog ファイルに記 述されている人々] .An John Gilmore (オリジナルのパブリックドメイン版の作者), .An Jay Fenlason (最初の GNU 作者), .An Joy Kendall , .An Jim Kingdon , .An David J. MacKenzie , .An Michael I Bushnell , .An Noah Friedman そして バグフィックスや追加を貢献してくれた無数の人々。 このマニュアルページは NetBSD 1.0 release から、 .Bx Free グループが 取り込んだものです。 .Sh バグ 特徴的な .Fl C オプションの動作は、伝統的な tar プログラムのそれとは異なるので、 あまり頼りにはできません。 .Pp .Fl A コマンドで任意の数の tar アーカイブを結合できればいいのですが、 それはできません。これをやろうとしても、 2 つ目以降のアーカイブの end-of-archive ブロックが削除されずに残ってしまいます。 diff --git a/ja/man/man1/vi.1 b/ja/man/man1/vi.1 index 546191c74f..4c1a450b08 100644 --- a/ja/man/man1/vi.1 +++ b/ja/man/man1/vi.1 @@ -1,1585 +1,1584 @@ .\" Copyright (c) 1994 .\" The Regents of the University of California. All rights reserved. .\" Copyright (c) 1994, 1995, 1996 .\" Keith Bostic. All rights reserved. .\" .\" This document may not be republished without written permission from .\" Keith Bostic. .\" .\" See the LICENSE file for redistribution information. .\" .\" @(#)vi.1 8.51 (Berkeley) 10/10/96 .\" jpman %Id: vi.1,v 1.3 1997/05/19 16:53:25 horikawa Stab % .\" .TH VI 1 "October 10, 1996" .UC .SH 名称 ex, vi, view \- テキストエディタ .SH 書式 .B ex [\c .B -eFGRrSsv\c ] [\c .BI -c " cmd"\c ] [\c .BI -t " tag"\c ] [\c .BI -w " size"\c ] [file ...] .br .B vi [\c .B -eFGlRrSv\c ] [\c .BI -c " cmd"\c ] [\c .BI -t " tag"\c ] [\c .BI -w " size"\c ] [file ...] .br .B view [\c .B -eFGRrSv\c ] [\c .BI -c " cmd"\c ] [\c .BI -t " tag"\c ] [\c .BI -w " size"\c ] [file ...] .SH ライセンス vi プログラムは自由に再配布できます。ライセンスファイルに挙げた条件の -基で、コピー、改変、他者との共有は自由にして下さい。どこかの会社(個人 -ではありません!)で vi が購入を希望するほど十分有用であると認めた場合、 +基で、コピー、改変、他者との共有は自由にして下さい。どこかの会社 +(個人ではありません!) で vi が購入を希望するほど十分有用であると認めた場合、 または会社で再配布を希望する場合、作者へ寄付をいただければ幸いです。 .SH 解説 .I \&vi はスクリーン指向のテキストエディタです。 .I \&ex は行指向のエディタです。 .I \&ex と .I \&vi は同じプログラムで別のインタフェースを提供し、 エディット中に切替えることが可能です。 .I view は -.IR \&vi . +.IR \&vi に .B \-R -(リードオンリー) オプション +(読み込み専用) オプション をつけて実行した場合と同じです。 .PP このマニュアルは .I ex/vi テキストエディタから派生した .I nex/nvi 用として提供されています。 .I nex/nvi は Fourth Berkeley Software Distibution (4BSD) オリジナルの .I \&ex と .I \&vi -のバグ一つ一つの互換性も含めて置き換えたつもりです。 +のバグひとつひとつの互換性も含めて置き換えたつもりです。 このマニュアルでは、以後、伝統的な .IR ex/vi の実装と区別する必要がある時だけ、 .I nex/nvi という表現を使います。 .PP このマニュアルページは、 .IR ex/vi を既に良く知っているユーザのためのものです。それ以外の人は、このマニュアルを 読む前に良いチュートリアルをしっかりと読んでおくべきです。あなたが不慣れな 環境のもとで、否応無く、しかも直ちに仕事を片付けなければならないなら、 -オプションの一覧の後にある、 ``ファースト スタートアップ'' という +オプションの一覧の後にある、``ファーストスタートアップ'' という タイトルのセクションを読んで下さい。 あなたがその仕事をこなすには、おそらくこれで十分でしょう。 .PP 以下のオプションが利用できます: .TP .B \-c エディットセッションがスタートした後ですぐに .B cmd を実行します。特にファイル中の最初の位置を決定するのに非常に役立ちますが、 .B cmd はポジジョニングコマンドに限定されません。これは、伝統的な ``+cmd'' 構文に代わる、POSIX 1003.2 で規定されたインタフェースです。 .I nex/nvi は新旧どちらの構文もサポートしています。 .TP .B \-e コマンド名が .IR \&ex であるかのように、ex モードで編集を開始します。 .TP .B \-F 編集を開始する時にファイル全体のコピーを作成しません (デフォルトでは、あなたの編集作業中に他の誰かがファイルを変更 する場合に備えてコピーを作成します)。 .TP .B \-l lisp オプションと showmatch オプションをセットして編集を始めます。 .TP .B \-G gtagsmode オプションがセットされている時と同じように、 gtags モードで編集を開始します。 .TP .B \-R コマンド名が .IR view , であるかのように、もしくは .B readonly オプション付きで起動されたかのように、 -リードオンリーモードで編集を開始します。 +読み込み専用モードで編集を開始します。 .TP .B \-r 指定したファイルの復旧を行ないます。もしファイルが指定されなかった場合は、 復旧可能なファイルの一覧を表示します。もし、復旧可能なファイルの中に 指定した名前のものがなかった場合は、 .B \-r オプションが指定されなかったかのように、そのファイルの編集を行ないます。 .TP .B \-S 外部プログラムへのすべてのアクセスを許さない .B secure エディットオプションをセットして起動します。 .TP .B \-s バッチモードに入ります。バッチモードは .I \&ex エディットセッションの時しか使えません。バッチモードは .I \&ex スクリプトを実行する時に便利です。このモードでは、プロンプトや、 情報を伝えるメッセージや、その他のユーザ向けのメッセージは出力されず、 スタートアップファイルや環境変数は読み込まれません。これは、伝統的な ``\-'' 引数に代わる、POSIX 1003.2 で規定されたインタフェースです。 .I \&nex/nvi は新旧どちらの構文もサポートしています。 .TP .B \-t 指定したタグの位置でエディットを開始します。 ( .IR ctags (1) 参照) .TP .B \-w 起動時のウィンドウの大きさを指定した行数にします。 .TP .B \-v コマンド名が .I \&vi か .IR view であるかのように、 vi モードでエディットを開始します。 .PP .I ex/vi へのコマンド入力は、標準入力から行なわれます。 .I \&vi のインタフェースは、標準入力が端末でない場合にはエラーになります。 .I \&ex のインタフェースでは、 .I \&ex は、標準入力が端末でなくても、 ちょうど .B \-s オプションが指定されている場合のようにセッションがバッチモード であっても、とにかく読み込みます。 .PP .I ex/vi は成功時に 0 を、エラーが起こった時には 0 より大きな値を返します。 .SH ファーストスタートアップ このセクションは、 .IR \&vi を使って簡単な編集作業を行なうのに必要な最低限のことを教えてくれるでしょう。 あなたが以前に一度もスクリーンエディタを使ったことがないなら、この簡単な紹介 の章でさえも問題になるかも知れません。この場合は、すでに .I \&vi を知っている人を探して、その人と一緒にこのセクションを読むべきです。 .PP .I \&vi はスクリーンエディタです。つまり、 .I \&vi は常に画面全体を使い、ファイルの一部分を画面上の (最終行以外の) それぞれの行に表示します。 画面の最終行は、あなたが .IR \&vi にコマンドを与えたり、 .I \&vi があなたに情報を与えたりするのに使われます。 .PP もうひとつ知っておくべきこととして、 .I \&vi はモードを持ったエディタであることがあります。 つまり、テキストを入力したり、コマンドを実行したりするには、 それぞれの作業を正しいモードで実行しなければなりません。 ファイル編集の最初はコマンドモードになっています。入力モードにする -コマンドが幾つかあります。入力モードから抜けるキーはただ一つで、 +コマンドが幾つかあります。入力モードから抜けるキーはただひとつ、 それは キーです。 (キーの名前は、<,> ではさんで書くことにします。 例えば、 は ``エスケープ'' ``esc'' キーのことを示し、通常キーボードでは、 と表示してあります。) どのモードにいるのかが判らなくなったならば、 .I \&vi が、ビープ音を出すまで、 キーを押し続けて下さい。 (一般的に、 .I \&vi は、許されていないことを何か試みたり、行なったりするとビープ音を鳴らします。 エラーメッセージも表示します。) .PP -ファイルの編集を始めるには、 ``vi file_name'' +ファイルの編集を始めるには、``vi file_name'' という具合に、コマンドを入れます。 編集を始めると、まず直ちに、 ``:set verbose showmode'' とコマンドを入れましょう。 そうすることによって、エディタは、 画面の最終行に詳細なエラーメッセージを出すようになりますし、 現在のモードも表示するようになります。 .PP ファイル内を移動するコマンド : .TP .B h カーソルを 1 文字左へ動かす。 .TP .B j カーソルを 1 行下へ動かす。 .TP .B k カーソルを 1 行上へ動かす。 .TP .B l -カーソルを1文字右へ動かす。 +カーソルを 1 文字右へ動かす。 .TP .B カーソルを矢印が示す方へ動かす。 .TP .B /text ファイル中の ``text'' を検索し、その最初の文字へカーソルを移動します。 .PP 新しく文書入力するコマンド : .TP .B a 入力した文書カーソルの .I 後ろへ 追加します。 .TP .B i 入力した文書カーソルの .I 前に 挿入します。 .TP .B o カーソルの下に新しい行を設けて、文書の入力を開始します。 .TP .B O カーソルの上に行を設けて、文書の入力を開始します。 .TP .B 一旦、 .BR \&a , .BR \&i , .BR \&O ないし .B \&o などのコマンドで入力モードに入ってからは、 文書の入力を終了しコマンドモードへ戻るためには、 .B コマンドを用います。 .PP 文書をコピーするコマンド : .TP .B yy カーソルのある行をコピーします。 .TP .B p カーソルのある行の下にコピーした行を追加します。 .PP 文書を削除するコマンド : .TP .B dd カーソルのある行を削除します。 .TP .B x カーソルのある文字を削除します。 .PP ファイルに書き込むコマンド : .TP .B :w もともと .I \&vi のコマンドラインで指定したファイルに、ファイルの内容を書き戻します。 .TP .B ":w file_name" 指定された ``file_name'' に、ファイルの内容を書き出します。 .PP 編集を終了し、エディタを抜けるコマンド : .TP .B :q エディットを終了し、 vi から抜けます。 (ファイル内容が変更されていてまだ保存されていなければ、 .I \&vi は、終了指示を拒否します) .TP .B :q! 変更した内容を放棄し、終了します。 .PP 最後に注意していただきたいこととして、 通常の文字ではない文字は、画面上で複数カラムを占めることがあります。また、 -長い行は、画面上の1行に収まらないこともあります。 -上記のコマンドは、 ``物理的な'' 行や文字に対して作用します。 +長い行は、画面上の 1 行に収まらないこともあります。 +上記のコマンドは、``物理的な'' 行や文字に対して作用します。 つまり、行関係のコマンドはその行が画面上で 何行になろうと行全体に影響を及ぼしますし、文字関係のコマンドはその文字が 画面上で何カラムを占めていても、その文字全体に影響を及ぼします。 .SH VI コマンド 以下の章では、 .I \&vi のコマンドモードで現れるコマンドについて説明します。 それぞれの記述では、見出し行にコマンドの使用書式を一覧表示します。 .PP .TP .B "[count] " .I count で指定した回数だけ、前方へ現在の単語を検索します。 .TP .B "[count] " .I count で指定した回数だけ、画面を後方へ戻します。 .TP .B "[count] " .I count で指定した行数だけ、画面を前方へスクロールします。 .TP .B "[count] " .I count で指定した行数だけ、画面を前方へスクロールします。 カーソルは現在行から離れますが、可能な場合は元のカラムに留まります。 .TP .B "[count] " .I count で指定した回数だけ、画面を前方へスクロールします。 .TP .B "" ファイル情報を表示します。 .TP .B "" .TP .B "[count] h" .I count で指定した文字数だけ、カーソルを現在行中で戻します。 .TP .B "[count] " .TP .B "[count] " .TP .B "[count] j" .I count で指定した行数だけ、カラム位置を変えずにカーソルを 下へ移動します。 .TP .B "" .TP .B "" 画面を再表示します。 .TP .B "[count] " .TP .B "[count] +" .I count で指定した行数だけ下の行の、 最初の空白以外の文字の位置へカーソルを 移動します。 .TP .B "[count] " .TP .B "[count] k" .I count で指定した行数だけ、 カラム位置を変えずにカーソルを上へ移動します。 .TP .B "" 最近のタグの状態へと戻ります。 .TP .B "" .I count で指定した行数だけ、画面を後方へスクロールします。 .TP .B "" 編集中の次の下位のスクリーンに切り替わります。 編集中の下位のスクリーンが他に無い場合には、最初のスクリーンへ切り替えます。 .TP .B "" .I count で指定した行数だけ、画面を後方にスクロールします。 できるかぎり現在の行、カラムにカーソルを残します。 .TP .B "" 現在の処理を中断 (suspend) します。 .TP .B "" .I \&ex コマンドを実行します。もしくは、実行中のコマンドを部分的にキャンセルします。 .TP .B "" タグ参照の内容をタグスタックへプッシュします。 gtagsmode では、行の最初のカラムにいる時は関数の参照位置を探し、 そうでない時は関数の定義位置を探します。 .TP .B "" 最後に編集したファイルへ切り替えます。 .TP .B "[count] " .TP .B "[count] l" .I count で指定した文字数だけ、カーソルを前方へ行を変えずに移動します。 .TP .B "[count] ! motion shell-argument(s)" シェルコマンドの結果を用いて文書を置き換えます。 .TP .B "[count] # #|+|-" カーソルが指す場所の数を増減します。 .TP .B "[count] $" カーソルを現在の行の末尾に移動します。 .TP .B "%" 対となる文字へカーソルを移動します。 .TP .B "&" 現在行で、前回実行した置換コマンドを再び実行します。 .TP .B "'" .TP .B "`" マークした文字 の場所へ戻ります。 .IR . .TP .B "[count] (" .I count で指定された数だけ、前の文へ戻ります。 .TP .B "[count] )" .I count で指定された数だけ、後ろの文へ移動します。 .TP .B "[count] ," .I count で指定された回数だけ、逆方向へ文字を検索します。 .TP .B "[count] -" .I count で指定された回数だけ、 直前の行で最初に現れる空白でない文字への移動を行ないます。 .TP .B "[count] ." 直前の .I \&vi 編集コマンドを繰り返します。 .TP .B "/RE" .TP .B "/RE/ [offset]" .TP .B "?RE" .TP .B "?RE? [offset]" .TP .B "N" .TP .B "n" 前方/後方に向かって、正規表現による検索を行ないます。 .TP .B "0" 現在行の最初の文字に移動します。 .TP .B ":" ex コマンドを実行します。 .TP .B "[count] ;" 文字検索を .I count で指定された回数だけ繰り返します。 .TP .B "[count] < motion" .TP .B "[count] > motion" 現在行を、左/右にシフトします。 .TP .B "@ buffer" バッファに保存されたコマンドを実行します。 .TP .B "[count] A" 入力モードに入り、文書を行の最後に追加します。 .TP .B "[count] B" .I count -で指定された回数だけ、大単語(bigword)の先頭文字への移動を繰り返します。 +で指定された回数だけ、大単語 (bigword) の先頭文字への移動を繰り返します。 .TP .B "[buffer] [count] C" 現在位置から行末までを変更します。 .TP .B "[buffer] D" 現在位置から行末まで削除します。 .TP .B "[count] E" .I count で指定された回数だけ、大単語の末尾の文字への移動を繰り返します。 .TP .B "[count] F " .I count で指定された回数だけ、行の先頭から逆方向に文字 .IR を検索/移動を繰り返します。 .TP .B "[count] G" ファイルの最初から数えて .IR count 行目へ、もしくは .I count を指定しなかったときはファイルの末尾の行へ、カーソルを移動します。 .TP .B "[count] H" 画面の最初から数えて .I "count - 1" 行目に移動します。 .TP .B "[count] I" 入力モードに入り、行の先頭へ文書を挿入します。 .TP .B "[count] J" 現在行と次の行を結合します。 .TP .B "[count] L" 画面の下から数えて .I "count - 1" 行目に移動します。 .TP .B " M" 画面中央の行へ移動します。 .TP .B "[count] O" 入力モードに入ります。現在行の直前に新しい行を作り、文書を追加します。 .TP .B "[buffer] P" バッファに保存した文書を挿入します。 .TP .B "Q" .I \&vi -(もしくは visual)モードを終了し、 +(もしくは visual) モードを終了し、 .I \&ex モードへ切り替わります。 .TP .B "[count] R" 入力モードに入り、現在行の内容を置き換えます。 .TP .B "[buffer] [count] S" .I count で指定した行数だけ、行を置き換えます。 .TP .B "[count] T " .I count で指定した回数だけ、現在行で逆方向に検索し、指定された文字 .IR の .I 後ろ の文字に移動します。 .TP .B "U" 現在行を、カーソルが最後に入ってきた時の直前の状況に復元します。 .TP .B "[count] W" .I count で指定した回数だけ、大単語単位で移動します。 .TP .B "[buffer] [count] X" .I count で指定した回数だけ、カーソルの前の文字を削除します。 .TP .B "[buffer] [count] Y" -行のコピー、 (もしくは ``ヤンク'') を +行のコピー、(もしくは ``ヤンク'') を .I count で指定した行数だけ、指定したバッファに取り込みます。 .TP .B "ZZ" ファイルに書き込み、 .IR \&vi を終了します。 .TP .B "[count] [[" .I count で指定した回数だけ、後方のセクションの先頭へ移動します。 .TP .B "[count] ]]" .I count で指定した回数だけ、前方のセクションの末尾へ移動します。 .TP .B "\&^" 現在行の空白でない最初の文字へ移動します。 .TP .B "[count] _" .I "count - 1" で指定した行数だけ、下の行の最初の空白でない文字へ移動します。 .TP .B "[count] a" 入力モードに入り、カーソルの後ろに文書を追加します。 .TP .B "[count] b" .I count で指定した回数だけ、後方へ単語単位で移動します。 .TP .B "[buffer] [count] c motion" 範囲指定した文書を変更します。 .TP .B "[buffer] [count] d motion" 範囲指定した文書を削除します。 .TP .B "[count] e" .I count で指定した数だけ前方の単語の終りに移動します。 .TP .B "[count] f" 現在行の中で、行末まで .I count で指定した回数だけ、 .IR を検索します。 .TP .B "[count] i" 入力モードに入り、カーソルの前に文書を挿入します。 .TP .B "m " 現在の状態 (行とカラム) を .IR へ、保存します。 .TP .B "[count] o" 入力モードに入ります。現在行の下に新しい行を作り、文章を追加します。 .TP .B "[buffer] p" バッファから文章を取り出し、追加します。 .TP .B "[count] r " .I count で指定した文字数だけ、文字を置換します。 .TP .B "[buffer] [count] s" 現在行の中で、カーソルのある文字から .I count で指定する回数だけ、文字を入れ換えます。 .TP .B "[count] t " 現在行の中で、前方へ .I count で指定する回数だけ、 .IR を検索し、その文字の .I 直前 へ移動します。 .TP .B "u" ファイルに最後に行なった変更を取り消します。 .TP .B "[count] w" .I count で指定した回数だけ、前方へ単語単位で移動します。 .TP .B "[buffer] [count] x" .I count で指定した回数だけ、文字を削除します。 .TP .B "[buffer] [count] y motion" .I count -と motion で指定された範囲をバッファへコピー(もしくは ``yank'')します。 +と motion で指定された範囲をバッファへコピー (もしくは ``yank'') します。 .TP .B "[count1] z [count2] -|.|+|^|" 画面を再表示します。あわせてカーソル位置や画面のサイズを変更することも できます。 .TP .B "[count] {" .I count で指定した回数だけ、後方へ段落単位で移動します。 .TP .B "[count] |" 現在行の中で .I count で指定した .I column 位置に移動します。 .TP .B "[count] }" .I count で指定した回数だけ、前方へ段落単位で移動します。 .TP .B "[count] ~" .I count -で指定した回数だけ、文字(列)の大文字、小文字を入れ換えます。 +で指定した回数だけ、文字 (列) の大文字、小文字を入れ換えます。 .TP .B "[count] ~ motion" .I count と .IR motion で指定された範囲の文字列の大文字小文字を入れ換えます。 .TP .B "" 現在の作業を中断します。 .SH VI の文書入力コマンド 以下のセクションでは、 .I \&vi エディタの文書入力に用するコマンドに関して記します。 .PP .TP .B "" 直前の入力を繰り返します。 .TP .B "" 直前の .B shiftwidth のカラム境界まで消去します。 .TP .B "^" オートインデント文字を全部消し、インデント状態を解除します。 .TP .B "0" オートインデント文字を全部消します。 .TP .B "" カーソルが .B shiftwidth オプションの偶数倍のカラム数の直後に来るまで、適当な数の .I と .I 文字を挿入します。 .TP .B " .TP .B "" 最後に入力した文字を消します。 .TP .B "" 次の文字を引用します。 .TP .B " 文書を全部ファイルに格納し、コマンドモードへ戻ります。 .TP .B "" 現在行を消します。 .TP .B "" .TP .B "" 最後に入力した単語を消します。 単語の定義は、 .B altwerase と .B ttywerase のオプションに依存します。 .TP .B "[0-9A-Fa-f]+" 指定した 16 進の値を持つ文字を挿入します。 .TP .B "" 文書入力モードを中断し、コマンドモードへと戻ります。 .SH EX コマンド 以下のセクションでは、 .I \&ex エディタで用いられるコマンドに関して記します。 以下のエントリのうち、見出し行にはコマンドの使用書式を記載してあります。 .PP .TP .B "" 画面をスクロールします。 .TP .B "! argument(s)" .TP .B "[range]! argument(s)" シェルコマンドを実行するか、もしくはシェルコマンドを用いて 指定範囲の行にフィルタをかけます。 .TP .B \&" コメントです。 .TP .B "[range] nu[mber] [count] [flags]" .TP .B "[range] # [count] [flags]" 指定行を、その行番号を前に付けて表示します。 .TP .B "@ buffer" .TP .B "* buffer" バッファの中身を実行します。 .TP .B "[line] a[ppend][!]" 指定行の後に、入力文字を追加します。 .TP .B "[range] c[hange][!] [count]" .I range で指定した範囲を入力文字で置き換えます。 .TP .B "cs[cope] add | find | help | kill | reset" cscope コマンドを実行する。 .TP .B "[range] d[elete] [buffer] [count] [flags]" ファイルから行を削除します。 .TP .B "di[splay] b[uffers] | c[onnections] | s[creens] | t[ags]" -バッファ、cscope接続、画面、タグを表示します。 +バッファ、cscope 接続、画面、タグを表示します。 .TP .B "[Ee][dit][!] [+cmd] [file]" .TP .B "[Ee]x[!] [+cmd] [file]" 別のファイルを編集します。 .TP .B "exu[sage] [command]" 指定した .I \&ex コマンドの使い方を表示します。 .TP .B "f[ile] [file]" ファイル名を表示し、指定があればファイル名を変更します。 .TP .B "[Ff]g [name]" .I \&vi モードのみ。 指定した画面をフォアグランドに表示します。 .TP .B "[range] g[lobal] /pattern/ [commands]" .TP .B "[range] v /pattern/ [commands]" -パターンに合致した(しない)行にコマンドを適用します。 +パターンに合致した (しない) 行にコマンドを適用します。 .TP .B "he[lp]" ヘルプメッセージを表示します。 .TP .B "[line] i[nsert][!]" 入力文書を指定した行の前に挿入されます。 .TP .B "[range] j[oin][!] [count] [flags]" 行を結合します。 .TP .B "[range] l[ist] [count] [flags]" 行を曖昧さがないように表示します。 .TP .B "map[!] [lhs rhs]" マップを定義もしくは表示します。( .I \&vi のみ) .TP .B "[line] ma[rk] " .TP .B "[line] k " 行を .IR としてマークします。 .TP .B "[range] m[ove] line" 指定した行を目標行の後ろに移動します。 .TP .B "mk[exrc][!] file" 略語、エディタのオプション、マップを指定したファイルに書き込みます。 .TP .B "[Nn][ext][!] [file ...]" 引数リストで指定した次のファイルの編集に移行します。 .TP .B "[line] o[pen] /pattern/ [flags]" オープンモードに入ります。 .TP .B "pre[serve]" 後で .I \&ex .B \-r オプションを用いてファイルを復元できる形式にして保存します。 .TP .B "[Pp]rev[ious][!]" -引数リストで指定した一つ前のファイルを編集します。 +引数リストで指定した 1 つ前のファイルを編集します。 .TP .B "[range] p[rint] [count] [flags]" 指定した行を表示します。 .TP .B "[line] pu[t] [buffer]" バッファの内容を現在行に追加します。 .TP .B "q[uit][!]" 編集を終了します。 .TP .B "[line] r[ead][!] [file]" ファイルを読み込みます。 .TP .B "rec[over] file" 事前に保存されている場合に、 .I file を復元します。 .TP .B "res[ize] [+|-]size" .I \&vi モードのみ。 現在の画面を大きくするか、もしくは小さくします。 .TP .B "rew[ind][!]" 引数リストを巻き戻し、最初の引数のファイルの編集に移行します。 .TP .B "rta[g][!] tagstring" 指定したタグを参照しているファイルを編集します。(gtagsmode でのみ有効) .TP .B "se[t] [option[=[value]] ...] [nooption ...] [option? ...] [all]" エディタのオプションを表示、もしくは設定します。 .TP .B "sh[ell]" シェルプログラムを実行します。 .TP .B "so[urce] file" ファイルから .I \&ex コマンドを読み込み、実行します。 .TP .B "[range] s[ubstitute] [/pattern/replace/] [options] [count] [flags]" .TP .B "[range] & [options] [count] [flags]" .TP .B "[range] ~ [options] [count] [flags]" 置換を行ないます。 .TP .B "su[spend][!]" .TP .B "st[op][!]" .TP .B 編集を一時中断します。 .TP .B "[Tt]a[g][!] tagstring" 指定のタグを含むファイルを編集します。 .TP .B "tagn[ext][!]" 現在のタグの次のタグを含むファイルを編集します。 .TP .B "tagp[op][!] [file | number]" スタックから指定したタグを取り出します。 .TP .B "tagp[rev][!]" 現在のタグの前のタグを含むファイルを編集します。 .TP .B "unm[ap][!] lhs" 指定した文字列のマップ定義を解除します。 .TP .B "ve[rsion]" .I \&ex/vi のバージョンを表示します。 .TP .B "[line] vi[sual] [type] [count] [flags]" .I \&ex モードのみ。 .IR \&vi モードに入ります。 .TP .B "[Vi]i[sual][!] [+cmd] [file]" .I \&vi モードのみ。 新しいファイルを編集します。 .TP .B "viu[sage] [command]" .I \&vi コマンドの使い方を表示します。 .TP .B "[range] w[rite][!] [>>] [file]" .TP .B "[range] w[rite] [!] [file]" .TP .B "[range] wn[!] [>>] [file]" .TP .B "[range] wq[!] [>>] [file]" ファイルに書き出します。 .TP .B "[range] x[it][!] [file]" 修正されていれば、ファイルに書きだします。 .TP .B "[range] ya[nk] [buffer] [count]" 指定行をバッファにコピーします。 .TP .B "[line] z [type] [count] [flags]" ウィンドウのサイズを調節します。 .SH SET オプション -set (または unset)することによりエディターの動作を変更することができる +set (または unset) することによりエディターの動作を変更することができる オプションが非常にたくさんあります。このセクションでは、 これらのオプションとその短縮形とデフォルト値を説明します。 .PP 以下の各項目では、最初にオプションをフルネームで、 その次に同じ意味を持つ短縮形が続きます。 角括弧の部分は、デフォルト値です。 -ほとんどのオプションは on または off のような bool 値で、 +ほとんどのオプションは on または off のようなブール値で、 関連する値は持ちません。 .PP これらのオプションは、特に断りがない場合は .I \&ex と .I \&vi の両方のモードに適用されます。 .PP .TP .B "altwerase [off]" .I \&vi のみ。 別の単語削除アルゴリズムを選択します。 .TP .B "autoindent, ai [off]" 改行時に自動的にインデントします。 .TP .B "autoprint, ap [off]" .I \&ex のみ。 自動的に現在の行を表示します。 .TP .B "autowrite, aw [off]" 別のファイルに切替える際に、ファイルが変更されているなら自動的にセーブします。 .\" I cannot get a double quote to print between the square brackets .\" to save my life. The ONLY way I've been able to get this to work .\" is with the .tr command. .tr Q" .ds ms backup [QQ] .TP .B "\*(ms" .tr QQ ファイルが上書きされる前にバックアップファイルを作成します。 .TP .B "beautify, bf [off]" コントロール・キャラクタを切り捨てます。 .TP .B "cdpath [環境変数 CDPATH 、またはカレントディレクトリ]" .B cd コマンドのパス接頭子として使われるディレクトリパスです。 .TP .B "cedit [no default]" コロンコマンドライン履歴を編集する文字をセットします。 .TP .B "columns, co [80]" 画面のカラム数をセットします。 .TP .B "comment [off]" .I \&vi のみ。 シェルスクリプト、C、C++言語ファイル先頭のコメントの読み込みをスキップします。 .TP .B "directory, dir [環境変数 TMPDIR 、または /tmp]" テンポラリファイルを作成するディレクトリです。 .TP .B "edcompatible, ed [off]" .B 置換 コマンドの接尾子の ``c'' と ``g'' の値を記憶するようにします。 通常は新しくコマンドを実行するたびに初期化します。 .TP .B "errorbells, eb [off]" .I \&ex のみ。 エラーメッセージをベルとともに知らせます。 .TP .B "exrc, ex [off]" ローカルディレクトリのスタートアップファイルを読み込みます。 .TP .B "extended [off]" 正規表現を .IR egrep (1)\-\c スタイルに拡張します。 .TP .B "filec [no default]" コロンコマンドライン上のファイルパス補間を行なう文字をセットします。 .TP .B "flash [on]" エラー時にビープを鳴らすのではなく、画面をフラッシュします。 .TP .B "gtagsmode, gt [off]" tags の代わりに GTAGS と GRTAGS を使います。 .TP .B "hardtabs, ht [8]" スペースをハードウェアタブ設定に合わせて設定します。 .TP .B "iclower [off]" 検索文字列に大文字が現れなければ、すべての正規表現を大文字小文字の 区別なく行なうようにします。 .TP .B "ignorecase, ic [off]" 正規表現検索で大文字小文字の違いを無視します。 .TP .B "keytime [6]" .I ex/vi は、後に続くキーを先のキーに続けて解釈しキーマッピングを行ないますが、 後に続くキー入力の待ち時間を1/10秒単位で指定します。 .TP .B "leftright [off]" .I \&vi のみ。 左右のスクロールを行ないます。 .TP .B "lines, li [24]" .I \&vi のみ。 画面の行数を設定します。 .TP .B "lisp [off]" .I \&vi のみ。 さまざまなサーチコマンドとオプションの動作を Lisp 言語編集用に 修正します。 .I "このオプションはまだ実装されていません。" .TP .B "list [off]" 行を曖昧でない形式で表示します。 .TP .B "lock [on]" どのファイルの編集、読み込み、書き込みに関しても、排他的ロックをする ように試みます。 .TP .B "magic [on]" ある種の文字を正規表現中で特殊扱いします。 .TP .B "matchtime [7]" .I \&vi のみ。 .B showmatch オプションが設定されている場合、 .I ex/vi -は対になる括弧の上で一時停止しますが、その停止時間を1/10秒単位で指定します。 +は対になる括弧の上で一時停止しますが、その停止時間を 1/10 秒単位で指定します。 .TP .B "mesg [on]" -他のユーザーからのメッセージ着信を許可します。 +他のユーザからのメッセージ着信を許可します。 .TP .B "modelines, modeline [off]" それぞれのファイルの最初と最後の数行を .I ex コマンドとして読み込みます。 .I "このオプションが実装されることは決してありません。" .\" I cannot get a double quote to print between the square brackets .\" to save my life. The ONLY way I've been able to get this to work .\" is with the .tr command. .tr Q" .ds ms noprint [QQ] .TP .B "\*(ms" .tr QQ 表示可能な文字として扱われない文字を指定します。 .TP .B "number, nu [off]" 各行先頭に行番号を付けて表示します。 .TP .B "octal [off]" 表示出来ない文字を 8 進数で表示します。デフォルトでは 16 進表示です。 .TP .B "open [on]" .I \&ex のみ。 このオプションが設定されていなければ、 .B open と .B visual コマンドは許されません。 .TP .B "optimize, opt [on]" .I \&vi のみ。 ダム端末へのテキスト出力速度を最適化します。 .I "このオプションはまだ実装されていません。" .TP .B "paragraphs, para [IPLPPPQPP LIpplpipbp]" .I \&vi のみ。 .B \&{ と .B \&} コマンドで使用する段落境界の定義を追加します。 .TP .B "path []" 編集するファイルを探すディレクトリの追加分を定義します。 -Define additional directories to search for files being edited. .\" I cannot get a double quote to print between the square brackets .\" to save my life. The ONLY way I've been able to get this to work .\" is with the .tr command. .tr Q" .ds ms print [QQ] .TP .B "\*(ms" .tr QQ 常に表示可能な文字として扱われる文字を指定します。 .TP .B "prompt [on]" .I \&ex のみ。 コマンドプロンプトを表示します。 .TP .B "readonly, ro [off]" ファイルとそのセッションを読み込み専用とします。 .TP .B "recdir [/var/tmp/vi.recover]" 復元用のファイルを置くディレクトリです。 .TP .B "redraw, re [off]" .I \&vi のみ。 ダム端末上で、インテリジェント端末をシミュレートします。 .I "このオプションはまだ実装されていません。" .TP .B "remap [on]" 解決されるまで、キーマップを解釈します。 .TP .B "report [5]" 変更ないしヤンクについて、エディタが報告する行数を設定します。 .TP .B "ruler [off]" .I \&vi のみ。 最下行に行/カラムを示す罫を表示します。 .TP .B "scroll, scr [window / 2]" スクロールする行数を設定します。 .TP .B "searchincr [off]" .B \&/ と .B \&? コマンドをインクリメンタルにセットします。 .TP .B "sections, sect [NHSHH HUnhsh]" .I \&vi のみ。 .B \&[[ と .B \&]] コマンドで使用するセクション境界の定義を追加します。 .TP .B "secure [off]" 外部プログラムへのすべてのアクセスを止めます。 .TP .B "shell, sh [環境変数 SHELL 、または /bin/sh]" エディタ上から使われるシェルを選択します。 .\" I cannot get a double quote to print between the square brackets .\" to save my life. The ONLY way I've been able to get this to work .\" is with the .tr command. .tr Q" .ds ms shellmeta [~{[*?$`'Q\e] .TP .B "\*(ms" .tr QQ ファイル名の拡張が必要なとき、その決定をするメタキャラクタを セットします。 .TP .B "shiftwidth, sw [8]" オートインデント、シフトコマンドで用いる幅を設定します。 .TP .B "showmatch, sm [off]" .I \&vi のみ。 -``{'' と ``('' に対し ``}'' and ``)'' の括弧の対応を表示します。 +``{'' と ``('' に対し ``}'' と ``)'' の括弧の対応を表示します。 .TP .B "showmode, smd [off]" .I \&vi のみ。 現在のエディタのモードと ``変更'' フラグを表示します。 .TP .B "sidescroll [16]" .I \&vi のみ。 左右スクロールで動く幅を設定します。 .TP .B "slowopen, slow [off]" 文書を入力中、画面更新を遅らせて表示します。 .I "このオプションはまだ実装されていません。" .TP .B "sourceany [off]" 現在のユーザの所有でないスタートアップファイルを読み込みます。 .I "このオプションが実装されることは決してありません。" .TP .B "tabstop, ts [8]" このオプションは、表示で使用されるタブの幅を設定します。 .TP .B "taglength, tl [0]" タグの名前を判別可能な最大文字数を設定します。 .TP .B "tags, tag [tags /var/db/libc.tags /sys/kern/tags]" タグファイルのリストを設定します。 .TP .B "term, ttytype, tty [環境変数 TERM]" 端末の型を設定します。 .TP .B "terse [off]" このオプションは伝統的にエディタの示すメッセージをより簡潔なものにする ために作られています。 この実装では何の影響も与えません。 .TP .B "tildeop [off]" .B \&~ コマンドが連係動作をするように修正します。 .TP .B "timeout, to [on]" キーをマップする際のタイムアウト。 .TP .B "ttywerase [off]" .I \&vi のみ。 別の削除アルゴリズムを選択します。 .TP .B "verbose [off]" .I \&vi のみ。 エラーが起こる度にエラーメッセージを表示します。 .TP .B "w300 [no default]" .I \&vi のみ。 -転送レートが1200ボー以下の場合に設定するウィンドウサイズ。 +転送レートが 1200 ボー以下の場合に設定するウィンドウサイズ。 .TP .B "w1200 [no default]" .I \&vi のみ。 -転送レートが1200ボーの場合に設定するウィンドウサイズ。 +転送レートが 1200 ボーの場合に設定するウィンドウサイズ。 .TP .B "w9600 [no default]" .I \&vi のみ。 -転送レートが1200ボー以上の場合に設定するウィンドウサイズ。 +転送レートが 1200 ボー以上の場合に設定するウィンドウサイズ。 .TP .B "warn [on]" .I \&ex のみ。 このオプションは、 ファイルが最後に書き込まれた後でファイルが修正されている場合、 .B \&! コマンドが実行される前に端末に警告メッセージ を出すようにします。 .TP .B "window, w, wi [環境変数 LINES]" 画面のウィンドウサイズを設定します。 .TP .B "windowname [off]" アイコン名、ウィンドウ名を、たとえエディタ終了時に戻すことができなく なるとしても、現在作業中のファイル名に変えます。 .TP .B "wraplen, wl [0]" .I \&vi のみ。 左マージンから指定したカラム数で、行を自動的に折り返します。 もし、 .B wraplen と .B wrapmargin の両方の編集オプションがセットされると、 .B wrapmargin の値が使われます。 .TP .B "wrapmargin, wm [0]" .I \&vi のみ。 右マージンから指定したカラム数で、行を折り返します。 .B wraplen と .B wrapmargin 編集オプションの両方が指定されると、 .B wrapmargin の値が使われます。 .TP .B "wrapscan, ws [on]" 検索が、ファイルの最後に達したら最初へと戻ります。 .TP .B "writeany, wa [off]" ファイルの上書きチェックを切り替えます。 .SH 環境変数 .TP .I COLUMNS 画面のカラム数。 この値は、システムや端末固有のどの値をも上書きします。 .I ex/vi の起動時に環境変数 .I COLUMNS が設定されていない場合、または .B columns オプションによりユーザが明示的に値をリセットした場合は、 .I ex/vi は環境変数 .I COLUMNS にこの値を設定します。 .TP .I EXINIT .I \&ex のスタートアップコマンドのリスト。 .I NEXINIT が設定されていない場合に読み込まれます。 .TP .I HOME ユーザのホームディレクトリ。 起動時に ``$\fIHOME\fP/.nexrc'' と ``$\fIHOME\fP/.exrc'' を読み込むための初期ディレクトリパスとして使われます。 この値は、 .I \&vi の .B \&cd コマンドのデフォルトディレクトリとしても使われます。 .TP .I LINES 画面の行数。 この値は、システムや端末固有のどの値をも上書きします。 .I ex/vi 起動時に、環境変数 .I LINES が設定されていないか、 .B lines オプションによりユーザが明示的に値をリセットした場合は、 .I ex/vi は環境変数 .I LINES にこの値を設定します。 .TP .I NEXINIT .I \&ex のスタートアップコマンドのリスト。 .TP .I SHELL ユーザが選んだシェル 。 ( .B shell オプションを参照) .TP .I TERM ユーザの端末の型。デフォルトの型は ``unknown'' です。 .I ex/vi 起動時に環境変数 .I TERM の値が設定されていないか、または、 .B term オプションによりユーザが明示的に値をリセットした場合は、 .I ex/vi は環境変数 .I TERM にこの値を設定します。 .TP .I TMPDIR テンポラリファイルの作成される場所。 ( .B directory オプションを参照) .SH 非同期イベント .TP SIGALRM .I \&vi/ex は、ファイル編集時の定期的なバックアップを行なうためと、 処理に長い時間がかかりそうな時に画面に ``busy'' のメッセージを 表示するために、このシグナルを使います。 .TP SIGHUP .TP SIGTERM 最後にファイル全体を書き込んだ後、現在のバッファを変更した場合、 後に復旧できるように編集中のファイルを保存しようと試みます。 詳細は、 .I \&vi/ex リファレンスマニュアルの ``Recovery'' のセクションを参照して下さい。 .TP SIGINT この割り込みが発生した場合、現在の操作は停止され、コマンドレベルに戻ります。 テキスト入力中にこの割り込みが発生した場合は、テキスト入力を正常に終了させた かのように、ファイルに入力中のテキストを書き込みます。 .TP SIGWINCH スクリーンのサイズ変更を行ないます。 詳しくは、 .I \&vi/ex リファレンスマニュアルの ``Sizing the Screen'' のセクションを参照して下さい。 .TP SIGCONT .TP SIGQUIT .TP SIGTSTP .I \&vi/ex はこれらのシグナルを無視します。 .SH 関連ファイル .TP /bin/sh デフォルトのユーザシェル。 .TP /etc/vi.exrc システム全体における vi のスタートアップファイル。 .TP /tmp テンポラリファイルのディレクトリ。 .TP /var/tmp/vi.recover デフォルトの復元ファイルのディレクトリ。 .TP $HOME/.nexrc ユーザのホームディレクトリにあるスタートアップファイルで、 1 番最初に読まれるファイル。 .TP $HOME/.exrc ユーザのホームディレクトリにあるスタートアップファイルで、 2 番目に読まれるファイル。 .TP \&.nexrc ローカルディレクトリにあるスタートアップファイルで、 1 番最初に読まれるファイル。 .TP \&.exrc ローカルディレクトリにあるスタートアップファイルで、 2 番目に読まれるファイル。 .SH 関連項目 .IR ctags (1), .IR more (3), .IR curses (3), .IR dbopen (3) .sp ``Vi Quick Reference'' カード。 .sp ``An Introduction to Display Editing with Vi'' のセクション。 4.3BSD と 4.4BSD のマニュアルセットの ``UNIX User's Manual Supplementary Documents'' の中で見つかります。 これは、手に入るものの中で .I \&vi スクリーンエディタの入門書にもっとも近いものです。 .sp ``Ex Reference Manual (Version 3.7)'' のセクション。 4.3BSD と 4.4BSD のマニュアルセットの ``UNIX User's Manual Supplementary Documents'' の中で見つかります。 これは、 .I \&ex エディタのドキュメントで、伝統的な 4BSD と System V で配布された 最終的なリファレンスです。 .sp ``Edit: A tutorial'' セクション。 4.3BSD のマニュアルセットの ``UNIX User's Manual Supplementary Documents'' の中で見つかります。 これは、 .I \&ex スクリーンエディタの単純な版の入門用ドキュメントです。 .sp ``Ex/Vi Reference Manual'' セクション。 4.4BSD のマニュアルセットの ``UNIX User's Manual Supplementary Documents'' の中で見つかります。 これは、 .I \&nex/nvi テキストエディタのために 4.4BSD と 4.4BSD-Lite で配布された 最終的なリファレンスです。 .PP .I nex/nvi ドキュメントの .I roff ソース。 これらは .I nex/nvi のソースコードが置かれているディレクトリの .I nvi/USD.doc ディレクトリの中に一緒に配布されています。 .sp .I nex/nvi のソースコードが置かれている .I nvi/docs/internals ディレクトリの -``autowrite'', ``input'', ``quoting'' , ``structures'' +``autowrite'', ``input'', ``quoting'', ``structures'' といったファイル群。 .SH 歴史 .I ex/vi エディタに代わる .I nex/nvi コマンドは、4.4BSD から登場しました。 .SH 規格 .I \&nex/nvi は、IEEE Std1003.2 (``POSIX'') に近いです。 この文書は、幾つかの点で従来の .I ex/vi の実際の動作とは異なります。 .I \&nex/nvi には、両方の面に則って作られたという違いがあります。 diff --git a/ja/man/man6/sail.6 b/ja/man/man6/sail.6 index f9049da705..63761fcbd5 100644 --- a/ja/man/man6/sail.6 +++ b/ja/man/man6/sail.6 @@ -1,1044 +1,1048 @@ .\" Copyright (c) 1988, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)sail.6 8.2 (Berkeley) 12/30/93 .\" %Id: sail.6,v 1.4 1997/02/22 14:46:58 peter Exp % .\" .\" jpman %Id: sail.6,v 1.4 1999/01/16 17:11:32 kuma Stab % .\" .\" WORD: wooden ships and iron men 「帆船の戦い」[sail.6] .\" WORD: captain 艦長[sail.6] .\" WORD: weather gage 風上(hold the weather gage...風上を取る)[sail.6] .\" WORD: Version 7 Version 7(固有名詞扱い) .\" WORD: turn ターン(ゲーム用語) .\" WORD: square rigger 横帆船[sail.6] .\" WORD: broadside 片舷/片舷斉射[sail.6] .\" WORD: bow 船首[sail.6] .\" WORD: stern 船尾[sail.6] .\" WORD: rake 縦撃[sail.6] .\" WORD: carronade カロネード砲[sail.6] .\" .TH SAIL 6 "December 30, 1993" .UC 4 .SH 名称 -sail \- マルチユーザー版ゲーム「帆船の戦い」 +sail \- マルチユーザ版ゲーム「帆船の戦い」 .SH 書式 .B sail [ .B \-s [ .B \-l ] ] [ .B \-x ] [ .B \-b ] [ .B num ] .br .fi .SH 解説 -.I Sail +.I sail は、もともとは、S. Craig Taylor によって開発された、アバロンヒル社の戦闘帆船 ボードゲームのコンピュータ版です。 .PP .I Sail のプレイヤーは、旧式の戦艦の指揮をとり他のプレイヤーやコンピュータと 戦います。 プレイヤーは、ゲームの中に記録された数多くの歴史上の海戦の中の一つを再現しても よいし、空想上の戦闘を選ぶこともできます。 .PP -.I Sail +.I sail 海軍の艦長として、プレイヤーは自分の艦の活動については完全な管理ができます。 プレイヤーは全ての操作を命令し、帆装を変更し、そして片舷斉射の恐ろしい破壊力 を解き放つ正しい瞬間を判断しなければなりません。 更に、敵と戦うことに加えて、プレイヤーは、風と海の力を味方につけて -自分のために働かせ -なければなりません。 -帆船時代の多くの海戦の勝敗は、ある一人の艦長の'風上'をとる能力により +自分のために働かせなければなりません。 +帆船時代の多くの海戦の勝敗は、ある一人の艦長の '風上' をとる能力により 決せられました。 .PP フラグは: .TP .B \-s -上位10位までの船員の名前と艦を表示します。 +上位 10 位までの船員の名前と艦を表示します。 .TP .B \-l -ログイン名を表示します。\fB-s\fPとともに指定したときだけ有効です。 +ログイン名を表示します。\fB-s\fP とともに指定したときだけ有効です。 .TP .B \-x どの艦にするかという選択を求められるかわりに、 最初に利用できる艦でプレイします。 .\"X 「を選択して」だと、プレイヤー自身の選択操作が必要に思えるので .TP .B \-b ベルを鳴らしません。 .SH 実装 -.I Sail +.I sail は実は二つのプログラムを一つにまとめたものです。 各プレイヤーは彼自身の船を動作させるプロセスを起動します。 -それに加えて、(最初のプレイヤーによって)起動された +それに加えて、(最初のプレイヤーによって) 起動された .I ドライバ[driver] プロセスが、コンピュータ船を動作させ、 さらに全体にわたる記録計算を引き受けて処理します。 .PP .I ドライバ プロセスは、それが制御している全ての船の動きを計算しなければならないので、 より多くの船をコンピュータがプレイすればするほど、ゲームはよりゆっくり進行 しているように見えるでしょう。 .PP もし、あるプレイヤーが現在進行中のゲームに参加したとすると、 -他のプレイヤーと同期して同じ速度になるでしょう(皆にすれば +他のプレイヤーと同期して同じ速度になるでしょう (皆にすれば 幾分か遅くなります)。 .\"X 一人参加することで、今までプレイしていた人も含めてみんなの状態が .\"X どうなるかを説明しようとしているのでしょう。 そして、その後、彼は他のプレイヤーと同じ速度でプレイするでしょう。 .\"X play along with the rest ... ここで「他のプレイヤーと一緒に」という .\"X 必要はないはず。ならば、「他のプレイヤーと同様に」という意味だろう。 .PP -マルチユーザゲームを Version 7 UNIX\(emこれは -.I Sail -がその上で最初に書かれたオペレーティングシステムでした\(emに実装するためには、 +マルチユーザゲームを Version 7 UNIX \(em これは +.I sail +がその上で最初に書かれたオペレーティングシステムでした \(em +に実装するためには、 通信しているプロセスがメッセージを読み書きする場所として共通の一時ファイル を使う必要がありました。 それに加えて、共有ファイルへの排他的アクセスを保証するため、 ロック機構が供給されなければなりませんでした。 例えば、 .I Sail -はシナリオ21については、/tmp/#sailsink.21という名前の一時ファイルを使います。 +はシナリオ 21 については、 +/tmp/#sailsink.21 という名前の一時ファイルを使います。 そして、他のシナリオに対してはそれに類するファイル名を使用します。 一時ファイルへの排他的アクセスを供給するために、 -.I Sail +.I sail は Jeff Cohen 作の "pubcaves" と呼ばれる古いゲームから盗んだテクニックを 使っています。 -"/tmp/#saillock.??"という名前のファイル -("??" はゲームのシナリオ番号に対応しています)への +"/tmp/#saillock.??" という名前のファイル +("??" はゲームのシナリオ番号に対応しています) への リンクを作成できるまでの間、プロセスが次のようなループ .br .sp .ce 2 for (n = 0; link(sync_file, sync_lock) < 0 && n < 30; n++) sleep(2); .br .sp でビジーウェイトをしています。 UNIX はリンクが唯一つのファイル をポイントするものであることを保証しているので、リンクに成功したプロセスは 一時ファイルへの排他的アクセスを獲得します。 .PP この仕組みが実際に機能するかどうかについては、さらなる考察が必要でしょう。 .\"X is open to speculation ... 「熟慮しないまま放ってある」だと思う。 -それというのも、マシン ucbmiro (=miro.berkeley.edu の BITNET アドレス)が +それというのも、マシン ucbmiro (=miro.berkeley.edu の BITNET アドレス) が 暴走してリブートしたとき、ファイルシステム検査プログラムによって、 -.I Sail +.I sail の一時ファイルとそれがリンクしているファイルの間に、3 個のリンクが発見され ましたから。 .SH プレイヤープロセスとドライバプロセスとを分離した結果 プレイヤー達が移動や発砲などの全体の興味に関わる重要な行動をするときには、 ドライバプロセスはゲーム中の他の船の行動とその行動とを 調整しなければなりません。 例えば、もしあるプレイヤーがある方向に移動したい場合には、彼の 船を移動させることをドライバプロセスに要求するメッセージを、 一時ファイルに書き込まなければ なりません。 ターンのたびに、ドライバプロセスはプレイヤー達から送られたメッセージを 全て読んで、起こったことを決定します。 それから、ドライバプロセスは変数の新しい値などを一時ファイル に書き戻します。 .PP この通信がゲームに及ぼす最も顕著な効果は移動の遅れです。 -もしもプレイヤーが彼の船の移動をタイプして、リターンキイを叩いたとしましょう。 +もしもプレイヤーが彼の船の移動をタイプして、リターンキーを叩いたとしましょう。 次に何が起こるでしょうか? プレイヤープロセスは一時ファイルに書き込むべきメッセージをバッファに 溜込みます。 およそ 7 秒おきに、プレイヤープロセスは一時ファイルへの排他的アクセス を獲得して、そのバッファを一時ファイルに書き出します。 ドライバプロセスは非同期的に動作しています。これは、移動コマンドを 読み込み、そのコマンドを処理し、そしてその結果を書き出さなければなりません。 -これには、一時ファイルへの2回の排他的アクセスを必要とします。 -最後に、プレイヤープロセスがもう1回の更新にやっと取り掛かる頃、 +これには、一時ファイルへの 2 回の排他的アクセスを必要とします。 +最後に、プレイヤープロセスがもう 1 回の更新にやっと取り掛かる頃、 移動の結果がスクリーン上に表示されます。 それゆえ、プレイヤーが自分が行なった移動結果を知るまでに、 移動それぞれにつき、一時ファイルへ排他的アクセス 4 回 -(1回の排他的アクセスに7秒から21秒の間のどれくらいの時間を要するかは、 -非同期性に依存しています)が要求されます。 +(1 回の排他的アクセスに 7 秒から 21 秒の間のどれくらいの時間を要するかは、 +非同期性に依存しています) が要求されます。 .PP 実際は、遅れはそう見えるほどには厄介なものではありません。 移動には、パイプライン処理の余地があります。 プレイヤーは1番めの移動メッセージを書き込んだあと、2番目の移動コマンドを 入力できます。 -1番目のメッセージは、一時ファイルの中でドライバプロセスの読み込みを +1 番目のメッセージは、一時ファイルの中でドライバプロセスの読み込みを 待ちます。そして、 -2番目のメッセージは、ファイルバッファにあってファイルに書き出されるのを待って +2 番目のメッセージは、ファイルバッファにあってファイルに書き出されるのを待って います。 そういうわけで、常に1回だけターンを先行して移動コマンドを打ち込むことで、 プレイヤーはじゅうぶん素早く帆走することができます。 .PP もしプレイヤーが 7 秒間隔の更新 2 回の間に数個の移動コマンドを 打ち込んだとすると、ドライバプロセスに見えるのは最後の移動コマンドだけです。 同じ更新期間中の複数の移動コマンドは、ある意味で互いに上書きし合います。 .SH SAILの歴史 筆者は -.I Sail +.I sail の最初のバージョンを 1980 年の秋に PDP 11/70 の上で書きました。 言うまでもなく、コードは恐ろしいもので、 移植可能とはとうてい言えるものでもなく、そして動きもしませんでした。 プログラムは、全くモジュール化されていない上に、数行おきに fseek() や -fwrite()がありました。 +fwrite() がありました。 トップダウン手法による徹底的な書き換えによって、1981 年までに筆者は最初の 機能するバージョンを仕上げました。 .\"X got .... up の up は「仕上げた」というニュアンスかと。 片舷斉射の発射や方角の発見に関していくつかのやっかいなバグがありました。 ところで、 -.I Sail +.I sail は浮動小数点を使っていません。それで、方角についてのルーチンは、すこし 手が込んだものになっています。 Ed Wangは、1981 年に angle() ルーチンをより間違いのないものに書き換えました。 (しかしながら、それは、まだ完全には機能していません)。 -そして、彼はゲームの始めで(最初に利用可能な船の代わりに)プレイヤーが +そして、彼はゲームの始めで (最初に利用可能な船の代わりに) プレイヤーが 自分の望む船を選べるようなコードを加えました。 .PP -ハッピィ艦長(Craig Leres)が、 -.I Sail +ハッピィ艦長 (Craig Leres) が、 +.I sail を移植可能にすることに初めて責任をもちました。 ちなみに、これはとても難しい仕事でした。2 や 10 といった定数が コードにはとても頻繁に現れます。また、 -.I Sail -の中で「Riggle 記念構造体("Dave Riggle":筆者)」を使ってしまった +.I sail +の中で「Riggle 記念構造体 ("Dave Riggle":筆者)」を使ってしまった ということでも名前を売ってしまったぐらいですし。 筆者の構造体参照の多くはとても長いので、ラインプリンタの印字ページを はみ出してしまいます。もし、笑わないと約束して下さるなら、ここに一例を お見せしましょう。 .br .sp .ce specs[scene[flog.fgamenum].ship[flog.fshipnum].shipnum].pts .br .sp .PP -.I Sail +.I sail には、1983 年の夏と秋に最も徹底的な 4 回目の書き換えがなされました。 Ed Wang はコードを殆ど何もない状態から書き換えモジュール化しました (記念碑的な偉業です)。 彼は、多くの新しいバグを導入したにもかかわらず、最終的な結果は -とても奇麗で、(?)より速いものになりました。彼は、ウィンドウ移動コマンド +とても奇麗で、(?) より速いものになりました。彼は、ウィンドウ移動コマンド と艦船発見コマンドを加えました。 .SH 歴史的情報 -古い横帆船[Square Rigger]は、複雑な帆走が可能で、とても操作しやすい船です。 +古い横帆船 [Square Rigger] は、複雑な帆走が可能で、とても操作しやすい船です。 これら横帆船の唯一つの弱点は、風上にぎりぎりに間切って帆走できない ことです。 木造船の設計は大砲を左舷と右舷の方向に向けることだけを考慮していました。 .\"X 船の設計が考慮するのは大砲ではなく、大砲の狙いの付け方のはず。 -少数の小さな大砲(通常 6 ポンド砲か 9 ポンド砲)だけが前方に狙いをつける +少数の小さな大砲 (通常 6 ポンド砲か 9 ポンド砲) だけが前方に狙いをつける ことができました。しかし、それらの砲は、68 門の 24 ポンド砲か 32 ポンド砲 からなる舷側砲の片舷斉射に比べれば、その効果は小さいものでした。 大砲は大体つぎのような方向に向けられます。 .nf \\ b---------------- ---0 \\ \\ - \\ 10の範囲まで(砲丸[round shot]の場合) + \\ 10の範囲まで (砲丸 [round shot] の場合) \\ \\ \\ .fi 片舷斉射が敵艦の縦方向に打ち抜かれたときには、興味深い現象が起きました。 -砲弾は甲板[こうはん]に沿ってはねまわり数倍の損害を加えがちでした。 -この現象は縦射[rake]と呼ばれました。船の船首[bow]は非常に強固で船尾[stern] -より小さな標的だったので、船尾縦射[stern rake](船尾より船首の方向の着弾) -は船首縦射[bow rake]によるよりも大きな損害を与えました。 +砲弾は甲板 [こうはん] に沿ってはねまわり数倍の損害を加えがちでした。 +この現象は縦射 [rake] と呼ばれました。船の船首 [bow] は非常に強固で船尾 [stern] +より小さな標的だったので、船尾縦射 [stern rake](船尾より船首の方向の着弾) +は船首縦射 [bow rake] によるよりも大きな損害を与えました。 .nf b - 00 ---- 船尾縦射[stern rake]! + 00 ---- 船尾縦射 [stern rake]! a .fi -大抵の船は、カロネード砲[carronade]を装備していました。この大砲は、 +大抵の船は、カロネード砲 [carronade] を装備していました。この大砲は、 非常に大きく、射程距離の短いものでした。 -アメリカの艦船にはフランス革命から 1812 年の戦争(米英戦争)まで、 +アメリカの艦船にはフランス革命から 1812 年の戦争 (米英戦争) まで、 .\"X the revolution はフランス革命でいいと思います。確かフランス革命後の .\"X 英仏対立にアメリカが一口噛んでいたはず。 ほぼすべての艦船に カロネード砲が装備されていました。 .PP -.I Sail +.I sail で扱っている時代は、ほぼ 1770 年代から 1815 年にナポレオンのフランス支配が 終るまでです。 帆船時代に関しては、素晴らしい本が多くあります。筆者の好きな作家は Captain Frederick Marryat です。 もっと現代の作家達の中では、C.S. Forester や Alexander Kent です。 .PP 艦船には、装備された兵器で区別される分類があります。 -どの艦隊でもメインマストをなす艦船は、戦列艦[Ship of the Line]、即ち、 -戦列をなす戦艦[Line of Battle Ship]です。 +どの艦隊でもメインマストをなす艦船は、戦列艦 [Ship of the Line]、即ち、 +戦列をなす戦艦 [Line of Battle Ship] です。 これらの艦船がこのように名付けられた理由は、これらが大きな列 を作って交戦するからです。 彼らは、互いに助け合えるぐらい近くに位置しますが、それでも、 -どの艦もその両舷側の片舷斉射[broadside]を +どの艦もその両舷側の片舷斉射 [broadside] を 発射できるようにします。 -現代の「遠洋定期船[ocean liner]」とか「定期船[liner]」、 -そして「戦艦[battleship]」という言葉は -「戦列艦[Ship of the Line]」から派生したものです。 -最もありふれた分類は、74砲門で2層甲板の戦列艦です。 -2層の砲列甲板には普通18ポンド砲か24ポンド砲が搭載してありました。 +現代の「遠洋定期船 [ocean liner]」とか「定期船 [liner]」、 +そして「戦艦 [battleship]」という言葉は +「戦列艦 [Ship of the Line]」から派生したものです。 +最もありふれた分類は、74 砲門で 2 層甲板の戦列艦です。 +2 層の砲列甲板には普通 18 ポンド砲か 24 ポンド砲が搭載してありました。 .PP -第1に来る分類は、艦隊の誇りとなる船です。 -これらの艦船は、80砲門から136砲門の大砲を搭載した巨大な3層甲板戦列艦です。 -3層の大砲は、普通18ポンド砲、24ポンド砲、そして32ポンド砲でした。 +第 1 に来る分類は、艦隊の誇りとなる船です。 +これらの艦船は、80 砲門から 136 砲門の大砲を搭載した巨大な 3 層甲板戦列艦です。 +3 層の大砲は、普通 18 ポンド砲、24 ポンド砲、そして 32 ポンド砲でした。 これらの大砲は、この順番で上から下に搭載されていました。 .PP 他のさまざまな船が次の分類になります。 -これらの戦艦は殆んど全て「レイジー[razee]」、すなわち、甲板を1層切り落とした +これらの戦艦は殆んど全て「レイジー[razee]」、すなわち、甲板を 1 層切り落とした 戦列艦です。 -これらの戦列艦は、40-64砲門の大砲を搭載した、フリゲート艦[frigate]と戦列艦 +これらの戦列艦は、40-64 砲門の大砲を搭載した、 +フリゲート艦 [frigate] と戦列艦 の貧弱なあいのこです。 .\"X a poor cross ... 粗末なあいのこ?貧弱でどうかな? レイジーには、フリゲート艦のスピードもなければ、戦列艦の火力も ありませんでした。 .PP その次に来る分類が、「艦隊の目」です。 -フリゲート艦[frigate]は32砲門から44砲門の大砲をどこにでも搭載していて +フリゲート艦 [frigate] は 32 砲門から 44 砲門の大砲をどこにでも搭載していて 大きさはさまざまです。 これらは、大変便利な船です。 フリゲート艦は、より大きな船に対しては航行速度でまさり、より小さな船に 対しては火力でまさります。 -フリゲート艦は、ずっと大きな74砲門の戦列艦がやるように戦列を組んで +フリゲート艦は、ずっと大きな 74 砲門の戦列艦がやるように戦列を組んで 戦ったりはしませんでした。 その代わり、これらの船は、敵の背後をおびやかし、傷ついて戦えなくなった船を だ捕しました。 これらの船は、艦隊から離れて行なう任務で、はるかに効果を発揮しました。 例えば、長い航海を短縮するとか、ボートによる戦闘を切り開くとかの任務です。 .\"X boat action ... ??なんか専門用語っポイですな。わからないので .\"X そのままにしときます。 これらは、強力な一撃のあと、ずばやく引くことができました。 .PP -最後に来る分類には、コルベット艦[corvette](平甲板1段砲装の帆装戦艦)、 -スループ帆船[sloop](1本マストの縦帆船)、そして -ブリッグ帆船[brig](2本マストの横帆船)があります。 -これらは、一般的には20砲門以下の大砲を搭載しているより小さな船です。 -コルベット艦は、フリゲート艦よりほんのちょっと小さいだけなので30砲門までの +最後に来る分類には、コルベット艦 [corvette](平甲板 1 段砲装の帆装戦艦)、 +スループ帆船 [sloop](1 本マストの縦帆船)、そして +ブリッグ帆船 [brig](2 本マストの横帆船) があります。 +これらは、一般的には 20 砲門以下の大砲を搭載しているより小さな船です。 +コルベット艦は、フリゲート艦よりほんのちょっと小さいだけなので 30 砲門までの 大砲を載せられたでしょう。 スループ帆船は急送公文書や船客を搬送するのに使われました。 ブリッグ帆船は陸地で囲まれた湖のために建造されたものです。 .\"X you は特定の読者を指すのではなく一般的な人間を指すと思う。 .SH SAIL 固有の詳細 -.I Sail +.I sail では、船は 2 文字で表されます。 -1番目の文字は、船首[bow]を表します。もう1方の文字は、船尾[stern]を表します。 +1 番目の文字は、船首 [bow] を表します。もう 1 方の文字は、 +船尾 [stern] を表します。 .\" WORD: nationarities 船籍(国籍とちゃうか?)[sail.6] 船には、船籍と番号があります。 -ある船籍の最初の船は番号0です。2番目の船は番号1、などなど。 +ある船籍の最初の船は番号 0 です。2 番目の船は番号 1、などなど。 したがって、ゲームの最初の英国船は「b0」と印字されます。 -2番目の英国野郎は「b1」、そして、5番目のスペイン紳士は +2番目の英国野郎は「b1」、そして、5 番目のスペイン紳士は 「s4」となります。 .PP -船は、戦闘帆[Battle Sail]と呼ばれている通常の帆装をつけられます。 -また、それに加えて総帆[Full Sail]と呼ばれる全帆を結びつけられます。 +船は、戦闘帆 [Battle Sail] と呼ばれている通常の帆装をつけられます。 +また、それに加えて総帆 [Full Sail] と呼ばれる全帆を結びつけられます。 .\"X extra canvas ... Battle Sail 状態に加えて帆をつけて Full Sail になる .\"X ということと読んだ> extra 総帆の船は本当に美しい眺めです。 そして、総帆の船は戦闘帆装の船よりずっと速く航行できます。 総帆装についての唯一の問題は、帆と索具に非常に大きな応力がかかるので、 狙い澄ました砲丸は、帆をちりじりに引き裂いてしまうことができるということです。 これにひきかえ、ゆるんだ帆には、砲丸は小さな穴しか開けられません。 -この理由で、総帆装をつけた船では、索具への損傷は2倍になります。 +この理由で、総帆装をつけた船では、索具への損傷は 2 倍になります。 このことで、総帆を使うことを思いとどまらないで下さい。 筆者は、総帆を戦闘たけなわとなるまで維持するのが好きです。 総帆装の船には船籍として大文字を設定します。 例えば、蛙食いのフランス野郎「f0」が総帆であれば、「F0」と印字されます。 .PP -船が、傾いた廃船[listing hulk]になるまで叩き潰されたときは、 +船が、傾いた廃船 [listing hulk] になるまで叩き潰されたときは、 最後まで残っていた者が 「旗を下ろして降伏」します。 この儀式は、船の正式な降伏です。 降伏した船の船籍文字は、「!」として印字されます。 例えば、最後の例のフランス野郎は、すぐに「!0」になるでしょう。 .PP 船が傾いた廃船の段階に至ったときには、 船が出火したり沈没したりする可能性が確率的に生じます。 沈みつつある船は、その船籍として「~」が印字されます。 出火していて、今にも爆発しそうなときには、「#」が印字されます。 .PP だ捕された船はだ捕船回航員の船籍になります。 それゆえ、もしアメリカ船が英国船をだ捕したならば、英国船の船籍として、「a」 が印字されます。 更に、船の番号は最初の番号しだいで「&」,「'」, 「(」, ,「)」, 「*」, 及び 「+」 につけかえられます。 例えば、アメリカ船にだ捕された「b0」は、「a&」となります。 フランス野郎にだ捕された「s4」は「f*」となります。 .PP 究極の例は、もちろん、アメリカ船に捕獲された爆発しそうな イギリス野郎です:「#&」 .SH 移動 多くの人にとって、移動は -.I Sail +.I sail の最も困惑させられる部分でしょう。 -艦船は8方向を向くことができます: +艦船は 8 方向を向くことができます: .nf 0 0 0 b b b0 b b b 0b b 0 0 0 .fi -艦艇が舵を切ると、その船の「船尾[stern]」が動きます。 -「船首[bow]」は、動きません。 +艦艇が舵を切ると、その船の「船尾 [stern]」が動きます。 +「船首 [bow]」は、動きません。 (風が凪いでさえいなければ)、風には関係なく船はいつでも舵を切ることができます。 すべての船は、船足を失ったときには漂流してしまいます。 もし、船が 2 ターンの間に全く前進しなければ、 その船は漂流し始めます。 -もし船が漂流し始めた場合、もし「面舵[right turn]」を切るか、 -「取舵[left turn]」を切る以外のことをしようとしているなら、 +もし船が漂流し始めた場合、もし「面舵 [right turn]」を切るか、 +「取舵 [left turn]」を切る以外のことをしようとしているなら、 舵を切る前にまず前進しなければなりません。 ちなみに、面舵や取舵を切ることはいつでも可能です。 .\"X if it plans ... は、前の move forward before it turns に掛かるの .\"X でしょう。 .PP -.I Sail +.I sail の移動コマンドは、いくつかの前進と旋回からなる文字列です。 例としては、「l3」があります。これは、船に取舵を切らせて、 -3スペース分 +3 スペース分 前進させます。 -上図では、「b0」は7回連続して取舵を切っています。 -.I Sail -が移動入力を催促するときには、データ取り込みのための3文字を印字します。 +上図では、「b0」は 7 回連続して取舵を切っています。 +.I sail +が移動入力を催促するときには、データ取り込みのための 3 文字を印字します。 例えば、 .nf move (7, 4): .fi 最初の数字は、旋回を含めて、移動できる最大数です。 -2番めの数字は、可能な旋回の最大数です。 +2 番めの数字は、可能な旋回の最大数です。 時々、数字の間に引用符号の「'」が印字されます。 もし引用符号があれば、それは、船が漂流していることを意味しています。 このとき、舵を切る前に船足を取り戻すため前進しなければなりません (上の説明を参照のこと)。 上述の例で可能な移動のいくつかは、次のようなものです: .nf move (7, 4): 7 move (7, 4): 1 move (7, 4): d /* 漂流、または 何もしない */ move (7, 4): 6r move (7, 4): 5r1 move (7, 4): 4r1r move (7, 4): l1r1r2 move (7, 4): 1r1r1r1 .fi 横帆船は、風上に向かって帆走することには全く惨めなほど 機能を果たしませんでした。 そのため、移動コマンド列のどこかで風上を向いてしまったら、 移動はそこで止まってしまいます。例えば、 .nf move (7, 4): l1l4 Movement Error; Helm: l1l ------ (Helm = 舵輪、舵の動き) .fi そのうえ、旋回を行なうときにはいつでも、移動の許容限度は最小に -まで低下します(残っているものといえば、新しい態勢で持てるはずのものです)。 +まで低下します (残っているものといえば、新しい態勢で持てるはずのものです)。 要するに、もし風上によりぎりぎりに間切って舵を切れば、 「move」プロンプトに表示される全許容量を帆走することは、 全くできそうにありません。 .PP 昔の帆船の船長たちは、風について常に気を配っていなければなりませんでした。 -.I Sail +.I sail の艦長達も、全く同じです。 船の移動する能力は、風に対する態勢に依存しています。 -可能な角度のうち最善のものは、船尾から45度の方角から風を受けることです。 +可能な角度のうち最善のものは、船尾から 45 度の方角から風を受けることです。 即ち、船尾からちょっとずれた方角からです。 スクリーンの脇に現れる指示によって、風に対する方位全てに対する、その船に 可能な移動を知ることができます。 これは、まず、戦闘帆での速度を示し、 次に、総帆での速度を括弧内に示します。 .nf 0 1(2) \\|/ -^-3(6) /|\\ | 4(7) 3(6) .fi 船の船首(「^」で表します)が上を向いており、風がページの下から上へ 吹いているとしましょう。 -1番下の「3(6)」という数字は、その状況での戦闘帆と総帆での速度を表すでしょう。 -もし、風が(後方)45度から吹いていれば、は「4(7)」移動できます。 -もし、風が帆桁方向から(横風)であれば、「3(6)」です。 +1 番下の「3(6)」という数字は、その状況での戦闘帆と総帆での速度を表すでしょう。 +もし、風が (後方) 45 度から吹いていれば、は「4(7)」移動できます。 +もし、風が帆桁方向から (横風) であれば、「3(6)」です。 もし、風が船首からちょっとずれた方向からであれば、 「1(2)」だけしか移動できません。 風に対面してしまったら、全く移動できません。 風に対面してしまった船は、「枷をかけられた」と言われていました。 .SH 風速と風向き 風速と風向きは画面の脇に小さな風信器として表示されます。 風信器の真中の数字は、風速を表します。 -そして、+から-への向きは、風向きを示します。 -風は+符号(高気圧)から-符号(低気圧)への向きに吹きます。 +そして、+ から - への向きは、風向きを示します。 +風は+符号 (高気圧) から - 符号 (低気圧) への向きに吹きます。 例えば、 .nf | 3 + .fi .PP 風速は、 0 = 静穏 [becalmed]、 1 = 軽風 [light breeze]、 2 = 和風 [moderate breeze]、 3 = 疾風 [fresh breeze]、 4 = 雄風 [strong breeze]、 5 = 疾強風 [gale]、 6 = 全強風 [full gale]、 7 = ぐ風 [hurricane]。 .\" Cf. Beaufort wind scale (Tetsuro Furuya : Translator). ぐ風があらわれたら、全艦船が壊滅してしまいます。 .SH 鈎錨による引っかけと絡まり もし、2隻の船が衝突したら、彼らは互いに絡まってしまう危険を冒しています。 -これは、「絡まり[fouling]」と呼ばれています。 +これは、「絡まり [fouling]」と呼ばれています。 絡まった船は、一緒にくっついてしまい、どちらも動けません。 双方が望む場合、彼らは絡まりを解除することもできます。 乗船乱入団を他の船に送り出せるのは、敵艦を絡めたか鈎錨で引っかけたときに 限られます。 .PP -船は四つ爪錨[grapnel]を他の船の索具[rigging]に投げつけることにより +船は四つ爪錨 [grapnel] を他の船の索具 [rigging] に投げつけることにより 引っかけることができます。 .PP 船が保持している絡まりと鈎錨の引っかけの数は画面の右上に表示されます。 .SH 乗船乱入 乗船乱入は、人命の点からすると非常に費用のかかる冒険でした。 -.I Sail +.I sail では、乗船乱入団が作られるのは次の場合です。 つまり、敵艦に乗船乱入するためか、攻撃に対抗して自分自身の艦を守るため かのいずれかです。 防衛のための乗船乱入団として組織された人々は組織されぬままの人々より2倍も 激しく自艦を守って戦います。 .PP 乗船乱入団の乗船乱入攻撃の強さは、送られる乗員の質と数により決まります。 .SH 乗員の質 英国の船乗りは、彼らの航行能力の優秀さで世界中に盛名を馳せました。 しかし、実は、世界一の船員は、アメリカの船員だったのです。 -何故かといえば、アメリカ海軍は、王立海軍の賃金の2倍を支払ったので、 +何故かといえば、アメリカ海軍は、王立海軍の賃金の 2 倍を支払ったので、 海の好きな英国の船員は数千の単位でアメリカへ逃亡したからです。 .PP -.I Sail -では、乗員の質は、5つのエネルギーレベルに量子化されます。 -「精鋭[Elite]」な乗員は、他の全ての船乗りに対して、 +.I sail +では、乗員の質は、5 つのエネルギーレベルに量子化されます。 +「精鋭 [Elite]」な乗員は、他の全ての船乗りに対して、 射撃能力においても格闘能力においても凌駕できます。 -「一流[Crack]」な乗員が、次に来ます。 -「普通[Mandane]」な乗員は平均的です。 -「未熟[Green]」な乗員と「反抗的[Mutinous]」な乗員は、平均以下です。 +「一流 [Crack]」な乗員が、次に来ます。 +「普通 [Mandane]」な乗員は平均的です。 +「未熟 [Green]」な乗員と「反抗的 [Mutinous]」な乗員は、平均以下です。 上手な目の子勘定としては、「一流」と「精鋭」な乗員は 「普通」な乗員に比して片舷斉射あたり 1 発余分に命中させます。 「未熟」な乗員にはあまり多くを期待しないことです。 .SH 舷側砲[broadsides] -各舷側砲[broadsides]には、次の 4 種類の砲弾を装填できます: -ぶどう弾[grape]、鎖弾[chain]、砲丸[round]、2連発[double]。 -大砲[gun]とカロネード砲[carronade]を、左舷[port]と右舷[starboard]の両砲郭に +各舷側砲 [broadsides] には、次の 4 種類の砲弾を装填できます: +ぶどう弾 [grape]、鎖弾 [chain]、砲丸 [round]、2 連発 [double]。 +大砲 [gun] とカロネード砲 [carronade] を、 +左舷 [port] と右舷 [starboard] の両砲郭に 搭載できます。 -カロネード砲[carronade]は2の射程距離しかありません。 +カロネード砲 [carronade] は 2 の射程距離しかありません。 そのため、カロネード砲を発射できるほど近付かなければなりません。 -他の船の船殻[hull]を砲撃するか、索具[rigging]を砲撃するかを +他の船の船殻 [hull] を砲撃するか、索具 [rigging] を砲撃するかを 選択することができます。 もし船の距離が 6 よりも遠ければ、読者は索具を砲撃できるだけです。 .PP 砲弾の型とその長所は: .SH 砲丸[round] 10 の射程距離。船殻と索具のいずれの砲撃にも適しています。 .SH 2 連発[double] 1 の射程距離。船殻と索具のいずれの砲撃にも非常に適しています。 2 連発は、装填するのに 2 ターンが必要です。 .SH 鎖弾[chain] 3 の射程距離。 索具を粉砕してしまうのに特に優れています。 しかし、船殻や大砲に損害を加えることはできません。 .SH ぶどう弾[grape] 1 の射程距離。 たまに、敵乗員に圧倒的な効果を示します。 .PP スクリーンの脇には、自分の船に関する極めて重要な情報が表示されます: .nf Load D! R! Hull 9 Crew 4 4 2 Guns 4 4 Carr 2 2 Rigg 5 5 5 5 .fi -「Load(装填)」は、左舷と右舷それぞれの砲に +「Load (装填)」は、左舷と右舷それぞれの砲に どのような砲弾が装填されているかを示します。 砲弾の後の「!」はそれが最初の片舷斉射であることを示します。 最初の片舷斉射は、戦闘の前に、そして甲板が血で真っ赤に染まる前に、 注意深く装填されています。 その結果、最初の片舷斉射は、後で装填したときの片舷斉射より若干効果的です。 砲弾の型のあとの「*」は、砲側員がまだその砲弾を装填中で、 まだ発砲できないことを示します。 -「Hull(船殻)」は、どれくらいの船殻が残されているかを示します。 -「Crew(乗員)」は、3つの区画ごとの乗員を示します。 +「Hull (船殻)」は、どれくらいの船殻が残されているかを示します。 +「Crew (乗員)」は、3 つの区画ごとの乗員を示します。 乗員が死ぬにつれて、読者は砲撃力を失なっていきます。 -「Guns(大砲)」と「Carr(カロネード砲)」は、左舷と右舷の +「Guns (大砲)」と「Carr (カロネード砲)」は、左舷と右舷の 大砲を示します。 大砲を失うと、それだけ砲撃力を失います。 -「Rigg(索具)」は、3本マストや4本マストにどれくらいの索具が残って +「Rigg (索具)」は、3 本マストや 4 本マストにどれくらいの索具が残って いるかを示します。 索具が打ち払われるにつれて、機動力が失われてゆきます。 .SH 砲撃の効果 船が雷のような大音響をとどろかせて片舷の砲を発射するときは、とても 劇的です。 しかし、ただ行き当たりばったりに片舷斉射を行なっても、 命中は全く保証されません。 片舷斉射の破壊力には、多くの要素が影響します。 まず第一の、そして、主要な要因は、距離です。 -10の距離にある船を砲撃する方が、すぐ横に並んで波を蹴立てて進んでいる +10 の距離にある船を砲撃する方が、すぐ横に並んで波を蹴立てて進んでいる 船を砲撃するより困難です。 -次は、縦射[rake]です。 +次は、縦射 [rake] です。 以前に記述した通り、縦射砲撃は、10 の距離にある船の帆柱 をときには折り倒すことができます。 その次には、乗員の数と質が片舷斉射による損害に影響します。 発砲する大砲の数もまた、いわば、実を結んで得点になると言えます。 最後に、天候が片舷斉射の正確さに影響します。 -もしも、波が高ければ(5または6)、戦列艦は下側の砲門を開くことさえできず、 +もしも、波が高ければ (5 または 6)、戦列艦は下側の砲門を開くことさえできず、 大砲を出せません。 このことにより、嵐の中では、フリゲート艦や他の平甲板の船は有利になります。 シナリオの .I Pellew vs. The Droits de L'Homme -(ペルー艦長対人権号)は、この特殊な状況を利用しています。 +(ペルー艦長対人権号) は、この特殊な状況を利用しています。 .SH 修理 -船殻、大砲、索具に対して修理を行なうことができます。3ターンにつき -2ポイントの遅い割合で修理が進みます。 -それ以上の修理ができなくなったときには、「修理完了[Repair Completed]」の +船殻、大砲、索具に対して修理を行なうことができます。3 ターンにつき +2 ポイントの遅い割合で修理が進みます。 +それ以上の修理ができなくなったときには、「修理完了 [Repair Completed]」の メッセージが表示されます。 .SH コンピュータ船の特性 -.I Sail +.I sail におけるコンピュータ船は、上述の全ての規則に従いますが、しかし少数の 例外があります。 コンピュータ船は、決して損害を修理しません。 もし、コンピュータ船が修理をしたら、プレイヤー達はコンピュータ船に決して 勝てないでしょう。 しかし、今のままでも既に彼らは、十分良くやっています。 -慰めとして、コンピュータ船はターンごとに2連発の砲撃を行なえます。 +慰めとして、コンピュータ船はターンごとに 2 連発の砲撃を行なえます。 まぐれ当たりもあるので、プレイヤーの船は 近付かないのが、合理的というものでしょう。 .I ドライバプロセス が、コンピュータ船の動きを計算します。 .I ドライバプロセス は、典型的な A.I. の距離関数と縦型検索によってコンピュータ船の動きを 計算することで、 最高「得点」を発見します。 これは、かなりうまく機能しているように見えます。 -しかしながら、このA.I.が完璧でないことは筆者が真っ先に認めましょう。 +しかしながら、この A.I. が完璧でないことは筆者が真っ先に認めましょう。 .SH 遊び方 -.I Sail -にコマンドを与えるには、文字を1文字タイプします。 +.I sail +にコマンドを与えるには、文字を 1 文字タイプします。 そのとき、更に入力するよう催促されます。 コマンドの短い要約を次に示します。 .br .SH コマンドの要約 .nf 'f' 可能なら、片舷斉射を行ないます 'l' 再装填 - 'L' 舷側砲から弾を抜きます(弾薬を交換するため) + 'L' 舷側砲から弾を抜きます (弾薬を交換するため) 'm' 移動 'i' 最寄りの船を表示 'I' 全艦船を表示 - 'F' 特定パターンの船を1隻または数隻探します(例えば、全アメリカ船は「a?」) + 'F' 特定パターンの船を 1 隻または数隻探します (例えば全アメリカ船は「a?」) 's' 艦隊全体にメッセージを送信 'b' 敵艦への乗船乱入の試み 'B' 乗船乱入隊を呼び返します 'c' 帆装を交換 'r' 修理 'u' 絡んだ索具をほどく試み 'g' 鈎錨を引っかける/はずす - 'v' ゲームのバージョンナンバーの表示 + 'v' ゲームのバージョンナンバの表示 '^L' 画面の再描画 'Q' 終了 'C'\ \ \ \ \ 読者の船をウィンドウの真中にします 'U'\ \ \ \ \ ウィンドウを上へ移動 'D','N'\ ウィンドウを下へ移動 'H'\ \ \ \ \ ウィンドウを左へ移動 'J'\ \ \ \ \ ウィンドウを右へ移動 'S'\ \ \ \ \ ウィンドウを自分の船についていかせるか今の位置を保つかを反転 .fi .bg .SH シナリオ 以下に、 -.I Sail +.I sail のシナリオの要約を示します: .br .SH Ranger vs. Drake: .nf 北からの風、疾風。 (a) Ranger 19 砲門 スループ帆船 (一流の乗員) (7 点) (b) Drake 17 砲門 スループ帆船 (一流の乗員) (6 点) .SH The Battle of Flamborough Head: .nf 南からの風、疾風。 .fi これは、ジョン・ポール・ジョーンズの最初の有名な海戦です。 ボノム・リシャールに乗り組んだ彼は、素早くセラピスに乗船乱入したおかげで、 セラピスの優勢な火力を克服できました。 .nf (a) Bonhomme Rich 42 砲門 コルベット艦 (一流の乗員) (11 点) (b) Serapis 44 砲門 フリゲート艦 (一流の乗員) (12 点) .SH Arbuthnot and Des Touches: .nf 北からの風、疾強風。 (b) America 64 砲門 戦列艦 (一流の乗員) (20 点) (b) Befford 74 砲門 戦列艦 (一流の乗員) (26 点) (b) Adamant 50 砲門 戦列艦 (一流の乗員) (17 点) (b) London 98 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (b) Royal Oak 74 砲門 戦列艦 (一流の乗員) (26 点) (f) Neptune 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Duc de Bourgogne 80 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) (f) Conquerant 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Provence 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Romulus 44 砲門 戦列艦 (平均の乗員) (10 点) .SH Suffren and Hughes: .nf 南からの風、疾風。 (b) Monmouth 74 砲門 戦列艦 (平均の乗員) (24 点) (b) Hero 74 砲門 戦列艦 (一流の乗員) (26 点) (b) Isis 50 砲門 戦列艦 (一流の乗員) (17 点) (b) Superb 74 砲門 戦列艦 (一流の乗員) (27 点) (b) Burford 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Flamband 50 砲門 戦列艦 (平均の乗員) (14 点) (f) Annibal 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Severe 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Brilliant 80 砲門 戦列艦 (一流の乗員) (31 点) (f) Sphinx 80 砲門 戦列艦 (平均の乗員) (27 点) .SH Nymphe vs. Cleopatre: .nf 南よりの風、疾風。 (b) Nymphe 36 砲門 フリゲート艦 (一流の乗員) (11 点) (f) Cleopatre 36 砲門 フリゲート艦 (平均の乗員) (10 点) .SH Mars vs. Hercule: 南からの風、疾風。 .nf (b) Mars 74 砲門 戦列艦 (一流の乗員) (26 点) (f) Hercule 74 砲門 戦列艦 (平均の乗員) (23 点) .SH Ambuscade vs. Baionnaise: .nf 北からの風、疾風。 (b) Ambuscade 32 砲門 フリゲート艦 (平均の乗員) (9 点) (f) Baionnaise 24 砲門 コルベット艦 (平均の乗員) (9 点) .SH Constellation vs. Insurgent: .nf 南からの風、疾強風。 (a) Constellation 38 砲門 コルベット艦 (精鋭な乗員) (17 点) (f) Insurgent 36 砲門 コルベット艦 (平均の乗員) (11 点) .SH Constellation vs. Vengeance: .nf 南からの風、疾風。 (a) Constellation 38 砲門 コルベット艦 (精鋭な乗員) (17 点) (f) Vengeance 40 砲門 フリゲート艦 (平均の乗員) (15 点) .SH The Battle of Lissa: .nf 南からの風、疾風。 (b) Amphion 32 砲門 フリゲート艦 (精鋭な乗員) (13 点) (b) Active 38 砲門 フリゲート艦 (精鋭な乗員) (18 点) (b) Volage 22 砲門 フリゲート艦 (精鋭な乗員) (11 点) (b) Cerberus 32 砲門 フリゲート艦 (精鋭な乗員) (13 点) (f) Favorite 40 砲門 フリゲート艦 (平均の乗員) (15 点) (f) Flore 40 砲門 フリゲート艦 (平均の乗員) (15 点) (f) Danae 40 砲門 フリゲート艦 (一流の乗員) (17 点) (f) Bellona 32 砲門 フリゲート艦 (未熟な乗員) (9 点) (f) Corona 40 砲門 フリゲート艦 (未熟な乗員) (12 点) (f) Carolina 32 砲門 フリゲート艦 (未熟な乗員) (7 点) .SH Constitution vs. Guerriere: .nf 南西からの風、疾強風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Guerriere 38 砲門 フリゲート艦 (一流の乗員) (15 点) .SH United States vs. Macedonian: .nf 南からの風、疾風。 (a) United States 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) (b) Macedonian 38 砲門 フリゲート艦 (一流の乗員) (16 点) .SH Constitution vs. Java: .nf 南からの風、疾風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Java 38 砲門 コルベット艦 (一流の乗員) (19 点) .SH Chesapeake vs. Shannon: .nf 南からの風、疾風。 (a) Chesapeake 38 砲門 フリゲート艦 (平均の乗員) (14 点) (b) Shannon 38 砲門 フリゲート艦 (精鋭な乗員) (17 点) .SH The Battle of Lake Erie: .nf 南からの風、軽風。 (a) Lawrence 20 砲門 スループ帆船 (一流の乗員) (9 点) (a) Niagara 20 砲門 スループ帆船 (精鋭な乗員) (12 点) (b) Lady Prevost 13 砲門 ブリッグ帆船 (一流の乗員) (5 点) (b) Detroit 19 砲門 スループ帆船 (一流の乗員) (7 点) (b) Q. Charlotte 17 砲門 スループ帆船 (一流の乗員) (6 点) .SH Wasp vs. Reindeer: .nf 南からの風、軽風。 (a) Wasp 20 砲門 スループ帆船 (精鋭な乗員) (12 点) (b) Reindeer 18 砲門 スループ帆船 (精鋭な乗員) (9 点) .SH Constitution vs. Cyane and Levant: .br .nf 南からの風、和風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Cyane 24 砲門 スループ帆船 (一流の乗員) (11 点) (b) Levant 20 砲門 スループ帆船 (一流の乗員) (10 点) .br .SH Pellew vs. Droits de L'Homme: .nf 北からの風、疾強風。 (b) Indefatigable 44 砲門 フリゲート艦 (精鋭な乗員) (14 点) (b) Amazon 36 砲門 フリゲート艦 (一流の乗員) (14 点) (f) Droits L'Hom 74 砲門 戦列艦 (平均の乗員) (24 点) .SH Algeciras: .nf 南西からの風、和風。 (b) Caesar \080 砲門 戦列艦 (一流の乗員) (31 点) (b) Pompee \074 砲門 戦列艦 (一流の乗員) (27 点) (b) Spencer \074 砲門 戦列艦 (一流の乗員) (26 点) (b) Hannibal \098 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (s) Real-Carlos 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (s) San Fernando \096 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点) (s) Argonauta \080 砲門 戦列艦 (未熟な乗員) (23 点) (s) San Augustine \074 砲門 戦列艦 (未熟な乗員) (20 点) (f) Indomptable \080 砲門 戦列艦 (平均の乗員) (27 点) (f) Desaix \074 砲門 戦列艦 (平均の乗員) (24 点) .SH Lake Champlain: .nf 北からの風、疾風。 (a) Saratoga 26 砲門 スループ帆船 (一流の乗員) (12 点) (a) Eagle 20 砲門 スループ帆船 (一流の乗員) (11 点) (a) Ticonderoga 17 砲門 スループ帆船 (一流の乗員) (9 点) (a) Preble \07 砲門 ブリッグ帆船 (一流の乗員) (4 点) (b) Confiance 37 砲門 フリゲート艦 (一流の乗員) (14 点) (b) Linnet 16 砲門 スループ帆船 (精鋭な乗員) (10 点) (b) Chubb 11 砲門 ブリッグ帆船 (一流の乗員) (5 点) .SH Last Voyage of the USS President: .nf 北からの風、疾風。 (a) President 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) (b) Endymion 40 砲門 フリゲート艦 (一流の乗員) (17 点) (b) Pomone 44 砲門 フリゲート艦 (一流の乗員) (20 点) (b) Tenedos 38 砲門 フリゲート艦 (一流の乗員) (15 点) .SH Hornblower and the Natividad: .nf 東からの風、疾強風。 .fi ホーニィ・ファンの読者のためのシナリオです。 思い起こしていただきたい事は、 ホーンブロワーは、大きな不利と風に抗してナティビダッドを沈めたことです。 ヒント:ナティビダッドに乗船乱入しようとしないで下さい。 この船の乗員は、未熟ではありますが、ずっと多いのです。 .nf (b) Lydia 36 砲門 フリゲート艦 (精鋭な乗員) (13 点) (s) Natividad 50 砲門 戦列艦 (未熟な乗員) (14 点) .SH Curse of the Flying Dutchman(さまよえるオランダ人の呪い): .nf 南からの風、疾風。 -ちょっとした戯れです。Piece of Cakeの側を取って下さい。 +ちょっとした戯れです。Piece of Cake の側を取って下さい。 (s) Piece of Cake \024 砲門 コルベット艦 (平均の乗員) (9 点) (f) Flying Dutchy 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) .SH The South Pacific: .nf 南からの風、雄風。 (a) USS Scurvy 136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点) (b) HMS Tahiti 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (s) Australian \032 砲門 フリゲート艦 (平均の乗員) (9 点) (f) Bikini Atoll \0\07 砲門 ブリッグ帆船 (一流の乗員) (4 点) .SH Hornblower and the battle of Rosas bay: .nf 東からの風、疾風。 ホーンブロワーが負けた唯一の海戦です。 しかし、彼は1隻の船のマストを折り、他の船達に船尾縦射を撃ちました。 あなたも同じだけの戦果が挙げられるでしょうか。 .nf (b) Sutherland \074 砲門 戦列艦 (一流の乗員) (26 点) (f) Turenne \080 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) (f) Nightmare \074 砲門 戦列艦 (平均の乗員) (24 点) (f) Paris 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (f) Napoleon \074 砲門 戦列艦 (未熟な乗員) (20 点) .SH Cape Horn: .nf 北東からの風、雄風。 (a) Concord \080 砲門 戦列艦 (平均の乗員) (27 点) (a) Berkeley \098 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (b) Thames 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (s) Madrid 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (f) Musket \080 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) .SH New Orleans: .nf 南東からの風、疾風。 -小さなCypressが行ってしまうのに気をつけて下さい! +小さな Cypress が行ってしまうのに気をつけて下さい! (a) Alligator 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (b) Firefly \074 砲門 戦列艦 (一流の乗員) (27 点) (b) Cypress \044 砲門 フリゲート艦 (精鋭な乗員) (14 点) .SH Botany Bay: .nf 北からの風、疾風。 (b) Shark 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Coral Snake 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (f) Sea Lion 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) .SH Voyage to the Bottom of the Sea: .nf 北西からの風、疾風。 このシナリオは、Richard BasehartとDavid Hedisonに捧げるものです。 (a) Seaview 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (a) Flying Sub \040 砲門 フリゲート艦 (一流の乗員) (17 点) (b) Mermaid 136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点) (s) Giant Squid 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) .SH Frigate Action: .nf 東からの風、疾風。 (a) Killdeer 40 砲門 フリゲート艦 (平均の乗員) (15 点) (b) Sandpiper 40 砲門 フリゲート艦 (平均の乗員) (15 点) (s) Curlew 38 砲門 フリゲート艦 (一流の乗員) (16 点) .SH The Battle of Midway: .nf 東からの風、和風。 (a) Enterprise \080 砲門 戦列艦 (一流の乗員) (31 点) (a) Yorktown \080 砲門 戦列艦 (平均の乗員) (27 点) (a) Hornet \074 砲門 戦列艦 (平均の乗員) (24 点) (j) Akagi 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (j) Kaga \096 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点) (j) Soryu \080 砲門 戦列艦 (未熟な乗員) (23 点) .SH Star Trek: .nf 南からの風、疾風。 (a) Enterprise 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Yorktown 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Reliant 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Galileo 450 砲門 戦列艦 (精鋭な乗員) (75 点) (k) Kobayashi Maru 450 砲門 戦列艦 (精鋭な乗員) (75 点) (k) Klingon II 450 砲門 戦列艦 (精鋭な乗員) (75 点) (o) Red Orion 450 砲門 戦列艦 (精鋭な乗員) (75 点) (o) Blue Orion 450 砲門 戦列艦 (精鋭な乗員) (75 点) .SH 結語 -.I Sail +.I sail は共同作業の成果です。 .SH 作者 Dave Riggle .SH 共作者 Ed Wang .SH 改訂 Craig Leres .SH 顧問 .nf Chris Guthrie Captain Happy Horatio Nelson そして他の多くの優れた人々... .fi .SH 参考文献 .nf Wooden Ships & Iron Men, by Avalon Hill Game Co. (ボードゲーム) Captain Horatio Hornblower Novels, (13 of them) by C.S. Forester 「海の男/ホーンブロワー・シリーズ」 早川書房、セシル・スコット・フォレスター Captain Richard Bolitho Novels, (12 of them) by Alexander Kent 「海の勇士/ボライソー・シリーズ」 早川書房、アレグザンダー・ケント The Complete Works of Captain Frederick Marryat, (about 20) Captain Frederick Marryat全集, (約20)特に .in +6n Mr. Midshipman Easy Peter Simple Jacob Faithful Japhet in Search of a Father Snarleyyow, or The Dog Fiend Frank Mildmay, or The Naval Officer .in -6n .SH バグ 多分、少しはあると思います。 もし、バグを見つけたらどうか -"riggle@ernie.berkeley.edu"と -"edward@ucbarpa.berkeley.edu"にお知らせ下さい。 +"riggle@ernie.berkeley.edu" と +"edward@ucbarpa.berkeley.edu" にお知らせ下さい。 .\" Translated by Tetsuro FURUYA , on Dec 2, 1998. .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja/man/man7/security.7 b/ja/man/man7/security.7 index 56233c0056..80cd987d20 100644 --- a/ja/man/man7/security.7 +++ b/ja/man/man7/security.7 @@ -1,668 +1,668 @@ .\" Copyright (c) 1998, Matthew Dillon. Terms and conditions are those of .\" the BSD Copyright as specified in the file "/usr/src/COPYRIGHT" in .\" the source tree. .\" .\" %Id: security.7,v 1.4.2.1 1999/04/01 02:10:38 ghelmer Exp % .\" .\" jpman %Id: security.7,v 1.3 1999/02/11 11:18:48 vanitas Stab % .Dd December 20, 1998 .Dt SECURITY 7 .Os .Sh 名称 .Nm security .Nd FreeBSD におけるセキュリティ入門 .Sh 解説 .Pp セキュリティは、システム管理者とともに始まり、システム管理者と ともに終る機能です。 .Bx システムは昔からすべてマルチユーザに対応しています。セキュリティの仕組みを 組み込んで維持することで、ユーザを .Sq 正直に し続ける仕事は、システム管理者の最も大きな責務の一つでしょう。マシンは、 管理者が設定しただけのセキュリティしか示しません。セキュリティに関する 問題は、むしろ、便利さを求める人間との競合問題です。一般に、 .Ux システムは莫大な数のプロセスを同時に実行させることができ、 それも、サーバとして動作するものが多いのです。つまり、外部の何者かが 接続してきて、サーバプロセスと会話することができるということなのです。 昨日まで使われていたミニコンピュータやメインフレームは、今日では デスクトップコンピュータが取って代わり、しかも、それらはネットワークで結ばれて インターネットと接続されるようになりました。これにより、セキュリティは 昔と比べてはるかに大きな問題となっています。 .Pp セキュリティに関する問題は、いくつかのカテゴリに分類することができます。 .Bl -enum -offset indent .It サービス不能攻撃 .It ユーザアカウントにかかる危険 .It アクセス可能なサーバを経由した root 権限にかかる危険 .It ユーザアカウントを通した root 権限にかかる危険 .El .Pp サービス不能攻撃とは、マシンから必要な資源を奪う行為です。 サービス不能攻撃は、普通は、そのマシンで実行されるサーバや ネットワークスタックを圧倒して、マシンをクラッシュさせたり、 さもなければマシンを使えなくしたりするような力任せの方法です。 サービス不能攻撃のいくつかは、 ネットワークスタックのバグを利用して、パケット一つでマシンを クラッシュさせようとします。後者は、 カーネルにバグ修正を施すことによってのみ修正することができます。 サーバプロセスに対する攻撃は、サーバのオプションを適切に指定して、 不利な状況にあるシステムにおいて、サーバプロセスが引き起こす負荷に限界を設けることで 修正することができます。これらに比べると、ネットワークへの力任せの攻撃への 対応はずっと難しくなります。たとえば、偽造パケットによる攻撃 .Pq spoof-packet attack は、インターネットからシステムを切り離す以外の方法で防ぐことは ほとんど不可能です。 .Pp ユーザアカウントを危険に晒してしまう問題は、サービス不能攻撃よりもずっとよくある 問題です。このご時勢でも、自分たちのマシンで標準の telnetd, rlogind, rshd, ftpd サーバを実行させているシステム管理者は多いのです。これらの サーバは、デフォルトでは、暗号化されたコネクション上で動作していません。 その結果、抱えているユーザ数が標準くらいであれば、リモートログイン .Po そのシステムにログインするには最も普通で便利な方法です .Pc しているユーザのうち一人以上は、パスワードを覗き見られて しまうでしょう。 システム管理者が注意深い人ならば、たとえログインが成功していたとしても、 リモートアクセスログをときどき解析して、疑わしいソースアドレスを探すものです。 .Pp ひとたび攻撃者がユーザアカウントへのアクセス権を入手すると、攻撃者が root の権限を破る可能性があることを仮定するべきです。しかし、 セキュリティを十分維持し、手入れの行き届いたシステムにおいては、 あるユーザアカウントへのアクセスが可能となっても、攻撃者に必ずしも root へのアクセス権を与えるとは限らないのが現実です。この違いは重要です。 というのは、root へのアクセス権がなければ、一般的に、攻撃者は自分の 侵入の痕跡を隠蔽することができませんし、そのユーザのファイルを消して マシンをクラッシュさせることができるのがせいぜいで、他のユーザの ファイルには手出しできません。 .Pp システム管理者は、あるマシン上で root の権限を破る方法がいくつかあることを 心しておかねばなりません。攻撃者が root のパスワードを知ってしまうかも しれません。攻撃者が root の権限で実行されるサーバのバグを見つけ、 ネットワークからそのサーバへ接続して root の権限を破ることができるかも しれません。ひとたびユーザアカウントを破ると、ユーザアカウントから root の権限を破ることが可能であるというバグを持つ suid-root プログラムの 存在を、攻撃者は知っているかもしれません。 .Pp セキュリティを改善する方法は、常に、 .Sq タマネギの皮剥き のように 複数の層のアプローチで実装されます。これらは次のように分類できます。 .Bl -enum -offset indent .It root とスタッフのアカウントの安全性を高める。 .It root の安全性を高める - root 権限のサーバと suid/sgid バイナリ。 .It ユーザアカウントの安全性を高める。 .It パスワードファイルの安全性を高める。 .It カーネルのコア、raw デバイス、ファイルシステムの安全性を高める。 .It ファイルの完全性のチェック: バイナリ、設定ファイルなど。 .It 偏執狂的方法。 .El .Sh root アカウントとスタッフアカウントの安全性を高める .Pp root のアカウントの安全性を確保しないうちからスタッフのアカウントの安全性を うんぬんしてもしかたがありません。ほとんどのシステムでは、root アカウントに 割り当てたパスワードがひとつあります。まず最初にすべきことは、 このパスワードは .Sq いつでも 危険に晒されていると仮定することです。root アカウントの安全性を確保する ためには、ネットワーク越しに、あるいはどれか一般ユーザのアカウントから、 root のパスワードを使って root アカウントにログインすることが決して できないことを確認することです。正しいパスワードが与えられようが 与えられまいが、telnetd, rlogind, その他ログイン処理を行なうサーバ すべてで root でのログインを拒絶するように設定していないのであれば、 今すぐ必ず設定して下さい。直接 root でログインできるのは、 システムコンソールからだけにして下さい。ここで役に立つのが .Sq /etc/ttys ファイルです。ほとんどのシステムでは、デフォルトで安全ですが、 優れたシステム管理者は、設定がそうなっているか常にチェックを怠らない ものです。 .Pp システム管理者として、自分は root になれるようにしておかねばならないの はもちろんですから、穴をいくつか空けておきます。しかし、それらの穴を 動作させるには、さらに追加のパスワード認証が必要であるようにして おきます。root でアクセス可能とする方法の一つとして、 適切なスタッフアカウントを .Pq Pa /etc/group の wheel グループに加えることがあります。 wheel グループに置かれたスタッフメンバには、 .Sq su を使って root になることが許されます。スタッフメンバに、 パスワードファイルのエントリでそのまま wheel のアクセス権を 与えてはいけません。スタッフは、 .Sq staff かその類のグループに置き、その中で本当に root になる必要がある人 だけを wheel グループに加えるようにします。しかし、残念ながら、wheel の -仕組みだけだと、侵入者は、パスワードファイルを手に入れるとルート権限を +仕組みだけだと、侵入者は、パスワードファイルを手に入れると root 権限を 破ることができてしまいます。攻撃者が破る必要があるのは root のパスワード か、wheel グループにたまたま属するstaff アカウントのパスワードどれかひとつだけだからです。 wheel の仕組みは有益ですが、wheel グループがまったく存在しない状況と比べてそれほど 安全なわけではありません。 .Pp root アカウントの安全性を高める間接的な方法として、別のログインアクセス の方法を用いて、スタッフのアカウントの暗号化パスワードを\ * にして おくことで、スタッフのアカウントの安全性を高めるものがあります。この方法 だと、侵入者がパスワードファイルを盗むことができるかもしれませんが、 スタッフアカウントを破ることはできないでしょう。また、たとえ root が暗号化 パスワードをパスワードファイルに付けていたとしても、間接的には root アカウントも破ることができないでしょう。 スタッフメンバがスタッフアカウントでログインする際には、 .Xr kerberos 1 や .Xr ssh 1 .Po .Pa /usr/ports/security/ssh 参照 .Pc のような、公開鍵 / 秘密鍵の鍵の組を使う 安全性の高いログインの仕組みを使います。kerberos のような仕掛けを使う場合、 一般に、kerberos サーバを実行するマシンと自分のデスクトップ ワークステーションとの安全性を確保しなければなりません。ssh で 公開鍵 / 秘密鍵の組を使う場合、一般に、ログイン元マシン .Pq 通常は自分のワークステーション の安全性を確保しなければなりません。ここで、 .Xr ssh-keygen 1 で公開鍵 / 秘密鍵の組を生成する際、鍵の組をパスワードで防御することにより、 鍵の組への防御層を追加することもできます。スタッフアカウントの パスワードを\ * で外すことができると、管理者自身が設定 した安全性の高い方法でしかスタッフメンバがログインできないことも保証 できます。こうして、多くの侵入者が使う重大なセキュリティの穴 .Pq 安全性の低い無関係なマシンからネットワークを覗き見る方法 を塞ぐようなセッションを提供する、安全性の高い暗号化されたコ ネクションを使うことを、スタッフメンバ全員に強制することができ るのです。 .Pp より間接的なセキュリティの仕組みでは、制限の強いサーバから制限の弱い サーバへログインすることを前提としています。例えば、メインマシンで、 様々な種類のサーバを実行させている場合、ワークステーションではそれらの サーバを実行させてはなりません。ワークステーションを十分に 安全にしておくためには、実行するサーバの数を、一つもサーバ が実行されていないというくらいにまでできる限り減らすべきです。 また、パスワードで保護されたスクリーンセーバを走らせておくべきです。 ワークステーションへの物理的アクセスが与えられたとすると、もちろん 言うまでもなく、攻撃者は管理者が設定したいかなる種類のセキュリティ をもうち破ることができるのです。これは、管理者として必ず考えておか ねばならない問題ですが、システム破りの大多数は、ネットワーク経由で リモートから、ワークステーションやサーバへの物理的アクセス手段を持 たない人々によって行われるという事実もまた、念頭に置いておく必要 があります。 .Pp kerberos のような方法を使うことで、スタッフアカウントのパスワードの変更 もしくは停止を一箇所で行なうことと、スタッフメンバがアカウントを持つ すべてのマシンに即時にその効果を及ぼすことが可能となります。スタッフメンバの アカウントが危険に晒されたときに、すべてのマシンでスタッフメンバのパスワードを 即座に変更する能力を過小評価してはいけません。パスワードが分散されている状況では、 N 台のマシンでパスワードを変更すると、てんやわんやの事態を招く可能性が あります。kerberos を使用すると、パスワードの再発行に制限 .Pq re-passwording restriction を課することもできます。この機能を使うことにより、 ある kerberos チケットをしばらく経つとタイムアウトにすることが できるだけでなく、一定期間 .Pq 例えば、1 ヶ月に 1 回 経つと、ユーザに新しいパスワードを選ぶように要求することもできます。 .Sh root の安全性を高める - root 権限のサーバと suid/sgid バイナリ .Pp 用心深いシステム管理者は、自分に必要なサーバプロセスだけを過不足なく 実行させるものです。第三者製のサーバは、よくバグを持っていがちだと いうことに注意して下さい。例えば、古いバージョンの imapd や popper を実行させておくのは、全世界に共通の root の切符を与えてい るようなものです。 自分で注意深くチェックしていないサーバは、決して実行してはいけません。 root で実行させる必要のあるサーバはほとんどありません。例えば、ntalk, comsat, finger デーモンを、特別の「砂場 .Pq sandbox 」ユーザで実行させることができます。 .\"kuma hellofalot of trouble って何や? .\" hell of a lot of trouble みたいですね。;-) (金ん田 '99.02.11) 管理者が膨大な数の問題に直面していないのなら、この「砂場」は完璧では ありませんが、セキュリティに関するタマネギ的アプローチはここでも 成り立ちます。砂場で実行されているサーバプロセスを経由して侵入を 果たすことができたとしても、攻撃者はさらに砂場から外に脱出しなければ なりません。攻撃者が通過せねばならない層の数が増えれば増えるほど、 それだけ攻撃者が侵入に成功する確率が減ります。root の抜け穴は 歴史的に、基本システムサーバも含め、 root 権限で実行されるほとんどすべてのサーバプロセスで発見されています。 ユーザが sshd 経由でのみログインし、 telnetd, rshd, rlogind 経由でログインすること が決してないマシンを稼働させているのであれば、それらのサービスを停止させて下さい。 .Pp .Bx Free では、今では ntalkd, comsat, finger は砂場で実行させることが デフォルトになっています。次に砂場で実行させるべきプログラムの候補として、 .Xr named 8 があります。デフォルトの rc.conf ファイルには、named を砂場で実行する ために必要な引数がコメントアウトされた形式で含まれています。新しい システムをインストールしているか、それとも既存のシステムを アップグレードして使っているかに依存しますが、砂場として使用する 特別のユーザアカウントがインストールされていないかもしれません。 用心深いシステム管理者であれば、できるだけいつでも研究を怠らず、 サーバに砂場を仕込むものでしょう。 .Pp 通常、砂場で実行しないサーバが他にいくつかあります。sendmail, popper, imapd, ftpd などです。これらのうちいくつかのサーバには代わりとなるも のがありますが、 代わりのものをインストールするには、それだけ多くの仕事が必要になるので、 結局これらを喜んで入れてしまいます .Pq 便利さという要素がまたも勝利を収めるわけです 。 これらのサーバは、root 権限で実行せねばならいかもしれません。また、 これらのサーバ経由で生じる侵入 を検出するためには、他の仕組みに頼らなくてはならないかもしれません。 .Pp システムの root 権限の潜在的な穴で他に大きなものとして、システムに インストールされた suid-root/sgid バイナリがあります。 これらのバイナリは、rloginのように、 .Pa /bin , .Pa /sbin , .Pa /usr/bin , .Pa /usr/sbin に存在するものがほとんどです。 100% 安全なものは存在しないとはいえ、システムデフォルトの siud/sgid バイナリは比較的安全といえます。それでもなお、root の穴が これらのバイナリにときおり発見されています。1998 年に Xlib で見つかった root の穴は、xterm .Pq 普通、suid 設定されています を攻撃可能にしていました。 安全である方がよいので、用心深いシステム管理者は残念に思いながらも、 スタッフのみが実行する必要がある suid バイナリは、スタッフのみが アクセス可能な特別なグループに含めるように制限を加え、 誰も使わない suid バイナリは .Pq chmod 000 を実行して 片付けてしまうでしょう。 ディスプレイを持たないサーバは、一般的に xterm のバイナリを必要としません。 sgid バイナリもほとんど同様の危険な存在になり得ます。 侵入者が kmem に sgid されたバイナリを破ることができた場合、 その侵入者は .Pa /dev/kmem を読み出すことができるようになります。 つまり、暗号化されたパスワードファイルを読み出すことができる ようになるので、パスワードを持つどのアカウントをも、 .Pq 潜在的な 危険に晒すことになります。 tty グループを破った侵入者は、ほとんどすべてのユーザの端末に書き込みが できます。talk-back 機能を持つ端末プログラムやエミュレータをユーザが実行 していると、 .Pq 結局、そのユーザとして実行される コマンドをユーザの端末にエコーさせるデータストリームを 侵入者が生成できる可能性があります。 .Sh ユーザアカウントの安全性を高める .Pp ユーザアカウントは、普通、安全性を高めることが最も困難です。 スタッフに対して、アテナイのドラコのような厳格なアクセス制限を課し、 スタッフのパスワードを\ * で外すことができるとはいえ、管理者が持ちうる 一般ユーザすべてのアカウントに対して同じことはできないかも知れません。 管理者が十分に統率をとることができるなら、管理者は勝利し、ユーザの アカウントの安全を適切に確保できるかもしれません。それが できないならば、よりいっそう気を配って一般ユーザのアカウントを 監視するよりほかありません。一般ユーザアカウントに対し ssh や kerberos を利用することには、いろいろと問題があります。 それでも、暗号化パスワードと比較すると、 はるかに良い解です。 .Sh パスワードファイルの安全性を高める .Pp できるだけ多くのパスワードを\ * で外し、それらのアカウントのアクセスには ssh や kerberos を使うようにすることが、唯一の確実な方法です。たとえ暗号化 パスワードファイル .Pq Pa /etc/spwd.db が root でのみ読み出し可能だとしても、 侵入者がそのファイルの読み出しアクセス権限を得ることは可能かもしれません。たとえ root の書き込み権限が得られないにしてもです。 .Pp セキュリティスクリプトは常にパスワードファイルの変更をチェックし、報告 するようにすべきです .Po 後述の「ファイルの完全性のチェック」を参照して下さい .Pc 。 .Sh カーネルのコア、raw デバイス、ファイルシステムの安全性を高める .Pp root の権限を破ると、攻撃者は何でもできますが、 もっと簡便なこともいくつかあります。例えば、最近のカーネルは、 組み込みのパケット覗き見デバイス .Pq packet sniffing device ドライバを備えているものがほとんどです。 .Bx Free では .Sq bpf デバイスと呼ばれています。侵入者は普通、危険に晒された マシンでパケット覗き見プログラムを実行させようと試みます。侵入者に わざわざそういう機能を提供する必要はないので、ほとんどのシステムで bpf デバイスを組み込むべきではありません。 .Pp bpf デバイスを外し、モジュールローダを無効にしても、 .Pa /dev/mem と .Pa /dev/kmem という悩みの種がまだ残っています。この問題に関しては、侵入者は raw デバイスに書き込むこともできます。 また、 .Xr kldload 8 という、別のカーネル機能があります。 やる気まんまんの侵入者は、KLD モジュールを使って 自分独自の bpf もしくはその他覗き見デバイスを動作中のカーネルに インストールすることができます。 この問題を避けるため、システム管理者は カーネルをより高い安全レベル .Pq securelevel 、少なくとも安全レベル 1 で実行させる必要があります。 sysctl を使って kern.securelevel 変数に安全レベルを設定することが できます。ひとたび安全レベルに 1 を設定すると、 raw デバイスに対する書き込みアクセスは拒否され、例えば .Sq schg のような 特別な chflags フラグが効果を発揮します。これに加えて、 起動時において重要なバイナリ・ディレクトリ・スクリプトファイルなど、 安全レベルが設定されるまでの間に実行されるものすべてに対しても .Sq schg フラグを確実に on にしておく必要があります。この設定をやり過ぎても 構いませんが、より高い安全レベルで動作している場合、システムの アップグレードがはるかに困難になります。システムをより高い安全レベルで 実行させるようにするが、お天道さまの下にあるすべてのシステムファイルと ディレクトリに schg フラグを設定しないという妥協をする方法もあります。 .Sh ファイルの完全性のチェック: バイナリ、設定ファイルなど .Pp ことこの問題に至ると、システム管理者にできることは、 便利さという要素がその醜い頭を上げない程度に、 コアシステムの設定 / 制御ファイルを防御することだけです。 セキュリティのタマネギの最後の層はおそらく最も重要なもの、すなわち探知です。 .Pp システムファイルの完全性をチェックする唯一の正しい方法は、別の、より安全な システム経由で行なう方法だけです。 .Sq 安全 なシステムを準備することは比較的 容易です。単にそのシステム上で、サービスを一切実行しないようにするだけです。 安全なシステム を用いて、ssh 経由で他のシステムの root 空間にアクセスします。これは セキュリティの末端のように見えるかもしれません。しかし、管理者には信頼を どこかに置く必要があります。いきあたりばったりでサーバプロセスを 実行するような馬鹿げたことをしない限りは、安全度の高いマシンを構築する ことは本当に可能です。ここで .Sq 安全 という場合、物理アクセスに対する セキュリティをも含めて仮定していることはもちろんです。他のすべてのマシンに root のアクセス権限を持つ、安全なマシンがあれば、 「安全なマシンの上で」システムの他のマシンをチェックする セキュリティスクリプトを書くことができるようになります。 最も普通のチェック方法は、セキュリティスクリプトで、 まず、find と md5 のバイナリファイルをリモートマシンに .Xr scp 1 してから、 リモートシステムのすべてのファイル .Po もしくは、少なくとも .Pa / , .Pa /var , .Pa /usr パーティション! .Pc に対して md5 を適用するシェルコマンドを ssh を使ってリモートマシンで実行するものです。 安全なマシンは、チェック結果をファイルにコピーし、前回のチェック結果との差分を取り .Pq または、安全なマシン自身が持っているバイナリと比較する 、その差分を 毎日のレポートとしてスタッフメンバひとりひとりにメールで送ります。 .Pp この種のチェックを行うもう一つの方法として、 他のマシンから主なファイルシステムを 安全なマシンにNFS export する方法があります。 このやり方はいくらかネットワークに負荷を掛けることになりますが、 侵入者がチェックを探知したり偽造したりすることは、 事実上不可能になります。 .Pp 優れたセキュリティスクリプトは、一般ユーザやスタッフメンバのアクセス制御 ファイル: .rhosts, .shosts, .ssh/authorized_keys など、MD5 での精細な チェックから洩れそうなファイルの変更もチェックするようにします。 .Pp 優れたセキュリティスクリプトは、すべてのファイルシステム上で suid/sgid バイナリのチェックを行い、前回のチェック結果もしくは何らかの 基準 .Pq 例えば、その基準を週 1 回作成する。 からの差分だけでなく、 それらバイナリの存在そのものを報告するものです。 .Sq nosuid オプションを fstab/mount で指定することで、あるファイルシステム上の suid/sgid バイナリの実行機能をオフにすることができますが、root によるこれら バイナリの実行をオフにすることはできません。さらに、root 権限を破った者は誰でも 自分自身で用意したバイナリをインストールすることだってできます。 しかしながら、ユーザのディスク空間を大量に持つ場合、 ユーザパーティション上で suid されたバイナリとデバイスを不許可に しておき .Po .Pq nodev オプション .Pc 、 そのパーティションをスキャンしないで済ませることも有益かもしれません。 それでも私ならば、ともかく、少なくとも週に 1 回はスキャンする でしょう。というのは、タマネギのこの層の目的は侵入を検知すること だからです。 .Pp プロセスアカウンティング .Po .Xr accton 1 参照 .Pc は、比較的オーバヘッドの低いオペレーティングシステムの機能で、 マシンに侵入されてしまった後の評価の仕組みとして使用することをお勧め します。 侵入を受けた後でも当該ファイルが無傷である場合に、 侵入者が実際にどのようにしてシステムの root を破ったかを 追跡するのに特に有益です。 .Pp 最後に、セキュリティスクリプトはログファイルを処理するようにし、 ログファイル自体もできるだけ安全性の高い方法で .Sq リモート syslog は極めて有益になり得ます 生成するようにすべきです。侵入者は自分の侵入の痕跡を覆い隠そう としますし、また、ログファイルはシステム管理者が最初の侵入の時 刻と方法を追跡してゆくために極めて重要です。 .Sh 偏執狂的方法 .Pp 多少偏執狂的になっても決して悪いことにはなりません。原則的に、 システム管理者は、便利さに影響を与えない範囲でいくつでもセキュリティ 機能を追加することができます。また、いくらか考慮した結果、便利さに 影響を与えるセキュリティ機能を追加することもできます。 .Sh サービス不能攻撃 (D.O.S. attack) についての特記事項 .Pp このセクションではサービス不能攻撃を扱います。サービス不能攻撃は、普通は、 パケット攻撃です。ネットワークを飽和させる最先端の偽造パケット .Pq spoofed packet 攻撃に対してシステム管理者が打てる手はそれほど多く ありませんが、一般的に、その種の攻撃によってサーバがダウン しないことを確実にすることで、被害をある限度に食い止める ことはできます。 .Bl -enum -offset indent .It サーバの fork の制限 .It 踏み台攻撃の制限 .Pq ICMP 応答攻撃、ping broadcast など .It カーネルの経路情報のキャッシュ .El .Pp 普通に見られるサービス不能攻撃に、fork するサーバプロセスに対する ものがあります。これは、サーバにプロセス・ファイル記述子・メモリを 食い尽くさせて、マシンを殺そうとするものです。 inetd .Po .Xr inetd 8 参照 .Pc には、この種の攻撃を制限するオプションがいくつかあります。マシンが ダウンすることを防止することは可能ですが、この種の攻撃によりサービスが 崩壊することを防止することは一般的に言ってできないことに注意する必要が あります。inetd のマニュアルページを注意深く読んで下さい。特に、 .Fl c , .Fl C , .Fl R オプションに注意して下さい。IP 偽造攻撃 .Pq spoofed-IP attack は inetd の .Fl C オプションの裏をかけるので、一般にオプションを 組み合わせて使用するべきであることに注意して下さい。スタンドアロンサーバ の中には、自分自身で fork を制限するパラメータを持っているものがあります。 .Pp sendmail には、 .Fl OMaxDaemonChildren オプションがあります。負荷には遅れがあるので、 sendmail の負荷に限界を設けるオプションを使うよりも、 このオプションを使う方がまともに動作する可能性ははるかに高いです。 sendmail の実行を開始する際に、 .Cm MaxDaemonChildren パラメータを設定するべきです。その値は、 通常見込まれる負荷を扱える程度に十分高いが、 それだけの数の sendmail を操作しようとすると マシンが卒倒してしまうほどには高くないような値に設定するべきです。 sendmail をキュー処理モード .Pq Fl ODeliveryMode=queued で実行することや、 sendmail デーモン .Pq Cm sendmail -bd をキュー処理用プロセス .Pq Cm sendmail -q15m と別に実行することも、用心深いことと言えます。それでもなおリアルタイムでの 配送を望むのであれば、 .Fl q1m のようにすることで、キュー処理をはるかに短い時間間隔で 行うことができます。いずれにしても、 .Cm MaxDaemonChildren オプションに 合理的な値を確実に指定して、sendmail がなだれをうって失敗することが ないようにして下さい。 .Pp syslogd は直接攻撃される可能性があるので、可能ならばいつでも .Fl s オプションを用いることを強く推奨します。これができないなら、 .Fl a オプションを使って下さい。 .Pp tcpwrapper の逆 identd などの接続返し .Pq connect-back を行うサービスに ついては十分注意を払うようにするべきです。これらは直接攻撃を受ける可能性が あります。こういう事情があるので、tcpwrapper の逆 ident 機能を使おうとは 思わないのが一般的です。 .Pp 境界ルータのところでファイアウォールを設けて、外部からのアクセスに対して 内部サービスを防御するという考えは実によいものです。この考えは、LAN の外部 からの飽和攻撃を防ぐことにあり、root ネットワークベースの root 権限への攻撃から内部サービスを防御することには、あまり考慮を払って いません。ファイアウォールは常に排他的に設定して下さい。つまり、 「ポート A, B, C, D と M から Z まで .Eo * 以外 .Ec * のすべてに防火壁を設ける」というふうにです。 このようにすることで、named .Pq ゾーンのプライマリである場合 , ntalkd, sendmail など、インターネットにアクセスを提供するサービス として特に指定するもの以外の、小さい番号のポートすべてをファイアウォールで 防御することができます。ファイアウォールをこの他のやり方、つまり 包含的もしくは受容的なファイアウォールとして設定しようとする場合、 .Sq close することを忘れてしまうサービスがいくつか出てきたり、新しい内部サービスを 追加したのにファイアウォールの更新を忘れたりする可能性がよく出てきます。 ファイアウォール上の大きい番号のポートを開けておいて、小さい番号のポートを 危険に晒すことなく受容的な動作を許すことができます。 .Bx Free では、net.inet.ip.portrange への sysctl .Pq sysctl -a \&| fgrep portrange をいろいろ使用することで、 動的バインドに使用されるポート番号の範囲を制御できることを記憶にとどめて おいて下さい。これによりファイアウォールの設定の複雑性を緩和できます。 私は、ファイアウォールに通常のfirst/last の範囲として、 4000 から 5000 を、 高位ポートの範囲として、49152 から 65535 を使用しています。そして、 .Po いくつかのインターネットアクセス可能なポートを ブロックから除外するのはもちろんですが .Pc 4000 より下のすべてをブロックしています。 .Pp また別のありふれたサービス不能攻撃として、踏み台攻撃 .Pq springboard attack と呼ばれるものがあります。これは、サーバが自分自身、ローカルネットワーク、 そして他のマシンを過負荷に追い込むような応答を生成させる方法でサーバを 攻撃します。この種の攻撃の中で最もありふれたものは、ICMP PING BROADCAST 攻撃があります。攻撃者は、実際に攻撃したいマシンのアドレスをソース アドレスに設定した ping パケットを偽造して、対象の LAN の ブロードキャストアドレスに向けてパケットを送信します。境界にあるルータが ブロードキャストアドレスに対する ping パケットを握り潰すように設定されていない 場合、LANは、詐称されたソースアドレスに向けて応答パケットを生成するはめになり、犠牲となるマシンが飽和するところまで行ってしまいます。攻撃者が同じトリックを 異なるネットワーク上のいくつものブロードキャスト アドレスに対して同時に使用した場合、とくにひどいことになります。 これまでに、120 メガビット以上のブロードキャスト攻撃が観測されています。 2 番目の踏み台攻撃は、ICMP エラー報告の仕掛けを狙うものです。ICMP エラー 応答を生成するパケットを生成することにより、攻撃者はサーバの 受信ネットワークを飽和させることができ、同時に、サーバが送信 ネットワークを ICMP 応答で飽和させるようにすることができます。 mbuf を消費し尽くさせることにより、この種の攻撃でサーバを クラッシュさせることも可能です。サーバの ICMP 応答生成が速過ぎて、 ICMP 応答の送信が追い付かない場合、とくにひどいことになります。 .Bx Free カーネルには、この種の攻撃の効果を抑制する ICMP_BANDLIM と 呼ばれる新しいコンパイルオプションがあります。 3つめの主要なクラスに属す踏み台攻撃は、udp echo サービスのような、 ある種の内部 inetd サービスに関連するものです。攻撃者は、単に ソースアドレスがサーバ A の echo ポートであり、ディスティネーション アドレスがサーバ B の echo ポートであるかのように UDP パケットを 偽造します。ここでサーバ A, B はともに自分の LAN に接続されています。 この 2 つのサーバは、この一つのパケットを両者の間で互いに相手に対して 打ち返しあいます。このようにしてパケットをいくつか注入するだけで、 攻撃者は両方のサーバと LAN を過負荷状態にすることができます。 同様の問題が内部 chargen ポートにも存在します。有能なシステム管理者は この手の inetd 内部テストサービスのすべてを無効にしておくものです。 .Pp 偽造パケット攻撃は、カーネルの経路情報キャッシュに過負荷を生じさせるために 用いられることもあります。net.inet.ip.rtexpire, rtminexpire, rtmaxcache の sysctl パラメータを参照して下さい。でたらめなソース IP を用いた この偽造パケット攻撃により、カーネルは、一時的なキャッシュ経路を 経路情報テーブルに生成します。これは .Sq netstat -rna \&| fgrep W3 で見ることができます。これらの経路は、普通は 1600 秒程度でタイムアウトに なります。カーネルがキャッシュ経路テーブルが大きくなり過ぎたことを 検知すると、カーネルは動的に rtexpire を減らしますが、rtminexpire より 小さくなるようには決して減らしません。ここに問題が 2 つあります。 (1) 負荷の軽いサーバが突然攻撃された場合、カーネルが十分素早く反応 できないこと。(2) カーネルが攻撃に耐え生き延びられるほど十分 rtminexpire が低く設定されていないこと。の2つです。 自分のサーバが T3 もしくはそれより 良質の回線でインターネットに接続されている場合、 .Xr sysctl 8 を用いて rtexpire と rtminexpire とを手動で上書きしておくことが思慮深いこと といえます。 .Pq 自分のマシンをクラッシュさせたくないのであれば :-) どちらか一方でも 0 に は決してしないで下さい。両パラメータを 2 秒に設定すれば、 攻撃から経路情報テーブルを守るには十分でしょう。 .Sh 関連項目 .Pp .Xr accton 1 , .Xr chflags 1 , .Xr find 1 , .Xr kerberos 1 , .Xr md5 1 , .Xr ssh 1 , .Xr sshd 1 , .Xr syslogd 1 , .Xr xdm 1 , .Xr sysctl 8 .Sh 歴史 .Nm マニュアルページは、もともと .An Matthew Dillon によって書かれました。 最初に現れたのは、 .Fx 3.1 で 1998 年 12 月のことです。 .\" translated by Norihiro Kumagai, 98-12-29 diff --git a/ja/man/man8/Makefile b/ja/man/man8/Makefile index a39fab5714..e6767cce64 100644 --- a/ja/man/man8/Makefile +++ b/ja/man/man8/Makefile @@ -1,274 +1,275 @@ MAN8 = IPXrouted.8\ MAKEDEV.8\ ac.8\ accton.8\ adding_user.8\ adduser.8\ adjkerntz.8\ amd.8\ amq.8\ apm.8\ apmconf.8\ arp.8\ atm.8\ atmarpd.8\ atrun.8\ bad144.8\ badsect.8\ boot_i386.8\ bootparamd.8\ bootpd.8\ bootpef.8\ bootptest.8\ btxld.8\ camcontrol.8\ ccdconfig.8\ chat.8\ chkgrp.8\ chkprintcap.8\ chown.8\ chroot.8\ clri.8\ comcontrol.8\ comsat.8\ config.8\ crash.8\ cron.8\ cvsbug.8\ dev_mkdb.8\ disklabel.8\ diskless.8\ diskpart.8\ dm.8\ dmesg.8\ dump.8\ dumpfs.8\ dumpon.8\ edquota.8\ fdcontrol.8\ fdisk.8\ fingerd.8\ fixmount.8\ fore_dnld.8\ fsck.8\ fsdb.8\ fsinfo.8\ fsirand.8\ ft.8\ ftpd.8\ getty.8\ hlfsd.8\ ibcs2.8\ ifconfig.8\ ilmid.8\ inetd.8\ init.8\ intro.8\ iostat.8\ ipfstat.8\ ipfw.8\ ipmon.8\ isdnd.8\ isdndebug.8\ isdndecode.8\ isdnmonitor.8\ isdntel.8\ isdntelctl.8\ isdntrace.8\ ispcvt.8\ joy.8\ kernbb.8\ keyadmin.8\ keyserv.8\ kgmon.8\ kldload.8\ kldstat.8\ kldunload.8\ kvm_mkdb.8\ kzip.8\ ldconfig.8\ linux.8\ locate.updatedb.8\ lpc.8\ lpd.8\ lptcontrol.8\ mail.local.8\ mailstats.8\ makekey.8\ makemap.8\ makewhatis.local.8\ manctl.8\ map-mbone.8\ mixer.8\ mk-amd-map.8\ mknetid.8\ mknod.8\ modload.8\ modstat.8\ modunload.8\ mount.8\ mount_cd9660.8\ mount_ext2fs.8\ mount_msdos.8\ mount_nfs.8\ mount_null.8\ mount_portal.8\ mount_std.8\ mount_umap.8\ mount_union.8\ mountd.8\ moused.8\ mrinfo.8\ mrouted.8\ mtest.8\ mtrace.8\ mtree.8\ named-xfer.8\ named.8\ named.reload.8\ named.restart.8\ natd.8\ ndc.8\ newfs.8\ newfs_msdos.8\ newkey.8\ newsyslog.8\ nextboot.8\ nfsd.8\ nfsiod.8\ nologin.8\ nslookup.8\ nos-tun.8\ ntpdate.8\ ntpq.8\ ntptrace.8\ pac.8\ pam.8\ pccardd.8\ pciconf.8\ periodic.8\ ping.8\ pnpinfo.8\ portmap.8\ ppp.8\ pppctl.8\ pppd.8\ pppstats.8\ praliases.8\ procctl.8\ pstat.8\ pw.8\ pwd_mkdb.8\ quot.8\ quotacheck.8\ quotaon.8\ rarpd.8\ rbootd.8\ rc.8\ reboot.8\ renice.8\ repquota.8\ restore.8\ revnetgroup.8\ rexecd.8\ rlogind.8\ rmail.8\ rmt.8\ rmuser.8\ rndcontrol.8\ route.8\ routed.8\ rpc.lockd.8\ rpc.rquotad.8\ rpc.rstatd.8\ rpc.rusersd.8\ rpc.rwalld.8\ rpc.sprayd.8\ rpc.statd.8\ rpc.yppasswdd.8\ rpc.ypxfrd.8\ rpcinfo.8\ rshd.8\ rstat_svc.8\ rtquery.8\ rwhod.8\ sa.8\ savecore.8\ scspd.8\ sendmail.8\ showmount.8\ shutdown.8\ sicontrol.8\ slattach.8\ sliplogin.8\ slstat.8\ smrsh.8\ spkrtest.8\ + spppcontrol.8\ spray.8\ sticky.8\ stlload.8\ stlstats.8\ strfile.8\ swapon.8\ sync.8\ sysctl.8\ syslogd.8\ talkd.8\ telnetd.8\ tftpd.8\ timed.8\ timedc.8\ traceroute.8\ trpt.8\ tunefs.8\ tzsetup.8\ umount.8\ usbd.8\ usbdevs.8\ uuchk.8\ uucico.8\ uucpd.8\ uusched.8\ uuxqt.8\ vinum.8\ vipw.8\ vmstat.8\ vnconfig.8\ watch.8\ wire-test.8\ wlconfig.8\ wormcontrol.8\ xntpd.8\ xntpdc.8\ xtend.8\ yp_mkdb.8\ ypbind.8\ ypinit.8\ yppoll.8\ yppush.8\ ypserv.8\ ypset.8\ ypxfr.8\ zdump.8\ zic.8 MLINKS+= strfile.8 unstr.8 MLINKS+= makewhatis.local.8 catman.local.8 MLINKS+= bootpd.8 bootpgw.8 MLINKS+=dump.8 rdump.8 MLINKS+= mount_std.8 mount_devfs.8 mount_std.8 mount_fdesc.8 \ mount_std.8 mount_kernfs.8 mount_std.8 mount_procfs.8 MLINKS+= newfs.8 mount_mfs.8 newfs.8 mfs.8 newfs.8 tmpfs.8 MLINKS+= reboot.8 halt.8 reboot.8 fastboot.8 reboot.8 fasthalt.8 MLINKS+= boot_i386.8 boot.8 MLINKS+=restore.8 rrestore.8 MLINKS+= slattach.8 slip.8 MLINKS+= locate.updatedb.8 updatedb.8 MLINKS+= apm.8 zzz.8 MLINKS+= pstat.8 swapinfo.8 MLINKS+= quotaon.8 quotaoff.8 MLINKS+= vnconfig.8 swapfile.8 MLINKS+= inetd.8 inetd.conf.5 MLINKS+= pam.8 pam.conf.5 pam.8 pam.d.5 .include "bsd.prog.mk" diff --git a/ja/man/man8/lpc.8 b/ja/man/man8/lpc.8 index dfdb80fca4..2ed5edf890 100644 --- a/ja/man/man8/lpc.8 +++ b/ja/man/man8/lpc.8 @@ -1,176 +1,176 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)lpc.8 8.5 (Berkeley) 4/28/95 .\" jpman %Id: lpc.8,v 1.2 1997/05/23 00:47:48 mutoh Stab % .\" .Dd April 28, 1995 .Dt LPC 8 .Os BSD 4.2 .Sh 名称 .Nm lpc .Nd ラインプリンタの制御を行う .Sh 書式 .Nm lpc .Oo .Ar command .Op Ar argument ... .Oc .Sh 解説 .Nm は、システム管理者がラインプリンタの動作を制御するために使われます。 -各ラインプリンタのコンフィギュレーションは +各ラインプリンタの設定は .Pa /etc/printcap で行います。 .Nm は以下の目的で利用します。 .Bl -bullet -offset indent .It プリンタの利用可能/不可能の設定を行う .It スプールキューへのジョブ投入可能/不可能の設定を行う .It スプールキュー内のジョブの順番を並べ直す .It プリンタ、スプールのキュー、およびプリンタデーモンのステータスを調べる .El .Pp 引数なしの場合、 .Nm は標準入力からコマンドを読むためにプロンプトを出します。 引数をつけた場合、第 1 引数をコマンドとし、残りの引数を そのコマンドのパラメータと解釈します。 標準入力をリダイレクトして、 .Nm にファイルからコマンドを読み込ませることもできます。 コマンドは略して書くことができます。 利用可能なコマンドを以下に列挙します。 .Pp .Bl -tag -width Ds -compact .It Ic \&? No [ command ... ] .It Ic help No [ command ... ] 引数で指定したコマンドの簡単な説明を表示します。引数がないときはコマンド の一覧を表示します。 .Pp .It Ic abort No {\ all\ |\ printer\ } ローカルホスト上の動作中のスプールデーモンをただちに終了させ、指定した -プリンタをプリントアウトできないように( +プリンタをプリントアウトできないように ( .Xr lpr 1 -が新しいデーモンをスタートさせないように)します。 +が新しいデーモンをスタートさせないように) します。 .Pp .It Ic clean No {\ all\ |\ printer\ } -ローカルマシン上の指定したプリンタのキューから、出力できない(すなわち、 -完全なプリンタジョブの形になっていない)テンポラリファイル、データファイル、 +ローカルマシン上の指定したプリンタのキューから、出力できない (すなわち、 +完全なプリンタジョブの形になっていない) テンポラリファイル、データファイル、 コントロールファイルをすべて削除します。 .Pp .It Ic disable No {\ all\ |\ printer\ } 指定したプリンタのキューをオフにします。これにより、 .Xr lpr 1 によって新しいプリンタジョブがキューに入らないようになります。 .Pp .It Ic down No {\ all\ |\ printer\ } message ... 指定したプリンタのキューをオフにし、プリントアウトできないようにし、 プリンタのステータスファイルに .Em message を書きます。メッセージは引用符で囲む必要はなく、残りの引数は .Xr echo 1 と同様に扱われます。通常、この コマンドはプリンタをダウンさせ、ユーザに対しそのダウンの理由を .Xr lpq 1 によって説明させるために使われます。 .Pp .It Ic enable No {\ all\ |\ printer\ } 指定したプリンタ用のキューのスプーリングを行うようにします。これは、 .Xr lpr 1 で新しいプリンタジョブをスプールキューに挿入することができるよ うにします。 .Pp .It Ic exit .It Ic quit lpc を終了させます。 .\" ne 1i .Pp .It Ic restart No {\ all\ |\ printer\ } 新しいプリンタデーモンの再スタートを試みます。このコマンドは、異常な 状態になって突然デーモンが死に、キュー内にジョブが残ったままになった場合に 有効です。この状態が起きたときには、 .Xr lpq 1 は現在デーモンが動いていないことを報告します。 もしあなたがスーパユーザなら、現在動いているデーモンを先に殺してください (つまり、動かなくなったデーモンを殺してから再スタートさせるわけです)。 .Pp .It Ic start No {\ all\ |\ printer\ } 指定したプリンタを出力可能にしてスプールデーモンをスタートさせます。 .Pp .It Ic status No {\ all\ |\ printer\ } ローカルマシン上のデーモンとキューの状態を表示します。 .Pp .It Ic stop No {\ all\ |\ printer\ } 現行のジョブが終了したあとでデーモンのスプーリングをストップさせ、 プリントアウトできないようにします。 .Pp .It Ic topq No printer\ [\ jobnum\ ...\ ]\ [\ user\ ...\ ] 引数に並べた順番で、ジョブをキューの先頭に移動させます。 .Pp .It Ic up No {\ all\ |\ printer\ } すべての状態を可能状態(enable)にし、新しいプリンタデーモンをスタートさせます。 .Ic down の逆です。 .Sh 関連ファイル .Bl -tag -width /var/spool/*/lockx -compact .It Pa /etc/printcap プリンタの設定を記述するファイル .It Pa /var/spool/* スプールディレクトリ .It Pa /var/spool/*/lock プリンタキューの制御を行うためのロックファイル .El .Sh 関連項目 .Xr lpq 1 , .Xr lpr 1 , .Xr lprm 1 , .Xr printcap 5 , .Xr lpd 8 .Sh 診断 .Bl -tag -width Ds .It Sy "?Ambiguous command" コマンド指定が省略し過ぎのため、複数のコマンドにマッチしています。 .It Sy "?Invalid command" マッチするコマンドがありません。 .It Sy "?Privileged command" -"operator" グループのメンバーかルートでなければこのコマンドは +"operator" グループのメンバか root でなければこのコマンドは 実行できません。 .El .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja/man/man8/mountd.8 b/ja/man/man8/mountd.8 index 7d6df815f1..934df6da59 100644 --- a/ja/man/man8/mountd.8 +++ b/ja/man/man8/mountd.8 @@ -1,157 +1,157 @@ .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mountd.8 8.4 (Berkeley) 4/28/95 .\" %Id: mountd.8,v 1.14.2.1 1999/04/08 14:04:30 ghelmer Exp % .\" .\" jpman %Id: mountd.8,v 1.3 1997/05/19 17:06:05 horikawa Stab % .\" .Dd April 28, 1995 .Dt MOUNTD 8 .Os .Sh 名称 .Nm mountd .Nd リモートの .Tn NFS マウント要求に対するサービスを行うデーモン .Sh 書式 .Nm mountd .Op Fl 2dlnr .Op Ar exportsfile .Sh 解説 .Nm は、他のクライアントマシンからの .Tn NFS マウント要求のためのサーバです。 .Nm は、 .Tn NFS サーバの仕様で示されているポート 番号でサービス要求を待ちます。詳細は RFC1094 .%T "Network File System Protocol Specification" の Appendix A と .%T "NFS: Network File System Version 3 Protocol Specification" の Appendix I を参照してください。 .Pp .Nm では、以下のオプションや引数を指定できます: .Bl -tag -width indent このサーバからファイルシステムをマウントするクライアントに対し、 管理者はバージョン 2 .Tn NFS プロトコルのみの使用を強制できます。 .It Fl d デバッグ情報を出力します。 .It Fl l 成功した .Nm 要求を記録します。 .It Fl n -非ルートからのマウント要求を許可します。 +非 root からのマウント要求を許可します。 このオプションは、 クライアントが PC であるなど、それがどうしても必要な 場合にのみ使うようにしてください。 その場合、自動的に vfs.nfs.nfs_privport sysctl フラグがクリアされます。 このフラグはカーネルが NFS 要求を受け付けるのが、 予約されたポートからのみか否かを制御します。 .It Fl r 通常ファイルに対するマウント RPC 要求を許可します。 これは、マウントプロトコルの仕様によると危険なようですが、 いくつかのディスクレスワークステーションは、スワップファイルをマウント しようとしますし、それが通常ファイルであることを期待しています。 通常ファイルは .Pa /etc/exports で指定できないので、スワップが置かれようとしているファイルシステム全体 が、 .Fl alldirs フラグとともに公開されていなければなりません。 .It Ar exportsfile exports ファイルの置き場所を指定します。 .El .Pp 起動されると、 .Nm は .Xr mount 2 システムコールによって、公開するホストアドレスとオプションを カーネル内にロードします。 公開設定ファイルを変更した場合は、 .Nm に対して回線切断シグナルを送って 公開設定情報を再ロードする必要があります。 .Dv SIGHUP を送ったあと(例: kill \-s HUP `cat /var/run/mountd.pid` )、exports ファイルにエラーがあるかどうか、 .Nm の出力をチェックしてください。 .Pp 動作中のカーネルは .Tn NFS を組み込んでいないものであると判明した場合、 .Nm は、 .Xr vfsload 3 を用いる .Xr kldload 8 コマンドを使って、 .Tn NFS を含むローダブルカーネルモジュールのロードを試みます。 これが失敗するか、 .Tn NFS KLD が使用できない場合は、 .Nm はエラー終了します。 .Sh 関連ファイル .Bl -tag -width /var/run/mountd.pid -compact .It Pa /etc/exports -公開設定ファイル(エキスポートファイル) +公開設定ファイル (エクスポートファイル) .It Pa /var/run/mountd.pid 現在実行中の .Nm のプロセス id .Tn ID .It Pa /var/db/mountdtab 現在マウントされているリモートファイルシステムのリスト .El .Sh 関連項目 .Xr nfsstat 1 , .Xr exports 5 , .Xr kldload 8 , .Xr nfsd 8 , .Xr portmap 8 , .Xr showmount 8 .Sh 歴史 .Nm ユーティリティは .Bx 4.4 から登場しています。 diff --git a/ja/man/man8/ppp.8 b/ja/man/man8/ppp.8 index f546a5e6f1..e9a8bb447a 100644 --- a/ja/man/man8/ppp.8 +++ b/ja/man/man8/ppp.8 @@ -1,4686 +1,4686 @@ .\" %Id: ppp.8,v 1.142.2.3 1999/03/24 18:03:12 brian Exp % .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .\" WORD: expect string 受信待ち文字列 (chat.8) .\" WORD: negotiation 交渉 .Dd 20 September 1995 .nr XX \w'\fC00' .Os FreeBSD .Dt PPP 8 .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Oo .Fl auto | .Fl background | .Fl ddial | .Fl direct | .Fl dedicated .Oc .Op Fl alias .Op Ar system Ns .No ... .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 それに対し、この実装ではトンネルデバイスドライバ (tun) を利用して、 ユーザプロセスで .Em PPP を実現しています。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の切断を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイヤルをサポート 対話モードでは、直接モデムと通信できるように .Dq term コマンドが用意されています。 モデムがリモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイヤル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイヤルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイヤルを行って接続を確立します。 .Fl ddial モード (直接ダイヤルモード) でも ほぼ同様に、自動ダイヤルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイヤルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用線モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用線モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再交渉を強要し、 .Dv SIGTERM は終了を強要します。 .It クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It パケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP (rfc 1994) による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice -が、中央データベースまたは分散データベースに、 -ユーザごとの形式で様々な接続特性とともに認証情報を格納可能とします。 +は、集中データベースまたは分散データベースに、 +ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Pa libradius が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP をサポート デバイス名が .Em host Ns No : Ns Em port 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、データ転送のための TCP 接続を開きます。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを 交渉することができます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 次のコマンドラインスイッチを .Nm ppp は理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクにデスクリプタ 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm はコマンドラインで指定されたシステムをロードし、対話プロンプトを提供します。 .It Fl alias このフラグは .Nm のモードを制御しません。 .Dq enable alias yes と等価です。さらに、 .Fl auto もまた指定されている場合、暗黙的に .Dq enable iface-alias が実行されます。 詳細については後述しているものを参照してください。 .Pp IP エイリアシングを有効にすると、 .Nm は、内部 LAN 上の全マシンに対する NAT もしくはマスカレーディングエンジンとして動作します。詳細は .Xr libalias 3 を参照してください。 .El .Pp さらに、1 つ以上の system をコマンドライン上に指定可能です。 .Sq system は .Pa /etc/ppp/ppp.conf の設定エントリです。起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Pp .Fl auto , .Fl background , .Fl ddial , .Fl direct , .Fl dedicated , .Fl interactive のいずれか 1 つのスイッチのみ指定可能です。 .Nm の .Sq モード は、 .Dq set mode コマンド (後述) を使用することで後で変更可能です。 .Pp 以降、対話モードの使用方法について説明します。 .Pp 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていなければ なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。 もし含まれていない場合や複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.*/var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは .Pq Xr named 8 を用いて ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq name-server 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm ppp のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 .Pq set to Dq none されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のモデム設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show modem Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接モデムと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらの開始交渉を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、交渉開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先との交渉に成功しなかったことをを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show modem * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時に交渉する場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、最初の桁に空白かタブを含む必要があります。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少なくとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 つ以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm ppp を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent PPP ON awfulhak> load MyISP .Ed .Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP \&... ppp ON awfulhak> dial Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェースに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルの交渉に成功し、使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 .Po たとえば、 .Dq set server +3000 mypasswd とすると .Pc 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar maxinc は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar maxinc のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 .It Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイヤルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒の間隔を置いて .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .Dq set redial コマンドにて、リダイヤル期間の後に、 再接続回数を指定します。 リダイヤル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、次のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、次の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0) 、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの 交渉を有効にすることが可能です。 下記の記述を参照してください。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm ppp で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap .Pq もしくはその両方 を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号交渉時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669 .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバと交渉できないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 add 10.0.1.0/24 10.0.4.2 .Ed .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには次の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、次のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp .Ar MyAuthPasswd が .Pq Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in set dial set timeout 30 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0/24 10.0.4.1 .Ed .Pp PAP を有効にしようとしている場合、次の設定も必要です: .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「経路」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「経路」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下位レベルの TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下位レベルの TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Sh パケットエイリアシング .Fl alias コマンドラインオプションにより、 パケットエイリアシングが有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのようにエイリアスされ、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるようにエイリアスが戻されます。 パケットエイリアシングにより、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にパケットエイリアシングを禁止して行います。 次に .Fl alias オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Oo .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Oo Ar proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Oc .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 19 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny のいずれかです。 もし、あるパケットがルールに一致した場合、 結びつけられた action が直ちに実行されます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .It .Ar proto は .Sq icmp , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It パケットにマッチするルールが無い場合は、パケットは破棄 (ブロック) されます。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 .Pp 3 分 です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Pq 接続相手が両方のプロトコルをサポートしていると仮定しています。 .Pp デフォルトでは、DEFLATE について交渉するときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を 交渉に使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE 交渉を成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .Em PPP の実装には、接続交渉のために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、経路表には影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Pp .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It 経路表のネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、経路表のエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Pp .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、次のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります。 .Pq Dq \&: : .Bd -literal -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイヤルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイヤルしてみます。 ダイヤルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイヤルもしくはログインスクリプトに失敗したとき *のみ* です。 このダイヤルの後、3456789 が使用されます。 4567890 は 345689 でダイヤルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみであり両方の使用はないでしょう)。 次の番号へのリダイヤルまでのタイムアウトは、すべての番号にて使用されます。 リストが終了すると、 通常のリダイヤル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以降を参照してください)。 .It リダイヤルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 次のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイヤルを行う前に 10 秒待って、 4 回までダイヤルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、次のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は次の通りです。 .Bl -bullet .It \&"BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう 1 度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上記の電話番号リストの中の、次にダイヤルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイヤルスクリプトと同じスタイルで書かれますが、 パスワードが記録されないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は次の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It "login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It "awfulhak" を送信します。 .It "word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It "ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It "PPP" を送信します。 .It "HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey コマンドのログは特別な方法でとられます。 .Ar command または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** Ns が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp FreeBSD では cuaa0 が 1 つめのシリアルポートになります。 OpenBSD で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以降を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Pp .Ed ローカル DNS を走らせている場合には、これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合には記録されません。 .Sh シグナルハンドリング .Nm は次のシグナルを扱います: .Bl -tag -width XX .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 .El .Pp .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname .Pq と Sq authkey について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続の交渉を行います。 .Pp デフォルトでは .Po .Sq deflink と呼ばれる .Pc ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 link deflink remove .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードで交渉をすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードの交渉を行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width XX .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手と交渉するかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width XX .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は非常に良く似たフィールドを持ちますので、 簡単に圧縮可能です。 .It chap Ns Op \&05 デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみ交渉可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、MS-CHAP 認証を要求することは 決してありません。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についての交渉には問題があります。 .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮の交渉を行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd と交渉する能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとの交渉を許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS 交渉を許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、ppp は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注釈: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみ交渉可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) の交渉を行うために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードの交渉時に .Pq 12 ビットの 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手と交渉しません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティック経路 リストは依然として保守されます。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq modem のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl alias が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 IP エイリアシングが有効な場合のみ .Pq Dq alias enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを IP エイリアスエンジン .Pq Xr libalias 5 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq alias enable off として IP エイリアシングを disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op \&! .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add! コマンド .Po .Dq \&! に注意 .Pc 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR もしくは .Dq MYADDR を含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR もしくは .Dv MYADDR の値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 ユーザレベルでのアクセスは可能であり、 設定ファイルのラベルと .Nm の実行モードに依存します。 例えば、ユーザ .Sq fred のみがラベル .Sq fredlabel に .Fl background モードでアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width XX .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドが指定されると、 .Dq allow users が記載されているセクションに列挙されているユーザのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。後続する .Dq allow users コマンドは、先行するコマンドに優先します。 あるラベル以外のすべてにアクセスを許すことが可能であり、 そのためにはデフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをこのあるラベルに指定します。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It alias Ar command Op Ar args このコマンドは .Nm 組込みのエイリアシング (マスカレーディング) 機能を 制御するために使用します。 あなたのシステムでエイリアシングが有効になると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width XX .It alias enable Op yes|no エイリアシングを有効もしくは無効にします。 .Fl alias コマンドラインフラグは .Dq alias enable yes と同じ意味です。 .It alias addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It alias deny_incoming Op yes|no yes に設定すると、 ファイアウォールとほぼ同様にパケットを落とすことにより、 このコマンドは全入力接続を拒否します。 .It alias help|? このコマンドは、使用可能な alias コマンドのまとめを表示します。 .It alias log Op yes|no このオプションは、alias の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 .It alias port Xo .Op Ar proto .Ar targetIP Ns No \&: Ns Ar targetPORT .Op Ar aliasIP Ns No \&: Ns .Ar aliasPORT .Xc このコマンドにより、 マシン .Ar aliasIP の .Ar aliasPORT へ到着する接続を、 .Ar targetIP の .Ar targetPORT へリダイレクトします。 .Ar aliasIP のデフォルトは、現在のインタフェースアドレスです。 .Ar proto は .Sq tcp もしくは .Sq udp のいずれかで、指定したプロトコルの接続のみマッチします。 あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 .It "alias pptp" Op Ar addr すべての .Em G Ns No eneral .Em R Ns No outing .Em E Ns No encapsulated .Pq Dv IPPROTO_GRE パケットを、ローカルインタフェースアドレスではなく .Ar addr を使用することにより、 .Nm にエイリアスさせます。 これは、マシンの内部ネットワーク上で .Em P Ns No oint to .Em P Ns No oint .Em T Ns No unneling .Em P Ns No rotocol の使用を許します。 .Pp .Ar addr を指定しないと、 .Dv PPTP エイリアスは無効になります。 .It "alias proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It alias same_ports Op yes|no 有効になると、 エイリアスライブラリが出力パケットのポート番号を変更しようとすることを 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It alias use_sockets Op yes|no 有効になると、 エイリアスライブラリにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It alias unregistered_only Op yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.alias ファイル中でも議論されています。 .Pp .It Op \&! Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear modem|ipcp Op current|overall|peak... .Dq modem もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op \&! 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term .Pq 後述 を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq \&! が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP 交渉を開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op \&! .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete! コマンドが使用された場合 .Po 最後の .Dq \&! に注意 .Pc 、存在しない経路について .Nm は文句を言わなくなります。 .It dial|call Op Ar label 引数なしで使用された場合、このコマンドは .Dq open コマンドと同一です。 .Ar label が 1 つ以上指定された場合、最初に .Dq load が実行されます。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、モデムはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op \&! .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op \&! .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm ppp が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width XX .It iface add[!] Ar addr[[/bits| mask] peer] 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です .Pq addr との間に空白を入れてはなりません 。指定したアドレスが既に存在する場合、 .Dq \&! を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP 交渉されたアドレス以外の全アドレスがインタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op \&! Ns .No |rm Ns Op \&! .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq \&! が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 .Dq open コマンドを引数なしで用いることは .Dq dial を引数なしで用いることと同一です。 すなわちすべての閉じられたリンクが、現在の設定を用いて起動されます ( .Dq set autoload コマンドに基づいた自動リンクの中には起動されないものもあります)。 .Pp LCP 層がすでにオープンされているときに .Dq lcp を指定すると、LCP は再度交渉されます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度交渉された後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度交渉されます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度交渉され、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It save このオプションは (まだ) 実装されていません。 .It set Ns Xo .No Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width XX .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手と交渉され、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP の交渉で使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\P シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq \& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp .Dq \&! を無視し、前述の .Dq !bg コマンドと同様に特殊な名前を同様に置換しながら、 .Ar value は実行すべきプログラムとしてパーズされます。 プログラムを実行すると、 .Nm はこのプログラムに対して 3 行の入力を与えます。 各行は改行文字で終了しています: .Bl -bullet .It CHAP チャレンジに含めて送られるホスト名。 .It CHAP チャレンジに含めて送られるチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp 2 行の出力が期待されています: .Bl -bullet .It CHAP 応答と共に送るべき .Dq authname 。 .It チャレンジと要求 ID で暗号化した .Dq authkey であり、応答は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることが期待されます。 指定されたチャレンジに対する適切な秘密情報を、 暗号化デバイスまたは Secure ID カードが計算することが求められています。 .It set authname Ar id クライアントモードでの PAP または CHAP の交渉で使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar max-duration max-load Op Ar min-duration min-load .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はすべて 0 です。 1 つ以上の .Ar demand-dial .Po .Fl auto としても知られる .Pc モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクは、 .Ar max-duration 秒の間、送出キューに .Ar max-load 以上のパケットが存在した場合にのみ開かれます。 両方のデフォルト値が 0 であるため、 .Ar demand-dial リンクはデフォルトでは 1 つだけオープンされます。 .Pp 複数のリンクが開かれていて、少なくともその内の 1 つが .Ar demand-dial リンクである場合、 .Ar min-duration 秒の間、送出キューに最大 .Ar min-packets 未満のパケットしか存在しなかったときに閉じられます。 .Ar min-duration が 0 の場合には、タイマは無効になります。 デフォルトでは両方の値が 0 であるため、 .Ar demand-dial リンクはバンドルされたアイドルタイマが期限切れになるまで アクティブであり続けます。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードで、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、これを指定する必要があります。 .El .Pp .It set cbcp Oo Xo .No *| Ns Ar number Ns No .Oo .No , Ns Ar number Ns .Oc .No ... .Op Ar delay Op Ar retry .Oc .Xc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Ar seconds Ns Op \&! 通常、ログインスクリプト完了の 1 秒後に、 .Nm はキャリアの存在をチェックします。 キャリアが設定されていないと、 デバイスがキャリアをサポートしていない (ほとんどのヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実を記録して、キャリアのチェックを止めます。 しかし、モデムによってはキャリアのアサートに時間がかかるものがあるので、 リンクが落ちたときを .Nm ppp は検知できなくなります。 .Ar seconds は、ログインスクリプトが完了してから最初のキャリアチェックを行う前に、 .Nm が待つべき秒数を指定します。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq \&! がある場合、 .Nm はキャリアを .Em 要求 します。 最初のチェックでキャリアを検知しないと、リンクは切断されているとみなされます。 .Pp リンクが tty でない場合、キャリアの .Em 必要性 は無視されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 20 パケット (マルチリンクモードでは .Em 20 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 全シリアルデバイス名は .Pa /dev/ から始まることが仮定されています。 .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq \&! から始めるか、 .Dq host:port の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .Dq host:port の組が与えられる場合、 .Nm は、指定された .Dq host の指定された .Dq port と接続しようとします。 詳細は上述の .Em PPP オーバ TCP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -unfilled -offset indent .It \\\\\\\\\\\\\\\\c .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \\\\\\\\\\\\\\\\d チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \\\\\\\\\\\\\\\\p チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \\\\\\\\\\\\\\\\n 改行文字と置き換えられます。 .It \\\\\\\\\\\\\\\\r 復改文字と置き換えられます。 .It \\\\\\\\\\\\\\\\s 空白文字と置き換えられます。 .It \\\\\\\\\\\\\\\\t タブ文字と置き換えられます。 .It \\\\\\\\\\\\\\\\T 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \\\\\\\\\\\\\\\\P 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \\\\\\\\\\\\\\\\U 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .Ed .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、 受信待ち文字列または送信文字列の最初の文字をエクスクラメーションマーク .Pq Dq \&! にします。 コマンドが実行されると、標準入力と標準出力がモデムデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行されている場合、ファイルデスクリプタ 3 は .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\\\\\-c \\\\\\"echo \\\\\\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は次のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq \&! 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイルデスクリプタ 2 (stderr) にリダイレクトして .Nm 自身に送信および記録させ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP 交渉の前に設定されると、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bd -unfilled -offset indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前に交渉されますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .Ed .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny .Oo Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc Oo tcp|udp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Oc .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングは、 エイリアスエンジンが行う IP 変更の前に適用されます。 デフォルトでは、全フィルタセットが全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script モデムを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp .Ar hisaddr に IP 番号の範囲として .Bd -literal -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc No ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP 接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP 交渉で使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装と交渉するときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP 交渉で使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp .Po PAP か CHAP が .Dq enable である場合 .Pc クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手との交渉を避けるために、 どのような交渉セッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注釈: コマンド .Dq set mode auto を発行し、IP エイリアシングが enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP 交渉を有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Op Ar value デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 引数が指定されないと、1500 が仮定されます。 .It set mtu Op Ar value デフォルトの MTU は 1500 です。 交渉時に、(296 バイト未満でなければ) 相手が望むいかなる MRU および MRRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU/MRRU の値を受け付けなくなります。 交渉が完了すると、相手がより大きな MRU/MRRU を要求していたとしても、 インタフェースに対して MTU が割り当てられます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP の交渉を開始します。 相手が交渉を開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってから交渉を開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark 回線のパリティを設定できます。デフォルト値は .Ar none です。 .It set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP 交渉で合意された相手の MRU より小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP 交渉において .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar maxinc 回だけです。 .Ar maxinc のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq \&! を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set server|socket Ar TcpPort|LocalName|none password Op Ar mask このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定する必要があります。 .Sq 0 から始まる 4 桁 8 進数で指定します。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd コマンドを使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed Ar value シリアルデバイスの速度を指定します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮を交渉するか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手と交渉をします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 20 .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 .Po Dq iface show と同じです .Pc を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show modem 現在の下位レベルリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はモデムに送られます。 モデムから読んだ文字はスクリーンに表示されます。 モデムの相手側に .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq alias ? , .Dq enable ? , .Dq set ? , .Dq show ? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It http://www.FreeBSD.org/FAQ/userppp.html .It http://www.FreeBSD.org/handbook/userppp.html .El .Pp .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width XX .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワークレベルの接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じる時にチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslogd.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr libalias 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr route 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、 FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。 .Pp 1997 年中に Brian Somers (brian@Awfulhak.org) が本格的な修正をし、 11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを Brian Somers が書き直しました。 diff --git a/ja/man/man8/reboot.8 b/ja/man/man8/reboot.8 index fb75a5487f..de2fc62bff 100644 --- a/ja/man/man8/reboot.8 +++ b/ja/man/man8/reboot.8 @@ -1,111 +1,111 @@ .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)reboot.8 8.1 (Berkeley) 6/9/93 .\" %Id: reboot.8,v 1.5 1998/07/15 06:51:37 charnier Exp % .\" jpman %Id: reboot.8,v 1.3 1997/06/06 11:35:27 bobson Stab % .\" .Dd June 9, 1993 .Dt REBOOT 8 .Os .Sh 名称 .Nm reboot , .Nm halt .Nd システムを停止し、再起動する .Sh 書式 .Nm halt .Op Fl nqp .Nm reboot .Op Fl nqp .Nm fasthalt .Op Fl nqp .Nm fastboot .Op Fl nqp .Sh 解説 .Nm halt と .Nm は、ファイルシステムのキャッシュをディスクへ書き出し、 すべての実行中のプロセスに SIGTERM を (そして、それに続いて SIGKILL を) 送ります。 -そして、システムを停止( +そして、システムを停止 ( .Nm halt ) したり、再起動 ( .Nm ) したりします。 -その動作はログインのアカウンティング・ファイルに記入されます。 -それはログインのアカウンティング・ファイルへのシャットダウン記録の書き出し +その動作はログインのアカウンティングファイルに記入されます。 +それはログインのアカウンティングファイルへのシャットダウン記録の書き出し を含んでいます。 .Pp オプションとしては以下のものがあります。 .Bl -tag -width indent .It Fl n システムのキャッシュがディスクへ書き出されません。 このオプションは使用すべきではありません。 .It Fl q システムは、とにかく速く停止されたり、 再起動されたりします。そしてシステムのキャッシュの破棄だけが行われます。 このオプションは使用すべきではありません。 .It Fl p システムは可能であれば電源を切ります。 これは、もちろん .Nm でも、 .Nm halt と同じように振る舞うということです。 .El .Pp .Nm fasthalt と .Nm fastboot は、それぞれ .Nm halt と .Nm の単なる別名にすぎません。 .Pp -通常、システムの停止や、再起動を要する場合には、ユーザーに事前警告を与える +通常、システムの停止や、再起動を要する場合には、ユーザに事前警告を与える .Xr shutdown 8 を使用します。 .Xr shutdown 8 -は、ログインしているユーザーにシステム停止の警告を与えます。 +は、ログインしているユーザにシステム停止の警告を与えます。 .Pp .Sh 関連項目 .Xr utmp 5 , .Xr boot 8 , .Xr shutdown 8 , .Xr sync 8 .Sh 歴史 .Nm コマンドは .At v6 で追加されました。 diff --git a/ja/man/man8/repquota.8 b/ja/man/man8/repquota.8 index 17b4a4b601..b1396f8818 100644 --- a/ja/man/man8/repquota.8 +++ b/ja/man/man8/repquota.8 @@ -1,106 +1,108 @@ .\" Copyright (c) 1983, 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Robert Elz at The University of Melbourne. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)repquota.8 8.1 (Berkeley) 6/6/93 .\" jpman %Id: repquota.8,v 1.2 1997/05/22 07:39:12 mitchy Stab % .\" .Dd June 6, 1993 .Dt REPQUOTA 8 .Os BSD 4.2 .Sh 名称 .Nm repquota .Nd ファイルシステムの割り当て制限状況を表示する .Sh 書式 .Nm repquota .Op Fl g .Op Fl u .Op Fl v .Ar filesystem Ar ... .Nm repquota .Op Fl g .Op Fl u .Op Fl v .Fl a .Sh 解説 .Nm repquota -は、指定されたファイルシステムのディスク使用状況と、割り当て制 -限状況を表示します。 +は、指定されたファイルシステムのディスク使用状況と、 +割り当て制限状況を表示します。 .Pp オプションは以下のとおりです: .Bl -tag -width indent .It Fl a .Pa /etc/fstab に記述された全ファイルシステムに関する情報を表示します。 .It Fl g -グループ割り当て制限のみを表示します(デフォルトでは、グループ、ユーザ -両方の割り当て制限を表示します)。 +グループ割り当て制限のみを表示します +(デフォルトでは、グループ、ユーザ両方の割り当て制限を表示します)。 .It Fl u -ユーザ割り当て制限のみを表示します(デフォルトでは、グループ、ユーザ +ユーザ割り当て制限のみを表示します (デフォルトでは、グループ、ユーザ 両方の割り当て制限を表示します)。 .It Fl v -個々のファイルシステムの割り当て(クォータ)を表示する前に、ヘッダ行を出 +個々のファイルシステムの割り当て (クォータ) を表示する前に、ヘッダ行を出 力します。 .El .Pp -各ユーザやグループに関する現在の、ファイル数、サイズ(キロバイト単位)、 +各ユーザやグループに関する現在の、ファイル数、サイズ (キロバイト単位)、 および割り当て制限 ( .Xr edquota 8 により設定される)が表示されます。 .Pp operator グループに所属するユーザかスーパユーザのみが、このコマンドを 実行できます。 .Sh 関連ファイル .Bl -tag -width quota.group -compact .It Pa quota.user -ユーザの割り当て制限に関するデータ(ファイルシステムのルートディレクトリに配置される) +ユーザの割り当て制限に関するデータ +(ファイルシステムのルートディレクトリに配置される) .It Pa quota.group -グループの割り当て制限に関するデータ(ファイルシステムのルートディレクトリに配置される) +グループの割り当て制限に関するデータ +(ファイルシステムのルートディレクトリに配置される) .It Pa /etc/fstab ファイルシステムの名前と位置を読み取る .El .Sh 関連項目 .Xr quota 1 , .Xr quotactl 2 , .Xr fstab 5 , .Xr edquota 8 , .Xr quotacheck 8 , .Xr quotaon 8 .Sh 診断 アクセス不可能なファイルに関する様々なメッセージが出力されます。 .Sh 歴史 .Nm は .Bx 4.2 で追加されました。 diff --git a/ja/man/man8/vinum.8 b/ja/man/man8/vinum.8 index c02c1b8072..7b4d37d153 100644 --- a/ja/man/man8/vinum.8 +++ b/ja/man/man8/vinum.8 @@ -1,2132 +1,2132 @@ .\" Hey, Emacs, edit this file in -*- nroff-fill -*- mode .\"- .\" Copyright (c) 1997, 1998 .\" Nan Yang Computer Services Limited. All rights reserved. .\" .\" This software is distributed under the so-called ``Berkeley .\" License'': .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Nan Yang Computer .\" Services Limited. .\" 4. Neither the name of the Company nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" This software is provided ``as is'', and any express or implied .\" warranties, including, but not limited to, the implied warranties of .\" merchantability and fitness for a particular purpose are disclaimed. .\" In no event shall the company or contributors be liable for any .\" direct, indirect, incidental, special, exemplary, or consequential .\" damages (including, but not limited to, procurement of substitute .\" goods or services; loss of use, data, or profits; or business .\" interruption) however caused and on any theory of liability, whether .\" in contract, strict liability, or tort (including negligence or .\" otherwise) arising in any way out of the use of this software, even if .\" advised of the possibility of such damage. .\" -.\" $Id: vinum.8,v 1.6 1999-04-26 14:34:52 kuriyama Exp $ +.\" %Id: vinum.8,v 1.5.2.3 1999/04/06 08:59:36 grog Exp % .\" .\" jpman %Id: vinum.8,v 1.3 1999/01/05 15:15:53 horikawa Stab % .\" WORD: attach 結合 (する) .Dd 28 March 1999 .Dt vinum 8 .Sh 名称 .Nm vinum .Nd 論理ボリュームマネージャの制御プログラム .Sh 書式 .Nm .Op command .Op Fl options .Sh コマンド .Cd create .Fl f .Ar description-file .in +1i .Ar description-file の記述に従ってボリュームを作成します。 .in .\" XXX remove this .Cd attach Ar plex Ar volume .Op Nm rename .Cd attach Ar subdisk Ar plex Ar [offset] .Op Nm rename .in +1i プレックスをボリュームに、またはサブディスクをプレックスに結合します。 .in .\" XXX remove this .Cd debug .in +1i ボリュームマネージャをカーネルデバッガに移行させます。 .in .Cd debug .Ar flags .in +1i デバッグフラグを設定します。 .in .Cd detach .Op Ar plex | subdisk .in +1i 結合されていたボリュームやプレックスから、プレックスやサブディスクを分離します。 .in .Cd info .Op Fl v .in +1i ボリュームマネージャの状態を表示します。 .in .Cd init .Op Fl v .in +1i .\" XXX 下位の全サブディスクに 0 を書き込んでそのプレックスを初期化します。 .in .Cd label .Ar volume .in +1i ボリュームラベルを作成します。 .in .Cd list .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume | plex | subdisk .in +1i 指定したオブジェクトの情報を表示します。 .in .Cd l .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume | plex | subdisk .in +1i 指定したオブジェクトの情報を表示します ( .Cd list コマンドの別形式)。 .in .Cd ld .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume .in +1i ドライブの情報を表示します。 .in .Cd ls .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op subdisk .in +1i サブディスクの情報を表示します。 .in .Cd lp .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op plex .in +1i プレックスの情報を表示します。 .in .Cd lv .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume .in +1i ボリュームの情報を表示します。 .in .Cd printconfig .Pa file .in +1i 現在の設定のコピーを .Pa file へ書き込みます。 .in .Cd makedev .in +1i .Ar /dev/vinum にデバイスノードを再作成します。 .in .Cd quit .in +1i 対話モード時に、 .Nm プログラムを終了します。通常 .Ar EOF 文字を入力することにより実現できます。 .in .Cd read .Ar disk Op disk... .in +1i 指定したディスクから .Nm の設定を読み出します。 .in .Cd rename Op Fl r .Ar [ drive | subdisk | plex | volume ] .Ar newname .in +1i 指定したオブジェクトの名前を変更します。 .ig .XXX .in .Cd replace .Ar [ subdisk | plex ] .Ar newobject .in +1i オブジェクトを同一の他のオブジェクトと入れ換えます。XXX まだ実装されていません。 .. .in .Cd resetconfig .in +1i すべての .Nm の設定をリセットします。 .in .Cd resetstats .Op Fl r .Op volume | plex | subdisk .in +1i 指定したオブジェクトの統計情報をリセットします。指定がない場合はすべての オブジェクトが対象です。 .in .Cd rm .Op Fl f .Op Fl r .Ar volume | plex | subdisk .in +1i オブジェクトを削除します。 .in .Cd saveconfig .in +1i .Nm の設定をディスクへ保存します。 .in .ig XXX .Cd set .Op Fl f .Ar state .Ar volume | plex | subdisk | disk .in +1i オブジェクトの状態を \fIstate\fP\| に設定します。 .in .. .Cd setdaemon .Op value .in +1i デーモンの設定を与えます。 .in .Cd start .Op volume | plex | subdisk .in +1i システムがオブジェクトへアクセスできるようにします。 .in .Cd stop .Op Fl f .Op volume | plex | subdisk .in +1i オブジェクトへのアクセスを終了させます。 パラメータを指定しないと、 .Nm を停止させます。 .in .Sh 解説 .Nm は \fBVinum\fP\| 論理ボリュームマネージャと通信するための ユーティリティプログラムです。 ボリュームマネージャの詳細については .Xr vinum 4 を参照してください。 .Xr vinum 8 は対話形式と、単独のコマンドを実行する形式のいずれも実行可能になっています。 コマンドを伴わずに .Nm を起動すると対話形式になる一方、引数としてコマンドを指定するとそのコマンド だけを実行します。 対話モードでは、 .Nm はコマンドラインヒストリを保持します。 .Ss オプション .Nm のコマンドにはオプションを付加することができます。どのコマンドにも 下記オプションのどれでも指定することができますが、指定しても変化がない場合も あります。 その場合にはそのオプションは無視されます。例えば、 .Nm stop コマンドは .Fl v オプションと .Fl V オプションを無視します。 .Bl -hang .It Cd -v .Nm -v オプションはどのコマンドにも使えて、より詳細な情報を引き出します。 .It Cd -V .Nm -V オプションはどのコマンドにも使えて、 .Nm -v オプションが表示するものよりさらに詳細な情報を引き出します。 .It Cd -f .Nm -f オプションは安全性の確認を無効にします。細心の注意を払って 使用して下さい。 このオプションは緊急時にのみ使用するものです。例えば、 コマンド .Bd -unfilled -offset indent rm -f myvolume .Ed .Pp は .Nm myvolume がオープンされていたとしても削除します。以降、このボリュームに アクセスすると、ほぼ確実にパニックを起こします。 .It Cd -r .Nm -r .if t (``recursive: 再帰的'') .if n ("recursive: 再帰的") オプションは表示系のコマンドで使い、 指示したオブジェクト だけでなく、下位のオブジェクトの情報も表示します。 例えば、 .Nm lv コマンドとともに使われる場合、 .Nm -r オプションは対象のボリュームに属するプレックスとサブディスクの情報も表示します。 .It Cd -s .Nm -s オプションは表示系のコマンドで統計情報を表示するために使います。 .El .Pp .Ss コマンドの詳細 .Pp .Nm コマンドは以下の機能を実行します。 .Bl -hang .It Nm attach Ar plex Ar volume .Op Nm rename .if n .sp -1v .if t .sp -.6v .It Nm attach Ar subdisk Ar plex Ar [offset] .Op Nm rename .sp .Nm .Ar attach は指定されたプレックスやサブディスクをそれぞれボリュームやプレックスに 組み込みます。サブディスクに ついては、プレックス中の始点 (オフセット) を指定することができます。 指定がない場合、 サブディスクは有効な最初の位置に結合されます。空でないボリュームにプレックスが 結合されると、 .Nm はそのプレックスを再統合します。 .Pp .Nm rename キーワードが指定されると、 .Nm はオブジェクトの (プレックスの場合には下位のサブディスクの) 名前を変更して デフォルトの .Nm 命名規則に合わせます。 .Pp サブディスク結合に際しては、いくつか考慮すべきことがあります: .Bl -bullet .It サブディスクの結合対象は、通常、コンカチネート化プレックスのみです。 .It ストライプ化プレックスおよび RAID-5 プレックスにおいて サブディスクが失われた場合 (例えばドライブの故障後など)、 当該サブディスクを置き換えられるのは同じ大きさのサブディスクだけです。 別のサブディスクを結合することは、現在許されていません。 .It コンカチネート化プレックスに対しては、 .Ar offset パラメータが、プレックスの先頭からのブロック単位のオフセットを指定します。 ストライプ化プレックスおよび RAID-5 プレックスに対しては、 本パラメータは、サブディスクの最初のブロックのオフセットを指定します。 別の表現をするなら、オフセットは、 サブディスクの数値指定による位置とストライプの大きさとの積になります。 例えば、ブロックの大きさが 256k のプレックスでは、 最初のサブディスクはオフセット 0 に、2 番目のオフセットは 256k に、 3 番目は 512k に、などとなります。 この計算では、RAID-5 プレックスのパリティブロックは無視されます。 .El .It Nm create Fl f Ar description-file .sp .Nm .Ar create はどのオブジェクトの作成にも使われます。相互の関連性が比較的複雑で .Nm オブジェクトの作成には潜在的に危険があることを考慮して、この機能には対話的な インタフェースはありません。詳細は後述の設定ファイルの節を参照して下さい。 .Pp .Nm の .Ar create 機能は加法的であることに注意してください: 複数回実行すると、名前付けしていない全オブジェクトのコピーを、 複数生成することになります。 .Pp 通常 .Nm create は既存の .Nm ドライブの名前を変更しません。これは、誤って消去してしまうのを避けるためです。 不要な .Nm ドライブを破棄する正しい方法は、 .Nm resetconfig コマンドで設定をリセットすることです。 しかし、起動できない .Nm ドライブ上に新規データを生成する必要がある場合があります。 この場合、 .Nm create Fl f を使用してください。 .It Nm debug .Pp .Nm .Ar debug はリモートカーネルデバッガに入るために使用します。これは .Nm が .Ar VINUMDEBUG オプション付きで作成されている場合にのみ実行可能です。 このオプションはカーネルデバッガから抜け出るまでオペレーティング システムの実行を停止させます。 リモートデバッグが設定されており、 カーネルデバッガへのリモートコネクションがないと、 デバッガから抜け出るためにはシステムをリセットしてリブート することが必要になります。 .It Nm debug .Ar flags .Pp 内部デバッグフラグのビットマスクを設定します。 本製品が改良されるにつれ、このビットマスクは警告無しに変更されるでしょう。 確認のために、ヘッダファイル .Pa sys/dev/vinumvar.h を見てください。 ビットマスクは次の値から構成されます: .Bl -hang .It DEBUG_ADDRESSES (1) .br リクエスト中のバッファ情報を表示します。 .It DEBUG_NUMOUTPUT (2) .br .Dv vp->v_numoutput の値を表示します。 .It DEBUG_RESID (4) .br .Fd complete_rqe においてデバッガに移行します。 .It DEBUG_LASTREQS (8) .br 最新のリクエストのリングバッファを保存します。 .It DEBUG_REVIVECONFLICT (16) .br 再生における衝突に関する情報を表示します。 .It DEBUG_EOFINFO (32) .br ストライププレックスで EOF を返すとき、内部状態の情報を表示します。 .It DEBUG_MEMFREE (64) .br 最後にメモリアロケータが解放したメモリ領域に関する循環リストを管理します。 .It DEBUG_REMOTEGDB (256) .br .Nm debug コマンドが発行されたときに、リモート .Ic gdb に移行します。 .El .It Nm detach Op Fl f .Ar plex .if n .sp -1v .if t .sp -.6v .It Nm detach Op Fl f .Ar subdisk .sp .Nm .Ar detach は指定されたプレックスやサブディスクを、 結合されているボリュームやプレックスから 分離します。分離するとボリュームのデータが欠ける可能性のある 場合、この操作は .Fl f オプションを指定しない限り実行されません。 オブジェクトが上位のオブジェクトに従った名前になっている場合 (例えば、プレックス vol1.p7 に結合されているサブディスク vol1.p7.s0 の場合)、 その名前は頭に .if t ``ex-'' .if n "ex-" がついたものに変更されます (例えば ex-vol1.p7.s0 に変更されます)。 その後の処理で必要であれば、その名前から頭の部分が外されます。 .Pp ストライプ化プレックスおよび RAID-5 プレックスにおいては、 .Nm detach はサブディスク数を減らしません。 その代わり、サブディスクには存在しないという印が付けられ、後で .Nm attach コマンドを使用して交換可能となります。 .It Nm info .br .Nm .Ar info は .Nm のメモリ使用に関する情報を表示します。これは主にデバッグのためのものです。 .Fl v オプションを付けると、使用中のメモリ領域についての詳細な情報を表示します。 .Pp .Fl V オプションを付けると、 .Nm ドライバが扱った最大 64 個までの最近の I/O リクエストに関する情報を、 .Ar info は表示します。 この情報は、デバッグフラグ 8 が設定されているときのみ収集されます。 書式は次のようになります: .Pp .Bd -literal vinum -> info -V Flags: 0x200 1 opens Total of 38 blocks malloced, total memory: 16460 Maximum allocs: 56, malloc table at 0xf0f72dbc Time Event Buf Dev Offset Bytes SD SDoff Doffset Goffset 14:40:00.637758 1VS Write 0xf2361f40 0x5b03 0x10 16384 14:40:00.639280 2LR Write 0xf2361f40 0x5b03 0x10 16384 14:40:00.639294 3RQ Read 0xf2361f40 0x427 0x104109 8192 19 0 0 0 14:40:00.639455 3RQ Read 0xf2361f40 0x417 0xd2109 8192 17 0 0 0 14:40:00.639529 3RQ Read 0xf2361f40 0x40f 0x6e109 8192 16 0 0 0 14:40:00.652978 4DN Read 0xf2361f40 0x427 0x104109 8192 19 0 0 0 14:40:00.667040 4DN Read 0xf2361f40 0x40f 0x6e109 8192 16 0 0 0 14:40:00.668556 4DN Read 0xf2361f40 0x417 0xd2109 8192 17 0 0 0 14:40:00.669777 6RP Write 0xf2361f40 0x427 0x104109 8192 19 0 0 0 14:40:00.685547 4DN Write 0xf2361f40 0x427 0x104109 8192 19 0 0 0 .Ed .Pp .Ar Buf フィールドは、ユーザバッファヘッダのアドレスを常に含みます。 ユーザリクエストに関連付けられるリクエスト (複数可) を識別するために 使用できますが、100% 信頼できるものというわけではありません: 理論的には、シーケンス中の 2 個のリクエストが同じバッファヘッダを使い得ますが、 これは一般的ではありません。 リクエストの先頭は、イベント .Ar 1VS で識別可能です。 前記の例では、複数のリクエストが単一のユーザリクエストに含まれています。 .Pp .Ar Event フィールドは、 リクエストチェーン中のイベントシーケンスに関連する情報を含みます。 .Ar 1 から .Ar 6 までの数字はイベントの大まかなシーケンスを示し、 2 文字の省略形は位置のニーモニックです。 .Bl -hang .It 1VS (vinum の strategy) .Fd vinumstrategy の入口にある、ユーザリクエストに関する情報を表示します。 デバイス番号は .Nm デバイスであり、オフセットと長さはユーザパラメータです。 本ニーモニックは、常にリクエストシーケンスの先頭になります。 .It 2LR (リクエスト発行) 関数 .Fd launch_requests において低レベル .Nm リクエストを発行する直前の、ユーザリクエストを表示します。 パラメータは .Ar 1VS の情報と同じはずです。 .Pp ここから後のリクエストでは、利用可能である場合、 .Ar Dev は関連付けられたディスクパーティションのデバイス番号であり、 .Ar Offset はパーティションの先頭からのオフセットであり、 .Ar SD は .Dv vinum_conf 中のサブディスクインデックスであり。 .Ar SDoff はサブディスクの先頭からのオフセットであり、 .Ar Doffset は関連付けられたデータリクエストのオフセットであり、 .Ar Goffset は関連付けられたグループリクエストのオフセットです。 .It 3RQ (リクエスト) 高レベルのリクエストを満たすために発行される、 いくつかありうる低レベル .Nm リクエストのうちのひとつを表示します。 この情報は、 .Fd launch_requests においても記録されます。 .It 4DN (完了) .Fd complete_rqe から呼ばれ、リクエストの完了を表示します。 この完了は、ステージ .Ar 4DN において .Fd launch_requests から発行されたリクエストか、またはステージ .Ar 5RD か .Ar 6RP の .Fd complete_raid5_write から発行されたリクエストにマッチするはずです。 .It 5RD (RAID-5 データ) .Fd complete_raid5_write から呼ばれ、 パリティ計算後に RAID-5 データストライプへ書き込まれたデータを表現します。 .It 6RP (RAID-5 パリティ) .Fd complete_raid5_write から呼ばれ、 パリティ計算後に RAID-5 パリティストライプへ書き込まれたデータを表現します。 .El .\" XXX .It Nm init Ar plex .Pp .Nm .Ar init は指定したプレックスのすべてのサブディスクに 0 を書き込んでプレックスを初期化 します。これはプレックス中のデータに矛盾のないことを確実にする唯一の方法です。 RAID-5 プレックスの使用前には、この初期化が必要です。 他の新規プレックスに対しても、この初期化を推奨します。 .Pp .Nm はプレックス中のすべてのサブディスクを並行して初期化します。 この操作には長い時間が かかるため、バックグラウンドで実行されます。 .Nm は初期化が完了するとコンソールメッセージを出力します。 .It Nm label .Ar volume .Pp .Nm label コマンドは、ボリュームに .Ar ufs 形式のボリュームラベルを書き込みます。これは適切に .Ar disklabel を呼び出すことに対しての、単純な代替方法です。 いくつかの .Ar ufs コマンドはラベルを入手するために正規の .Ar ioctl コールを使わず、依然としてラベルを捜してディスクの読み込みを行う ため、このコマンドは必要になります。 .Nm はボリュームのデータとは別にボリュームラベルを保持しているため、この コマンドは .Ar newfs 用には必要ありません。 このコマンドの価値は低下しています。 .Pp .It Nm list .Op Fl r .Op Fl V .Op volume | plex | subdisk .if n .sp -1v .if t .sp -.6v .It Nm l .Op Fl r .Op Fl V .Op volume | plex | subdisk .if n .sp -1v .if t .sp -.6v .It Nm ld .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume .if n .sp -1v .if t .sp -.6v .It Nm ls .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op subdisk .if n .sp -1v .if t .sp -.6v .It Nm lp .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op plex .if n .sp -1v .if t .sp -.6v .It Nm lv .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume .Pp .Ar list は指定したオブジェクトの情報を表示するために使われます。引数が省略されると .Nm が認識しているすべてのオブジェクトについての情報が表示されます。 .Ar l コマンドは .Ar list と同じものです。 .Pp .Fl r オプションはボリュームとプレックスに関連します。 指定されると、そのオブジェクト下位のサブディスクと (ボリュームに対しては) プレックスの情報を再帰的に表示します。 .Ar lv , .Ar lp , .Ar ls , .Ar ld のコマンドは、それぞれボリューム、プレックス、サブディスク、そしてドライブの 情報だけを表示します。これはパラメータを指定しないで使う場合に特に有用です。 .Pp .Fl s オプションで .Nm は装置の統計情報を出力するようになり、 .Op Fl v (verbose: 饒舌な) オプションはいくらかの付加情報を出力させ、 そして .Op Fl V は数多くの付加情報を出力させます。 .It Nm makedev .br .Nm makedev コマンドは、ディレクトリ /dev/vinum を除去した上で、 現在の設定を反映するようなデバイスノードと共にこのディレクトリを再作成します。 本コマンドは、通常の場合に使用されることを意図していません。 非常時にのみ使用するために提供しています。 .Pp .It Nm quit 対話モードで実行中のときに、 .Nm プログラムを終了します。通常は、文字 .Ar EOF を入力することで実現できます。 .It Nm printconfig Pa file 現在の設定のコピーを、 .Nm 設定を再生成可能な書式で、 .Pa file に書き込みます。 ディスク上に保存された設定とは違い、ドライブの定義を含みます。 .It Nm read .Ar disk Op disk... .Pp .Nm read コマンドは、指定したディスクを走査し、作成済の設定情報を含む .Nm パーティションを探します。 そして、最近更新されたものから過去に更新されたものの順番で、 設定を読み込みます。 .Nm は最新のすべての設定情報を各ディスクパーティションに保持しています。 このコマンドの パラメータとして、設定の中の全スライスを指定する必要があります。 .Pp .Nm read コマンドは、他の .Nm パーティションを持つシステム上で、 .Nm 設定を選択的にロードすることを意図しています。 システム上の全パーティションを起動したい場合、 .Nm start コマンドを使用する方が簡単です。 .Pp 本コマンド実行時に .Nm がエラーになると、 ディスク上のコピーが壊れないようにするため、自動的な設定更新を無効にします。 これは、ディスク上の設定が、設定エラーを示す (例えば、有効な空間指定を持たないサブディスク) 場合にも同様です。 再度更新をオンにするには、 .Nm setdaemon と .Nm saveconfig のコマンドを使用してください。 デーモンオプションマスクのビット 4 をリセットして、 設定保存を再度有効にしてください。 .It Nm rename .Op Fl r .Ar [ drive | subdisk | plex | volume ] .Ar newname .Pp 指定したオブジェクトの名前を変更します。 .Fl r オプションが指定されると、下位のオブジェクトがデフォルトの規則に従って命名され ます。プレックスの名前はボリューム名に .p\f(BInumber\fP を付加して作られ、 サブディスクの名前はプレックス名に .s\f(BInumber\fP を付加して作られます。 .It Nm replace .Ar [ subdisk | plex ] .Ar newobject .Pp 指定したオブジェクトを同一の他のオブジェクトで置き換えます。このコマンドはまだ 実装されていません。 .It Nm resetconfig .Pp .Nm resetconfig コマンドはシステム内の .Nm 設定を完全に削除します。設定を完全に消去したい場合にだけ使って下さい。 .Nm は確認を求めます。NO FUTURE (前途なし) という語句を以下の通りに入力する必要が あります。 .Bd -unfilled -offset indent # \f(CBvinum resetconfig\f(CW WARNING! This command will completely wipe out your vinum configuration. All data will be lost. If you really want to do this, enter the text NO FUTURE Enter text -> \f(BINO FUTURE\fP Vinum configuration obliterated (訳注: ここから上記テキストの翻訳です) 警告! このコマンドはあなたの vinum 設定を完全に消し去ります。 全データは失われます。本当にこれを実行したい場合は、語句 NO FUTURE を入力して下さい。 入力してください -> \f(BINO FUTURE\fP vinum の設定は削除されました。 (訳注: ここまで上記テキストの翻訳です) .Ed .ft R .Pp メッセージが示すように、どたん場のコマンドです。 既存の設定をもう見たくもないとき以外は、このコマンドを使わないでください。 .It Nm resetstats .Op Fl r .Op volume | plex | subdisk .Pp .Nm は各オブジェクトについて多数の統計カウンタを保持しています。詳細は ヘッダファイル .Fi vinumvar.h を参照して下さい。 .\" XXX 仕上がったらここに入れる これらのカウンタをリセットするためには .Nm resetstats コマンドを使って下さい。 .Fl r オプションも共に指定すると、 .Nm は下位のオブジェクトのカウンタもリセットします。 .It Nm rm .Op Fl f .Op Fl r .Ar volume | plex | subdisk .Pp .Nm rm はオブジェクトを .Nm 設定から消去します。ひとたびオブジェクトが消去されるとそれを復旧する方法は ありません。通常 .Nm はオブジェクトを消去する前に数多くの一貫性確認を行います。 .Fl f オプションを指定すると、 .Nm はこの確認を省略し、オブジェクトを無条件に消去します。このオプションは細心の 注意を払って使用して下さい。ボリューム上のすべてのデータを失うことも あり得ます。 .Pp 通常、 .Nm は下位にプレックスを持つボリュームや、下位にサブディスクを持つプレックスを 消去することを拒否します。 .Fl f フラグを指定すると、 .Nm は無条件にオブジェクトを消去します。または .Fl r (recursive: 再帰的) フラグを使うことで、同様に下位のオブジェクトを 消去することができます。 .Fl r フラグを付けてボリュームを消去すると、プレックスとそれに属するサブディスクも 消去します。 .It Nm saveconfig .Pp 現在の設定をディスクに保存します。 本コマンドの第一義は整備用です。 例えば、起動時にエラーが発生した場合、更新は無効化されます。 再度有効化しても、設定は自動的にはディスクへ保存されません。 このコマンドを使用して設定を保存してください。 .ig .It Nm set .Op Fl f .Ar state .Ar volume | plex | subdisk | disk .Nm set は指定したオブジェクトに、妥当な状態 (下記「オブジェクト状態」参照) のひとつを セットします。 通常、 .Nm は変更を加える前に非常に多くの一貫性の調査を実行します。 .Fl f オプションを指定すると、 .Nm はこの調査を省略し、無条件に変更を行います。このオプションは大いに注意して 使って下さい。ボリューム上のすべてのデータを失うこともあり得ます。 .\"XXX .Nm このコマンドはまだ実装されていません。 .. .It Nm setdaemon .Op value .Pp .Nm setdaemon は .Nm デーモンの変数ビットマスクを設定します。 本コマンドは一時的なものであり、将来置き換えられます。 現在、ビットマスクにはビット 1 (全アクションを syslog へ記録する) と ビット 4 (設定を更新しない) があります。 オプションビット 4 はエラー回復時に有用かもしれません。 .It Nm start .Op volume | plex | subdisk .Pp .Nm start は 1 つまたはそれ以上の .Nm オブジェクトを起動します ( .Ar up 状態に移行させます)。 .Pp オブジェクト名を指定しないと、システムが .Nm ドライブであると知っているディスクを、 .Nm は走査します。その後、 .Nm read コマンドのところに書いてあるように、設定を読み込みます。 .Nm ドライブにはそのドライブ中のデータについてのすべての情報を持つヘッダが 入っており、その情報としてはプレックスとボリュームを表現するために必要な 他のドライブの名前を含んでいます。 .Pp 本コマンド実行時に .Nm がエラーになると、 ディスク上のコピーが壊れないようにするため、自動的な設定更新を無効にします。 これは、ディスク上の設定が、設定エラーを示す (例えば、有効な空間指定を持たないサブディスク) 場合にも同様です。 再度更新をオンにするには、 .Nm setdaemon と .Nm saveconfig のコマンドを使用してください。 デーモンオプションマスクのビット 4 をリセットして、 設定保存を再度有効にしてください。 .Pp オブジェクト名が指定されると、 .Nm はそれらを起動します。 通常、この操作はサブディスクに対してのみ行います。 動作はオブジェクトの現在の状態に依存します: .Bl -bullet .It オブジェクトが既に .Ar up 状態の場合、 .Nm はなにもしません。 .It オブジェクトがサブディスクであり、 .Ar down または .Ar reborn の状態の場合、 .Nm は .Ar up 状態に変更します。 .It オブジェクトがサブディスクであり、 .Ar empty 状態の場合、変更はサブディスクに依存します。 サブディスクがプレックスの一部であり このプレックスが他のプレックスを含むボリュームの一部である場合、 .Nm はサブディスクを .Ar reviving 状態にし、データをボリュームからコピーしようとします。 操作完了時に、サブディスクは .Ar up 状態に設定されます。 サブディスクがプレックスの一部であり このプレックスが他のプレックスを含まないボリュームの一部である場合、 またはサブディスクがプレックスの一部ではない場合、 .Nm は即時にサブディスクを .Ar up 状態にします。 .It オブジェクトがサブディスクであり、 .Ar reviving 状態である場合、 .Nm は .Ar revive 操作をオフラインにて継続します。 操作完了時に、サブディスクは .Ar up 状態に設定されます。 .El .Pp サブディスクが .Ar up 状態になると、 .Nm は自動的に、 サブディスクが属す可能性のあるプレックスとボリュームの状態をチェックし、 これらの状態を適切に更新します。 .Pp オブジェクトがボリュームまたはプレックスの場合、 .Nm start は現在のところ効果がありません: 下位のサブディスクの (ボリュームの場合にはこれに加えてプレックスの) 状態を チェックし、これに従ってオブジェクトの状態を設定します。 将来のバージョンでは、本操作はサブディスクに影響を与えるようになります。 .Pp マルチプレックスボリュームの中の 1 つのプレックスを起動するには、 ボリューム中の他のプレックスからデータをコピーする必要があります。 これにはしばしば長い時間がかかるため、バックグラウンドで実行されます。 .It Nm stop .Op Fl f .Op volume | plex | subdisk .Pp パラメータを指定しないと、 .Nm stop は .Nm kld を削除し、 .Xr vinum 8 を停止します。 活動状態のオブジェクトが存在しない場合のみ、行うことが可能です。 特に、 .Fl f フラグはこの要求に優先しません。 このコマンドが動作するのは、 .Nm が kld としてロードされている場合のみです。 静的に構成されたドライバをアンロードすることはできないからです。 .Nm が静的に構成されている場合、 .Nm .Nm stop は失敗します。 .Pp オブジェクト名が指定されると、 .Nm stop はそのオブジェクトへのアクセスを無効化します。 オブジェクトに下位オブジェクトがある場合、 それらのサブオブジェクトは既に非活動状態 (stop また error) となっているか、 .Fl r と .Fl f のフラグが指定されていることが必要です。 このコマンドは、オブジェクトを設定から取り除きません。 .Nm start コマンドの後で再度アクセスができるようになります。 .Pp デフォルトでは .Nm は動作中のオブジェクトは停止しません。例えば、動作中のボリュームに結合 されているプレックスは停止できないし、オープン中のボリュームは停止できません。 .Fl f オプションは .Nm にこの確認を省略して無条件に削除するよう指示します。このオプションは 大いに注意し、よく理解した上で使って下さい。もし間違って使うとひどい データ破壊を起こすことがあります。 .El .Ss 設定ファイル .Nm では、 .Nm create コマンドに渡すすべての引数は設定ファイルに入っている必要があります。 設定ファイルのエントリは、ボリュームやプレックスやサブディスクを定義します。 エントリは 1 行に 1 つということ以外には決まった書式はありません。 .Pp 設定ファイルのいくつかの引数では、大きさ (長さ、ストライプ長) を指定します。 これらの長さは、バイト単位でも、512バイトのセクタ数 (\f(CWb\fRを後ろにつける) でも、キロバイト単位 (\f(CWk\fRをつける) でも、メガバイト単位(\f(CWm\fRを つける)でも、またはギガバイト単位 (\f(CWg\fRをつける) でも指定することが できます。これらの数はそれぞれ 2**10、2**20、2**30を表しています。例えば、 \f(CW16777216\fR バイトという値は \f(CW16m\fR とも \f(CW16384k\fR とも \f(CW32768b\fR とも記述することができます。 .Pp 設定ファイルには以下のエントリを記述することができます。 .Pp .Bl -hang -width 4n .It Nm volume .Ar name .Op options .Pp .Ar name という名前でボリュームを定義します。 .Pp オプションには次のものがあります。 .Pp .Bl -hang -width 18n .It Nm plex Ar plexname 指定したプレックスをボリュームに追加します。 .Ar plexname が .Ar * として指定されると、 .Nm は設定ファイル中のボリューム定義の後で、次の妥当なエントリとなり得るプレックス の定義を捜します。 .It Nm readpol Ar policy ボリュームの .Ar read policy (読み込み方針) を定義します。 .Ar policy は .Nm round か .Nm prefer Ar plexname のどちらかです。 .Nm は読み込み要求を、ただ 1 つのプレックスによって満たします。 .Ar round 読み込み方針は、読み込みを別々のプレックスから \fIラウンドロビン\fR\| 方式で 行うように指定します。 .Ar prefer 読み込み方針では、指定したプレックスから毎回読み込みを行います。 .It Nm setupstate .Pp マルチプレックスボリュームを作成する際に、すべてのプレックスの内容に一貫性が あると仮定します。通常こうなることはないため、正式には .Nm init コマンドを使って、最初に一貫性のある状態にする必要があります。しかし ストライプ化プレックスとコンカチネート化プレックスの場合には、普通は一貫性が ないままでも問題にはなりません。ボリュームをファイルシステムや スワップパーティションとして使う場合にはディスク上の以前の内容は どうでもよいため、それは無視されます。この危険を受け入れる場合には、 このキーワードを使って下さい。 設定ファイル中でボリュームの直後で定義されるプレックスに対してのみ 適用されます。 後でプレックスをボリュームに追加する場合には、 これらのプレックスを統合する必要があります。 .Pp RAID-5 プレックスには .Nm init を使うことが \fI必要\fP\| なことに注意して下さい。さもないと 1 つのサブディスクに障害が起きた時、大きくデータが破壊されます。 .fi .El .It Nm plex Op options .Pp プレックスを定義します。ボリュームとは違い、名前は不要です。 オプションには次のものを指定可能です: .Pp .Bl -hang -width 18n .It Nm name Ar plexname プレックスの名前を指定します。プレックスやサブディスクに名前をつける場合には .Ar name キーワードが必要になることに注意して下さい。 .sp .It Nm org Ar organization Op stripesize .Pp プレックスの編成を指定します。 .Ar organization は .Ar concat か .Ar striped か .Ar raid5 のいずれかです。 .Ar striped と .Ar raid5 のプレックスに対しては .Ar stripesize 引数を指定する必要がありますが、 .Ar concat のプレックスに対しては省略する必要があります。 .Ar striped タイプについては各ストライプの幅を指定します。 .Ar raid5 については、グループの大きさを指定します。 グループとはプレックスの一部分であり、 同じサブディスクに入っているすべてのデータのパリティが入っています。 それはプレックスの大きさの約数である必要があり (つまり、プレックスの大きさをストライプの大きさで割ったものは 整数である必要があり)、 ディスクセクタ長 (512バイト) の倍数である必要があります。 .sp 最適な性能のためには、ストライプの大きさは少なくとも 128kB であるべきです。 これより小さくすると、 個々のリクエストが複数のディスクに対して割り当てられることにより、 I/O のアクティビティが非常に増加します。 本マッピングによる並行転送数増加に起因する性能向上は、 レイテンシ増加に起因する性能劣化を引き起しません。 ストライプの大きさの目安は、256 kB から 512 kB の間です。 .Pp ストライプ化プレックスは最低 2 つのサブディスクを持つ必要がありますし (そうでないとコンカチネート化プレックスになります)、 それぞれは同じ大きさである必要があります。 RAID-5 プレックスは最低 3 つのサブディスクを持つ必要があり、 それぞれは同じ大きさである必要があります。 実際には RAID-5 プレックスは最低 5 つのサブディスクから構成されるべきです。 .Pp .It Nm volume Ar volume プレックスを、指定したボリュームに追加します。 .Nm volume キーワードが指定されないと、プレックスは設定ファイル中の最後に記述された ボリュームに追加されます。 .sp .It Nm sd Ar sdname Ar offset 指定したサブディスクをプレックスの .Ar offset の位置に追加します。 .br .fi .El .It Nm subdisk Op options .Pp サブディスクを定義します。オプションには次のものを指定可能です: .Pp .Bl -hang -width 18n .nf .sp .It Nm name Ar name サブディスクの名前を指定します。これは必ずしも指定する必要は ありません\(em 上記の「オブジェクトの命名」を参照してください。 サブディスクに名前をつける場合には .Ar name キーワードを指定する必要があることに注意して下さい。 .sp .It Nm plexoffset Ar offset プレックス内のサブディスクの始点を指定します。指定がないと、 .Nm はすでにサブディスクがあればその直後の領域を割り当て、なければ プレックスの先頭から割り当てます。 .sp .It Nm driveoffset Ar offset ドライブ内のサブディスクの始点を指定します。指定がないと、 .Nm はドライブ中で最初の .Ar length バイト連続の空き領域を割り当てます。 .sp .It Nm length Ar length サブディスクの大きさを指定します。このキーワードは必須です。 デフォルト値はありません。 値 0 を指定すると、 .if t ``ドライブ上で最大限利用可能な連続空き領域を使用'' .if n "ドライブ上で最大限利用可能な連続空き領域を使用" という意味になります。 ドライブが空の場合、サブディスクとしてドライブ全体を使用することを意味します。 .Nm length は .Nm len と短縮することもできます。 .sp .It Nm plex Ar plex サブディスクが属すプレックスを指定します。デフォルトでは、サブディスクは 最後に記述されたプレックスに属します。 .sp .It Nm drive Ar drive サブディスクが乗るドライブを指定します。デフォルトでは最後に記述された ドライブ上に位置します。 .br .fi .El .It Nm drive Ar name Op options .Pp ドライブを定義します。オプションには次のものを指定可能です: .Pp .Bl -hang -width 18n .It Nm device Ar devicename ドライブが乗るデバイスを指定します。 .El .El .Sh 設定ファイル例 .Bd -literal # vinum 設定ファイル例 # # ドライブ drive drive1 device /dev/da1h drive drive2 device /dev/da2h drive drive3 device /dev/da3h drive drive4 device /dev/da4h drive drive5 device /dev/da5h drive drive6 device /dev/da6h # 1 つのストライプ化プレックスをもつボリューム volume tinyvol plex org striped 512b sd length 64m drive drive2 sd length 64m drive drive4 volume stripe plex org striped 512b sd length 512m drive drive2 sd length 512m drive drive4 # 2 つのプレックス volume concat plex org concat sd length 100m drive drive2 sd length 50m drive drive4 plex org concat sd length 150m drive drive4 # 1 つのストライプ化プレックスと 1 つのコンカチネート化プレックスを持つボリューム volume strcon plex org striped 512b sd length 100m drive drive2 sd length 100m drive drive4 plex org concat sd length 150m drive drive2 sd length 50m drive drive4 # 1 つの RAID-5 プレックスと 1 つのストライプ化プレックスを持つボリューム # RAID-5 ボリュームの方が 1 つのサブディスク分だけ大きいことに注意 volume vol5 plex org striped 64k sd length 1000m drive drive2 sd length 1000m drive drive4 plex org raid5 32k sd length 500m drive drive1 sd length 500m drive drive2 sd length 500m drive drive3 sd length 500m drive drive4 sd length 500m drive drive5 .Ed .Ss ドライブレイアウト上の考慮点 現在、 .Nm ドライブは BSD ディスクパーティションです。それは ファイルシステムの上書きを避けるために .Ar vinum タイプである必要があります。 互換性のために、現在の .Nm はパーティションタイプ .Ar unused を受け付けますが、次のリリースではこの種類のパーティションは許しません。 タイプ .Ar unused であるパーティションから設定を読み出すと、 .Nm は警告メッセージを表示します。 .Nm disklabel .Ar -e を使用して、パーティションタイプ定義を編集してください。 次の表示は、 .Nm disklabel が示す典型的なパーティションレイアウトです: .Bd -literal 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 81920 344064 4.2BSD 0 0 0 # (Cyl. 240*- 297*) b: 262144 81920 swap # (Cyl. 57*- 240*) c: 4226725 0 unused 0 0 # (Cyl. 0 - 2955*) e: 81920 0 4.2BSD 0 0 0 # (Cyl. 0 - 57*) f: 1900000 425984 4.2BSD 0 0 0 # (Cyl. 297*- 1626*) g: 1900741 2325984 vinum 0 0 0 # (Cyl. 1626*- 2955*) .Ed .sp この例では、パーティション .Nm g を .Nm パーティションとして使用可能です。パーティション .Nm a , .Nm e , .Nm f は、 .Nm UFS ファイルシステムまたは .Nm ccd パーティションとして使用可能です。パーティション .Nm b はスワップパーティションであり、パーティション .Nm c はディスク全体を表現するため他の用途に使用できません。 .Pp .Nm は各パーティションの先頭から 265 セクタを設定情報に使用するため、 サブディスクの最大の大きさはドライブよりも 265 セクタ小さくなります。 .Sh VINUM 設定法 本節では、 .Nm システムの実装方法に関する、現実的なアドバイスを行います。 .Ss データを何処に置くか まず決定が必要な選択は、データを何処に置くかです。 .Nm 専用のディスクパーティションが必要です。 前述した、ドライブレイアウト上の考慮点にある使用例を参照してください。 .Xr disklabel 8 がパーティションタイプ .Nm を理解しないバージョンである場合を除き、パーティションタイプ .Nm を選択してください。 .Xr disklabel 8 が理解しない場合には、これを更新するまで、パーティションタイプ .Nm unused を使用する必要があります。 真のパーティション名 (例えば .Pa /dev/da0s1g ) ではなく、互換パーティション名 (例えば .Pa /dev/da0g ) を使用してください。 現在のところ、 .Nm start コマンドには互換パーティションのみを .Nm は使用しますので、問題を避けることが可能となっています。 .Ss ボリュームのデザイン .Nm ボリュームの設定方法は、あなたの意図に依存します。 次のように多くの可能性があります: .Bl -enum .It 多くの小さなディスクを結合して、 適切な大きさのファイルシステムを作成したいと考えるかもしれません。 例えば、小さなディスクを 5 個持っていて、 全空間を単一ボリュームとして使用したい場合、次のような設定ファイルを書きます: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e drive d5 device /dev/da6e volume bigger plex org concat sd length 0 drive d1 sd length 0 drive d2 sd length 0 drive d3 sd length 0 drive d4 sd length 0 drive d5 .Ed .Pp この場合、サブディスクの長さを 0 と指定します。 これは、 .if t ``ドライブ上にある空き空間のうち、最大領域を使用する'' .if n "ドライブ上にある空き空間のうち、最大領域を使用する" ことを意味します。 指定するサブディスクが、ドライブ上の唯一のサブディスクである場合、 このサブディスクは使用可能な空間全体を使用します。 .It ディスク故障に対する追加の回復力 (レジリエンス; resilience) を .Nm に与えたい場合を考えます。 選択肢としては、 .if t ``ミラーリング'' .if n "ミラーリング" とも呼ばれる RAID-1 か、 .if t ``パリティ'' .if n "パリティ" とも呼ばれる RAID-5 があります。 .Pp ミラーリングの設定のためには、 単一ボリュームの中に複数のプレックスを作成する必要があります。 例えば、 2 GB のミラー化ボリュームを作成するには、 次のような設定ファイルを作成します: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e volume mirror plex org concat sd length 2g drive d1 plex org concat sd length 2g drive d2 .Ed .Pp ミラー化ドライブを作成するときには、 各プレックスからのデータが、 違う物理ディスク上にあることを保証することが重要です。 これにより、単一ドライブ故障においても、 .Nm はボリュームの完全なアドレス空間にアクセス可能となります。 各プレックスが、 完全なボリュームと同じだけのデータを必要とすることに注意してください: この例では、ボリュームは 2 GB の大きさですが、各プレックス (と各サブディスク) は 2 GB を必要としますので、全体のディスクストレージ要求は 4 GB となります。 .Pp RAID-5 の設定をするには、タイプ .Ar raid5 の単一プレックスを作成します。 例えば、回復力を持つ 2 GB に相当するボリュームを作成するには、 次のような設定ファイルを使用します: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e drive d5 device /dev/da6e volume raid plex org raid5 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 sd length 512m drive d5 .Ed .Pp RAID-5 プレックスは、最低 3 個のサブディスクを必要とします。 これらのうち 1 個には、パリティ情報を格納するので、 データストレージとしては使用しません。 より多くのディスクを使用すると、 より多くの割合のディスクストレージを、 データストレージとして使用可能となります。 この例では、総ストレージ使用量は 2.5 GB です。 これに対し、ミラー設定での総ストレージ使用量は 4 GB です。 最小の 3 個のディスクだけを使用する場合、 情報格納のために次のように 3 GB を必要とします: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e volume raid plex org raid5 512k sd length 1g drive d1 sd length 1g drive d2 sd length 1g drive d3 .Ed .Pp ミラー化ドライブを作成するときには、 各サブディスクからのデータが、 違う物理ディスク上にあることを保証することが重要です。 これにより、単一ドライブ故障においても、 .Nm はボリュームの完全なアドレス空間にアクセス可能となります。 .It また、 .Nm の設定により、 ファイルシステムへのアクセスの並行性を増したいと考えるかもしれません。 多くの場合、単一のファイルシステムへのアクセスは、 ディスク速度により制限されます。 ボリュームを複数のディスクに分散することにより、 複数アクセス環境でのスループットを増すことが可能です。 この技術は、単一アクセス環境では、 ほとんど効果がないかまったく効果がありません。 .Nm は .if t ``ストライピング'' .if n "ストライピング" または RAID-0 とも呼ばれる技術を使用し、アクセスの並行性を増します。 RAID-0 という名称は誤解を生じさせるものです: なぜなら、ストライピングは冗長性も更なる信頼性も提供しないからです。 実際、信頼性は低下します。 なぜなら、単一ディスクの故障はボリュームを使用不可とし、 多くのディスクを使うほどこれらのうち 1 個が故障する確率は増加するからです。 .Pp ストライピングの実装のためには、 .Ar striped (ストライプ化) プレックスを使用します: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e volume raid plex org striped 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 .Ed .Pp ストライプ化プレックスの最低サブディスク数は 2 個です。 多くのディスクを使用するほど、性能が向上します。 .It 両方の最良点を得ることにより、回復力と性能の両方を得ることを考えます。 これは、RAID-10 (RAID-1 と RAID-0 の組み合わせ) と呼ばれることがあります。 この名称もまた誤解を生じさせるものです。 .Nm では、次のような設定ファイルを使用可能です: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e volume raid plex org striped 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 plex org striped 512k sd length 512m drive d4 sd length 512m drive d3 sd length 512m drive d2 sd length 512m drive d1 .Ed .Pp ここでは、プレックスはストライプ化され、性能を向上しています。 そして、このようなプレックスが 2 個あり、回復力を向上しています。 この例で、2 番目のプレックスのサブディスクの順番が、 1 番目のプレックスの逆になっていることに注意してください。 これは性能のためであり、後で議論します。 .El .Ss ボリュームの作成 ひとたび設定ファイルを作成した後は、 .Nm を起動し、ボリュームを作成します。 この例では、設定ファイルは .Pa configfile です: .Bd -literal # vinum create -v configfile 1: drive d1 device /dev/da2e 2: drive d2 device /dev/da3e 3: volume mirror 4: plex org concat 5: sd length 2g drive d1 6: plex org concat 7: sd length 2g drive d2 Configuration summary Drives: 2 (4 configured) Volumes: 1 (4 configured) Plexes: 2 (8 configured) Subdisks: 2 (16 configured) Drive d1: Device /dev/da2e Created on vinum.lemis.com at Tue Mar 23 12:30:31 1999 Config last updated Tue Mar 23 14:30:32 1999 Size: 60105216000 bytes (57320 MB) Used: 2147619328 bytes (2048 MB) Available: 57957596672 bytes (55272 MB) State: up Last error: none Drive d2: Device /dev/da3e Created on vinum.lemis.com at Tue Mar 23 12:30:32 1999 Config last updated Tue Mar 23 14:30:33 1999 Size: 60105216000 bytes (57320 MB) Used: 2147619328 bytes (2048 MB) Available: 57957596672 bytes (55272 MB) State: up Last error: none Volume mirror: Size: 2147483648 bytes (2048 MB) State: up Flags: 2 plexes Read policy: round robin Plex mirror.p0: Size: 2147483648 bytes (2048 MB) Subdisks: 1 State: up Organization: concat Part of volume mirror Plex mirror.p1: Size: 2147483648 bytes (2048 MB) Subdisks: 1 State: up Organization: concat Part of volume mirror Subdisk mirror.p0.s0: Size: 2147483648 bytes (2048 MB) State: up Plex mirror.p0 at offset 0 Subdisk mirror.p1.s0: Size: 2147483648 bytes (2048 MB) State: up Plex mirror.p1 at offset 0 .Ed .Pp .Fl v フラグは、設定に従ってファイルをリストするよう、 .Nm に指示します。その後、 .Nm list Fl v コマンドと同じ書式で、現在の設定をリストします。 .Ss より多くのボリュームを作成する ひとたび .Nm ボリュームを作成した後は、 .Nm はこれらの情報を内部の設定ファイルにて管理します。 再度作成する必要はありません。 特に、 .Nm create コマンドを再実行すると、追加のオブジェクトを作ることになります: .Bd -literal .if t .ps -2 # vinum create sampleconfig Configuration summary Drives: 2 (4 configured) Volumes: 1 (4 configured) Plexes: 4 (8 configured) Subdisks: 4 (16 configured) D d1 State: up Device /dev/da2e Avail: 53224/57320 MB (92%) D d2 State: up Device /dev/da3e Avail: 53224/57320 MB (92%) V mirror State: up Plexes: 4 Size: 2048 MB P mirror.p0 C State: up Subdisks: 1 Size: 2048 MB P mirror.p1 C State: up Subdisks: 1 Size: 2048 MB P mirror.p2 C State: up Subdisks: 1 Size: 2048 MB P mirror.p3 C State: up Subdisks: 1 Size: 2048 MB S mirror.p0.s0 State: up PO: 0 B Size: 2048 MB S mirror.p1.s0 State: up PO: 0 B Size: 2048 MB S mirror.p2.s0 State: up PO: 0 B Size: 2048 MB S mirror.p3.s0 State: up PO: 0 B Size: 2048 MB .if t .ps .Ed .Pp この例では (今回は .Fl f フラグを付けています)、 .Nm create の再実行により 4 個の新規プレックスを作成し、 それぞれが新規サブディスクを持ちます。 他のボリュームを追加したい場合、これらのための新規設定ファイルを作成します。 .Nm が既に知っているドライブを参照する必要はありません。 例えば、ボリューム .Pa raid を 4 個のディスク .Pa /dev/da1e , .Pa /dev/da2e , .Pa /dev/da3e , .Pa /dev/da4e 上に作成するには、他の 2 個についてのみ記述するだけで良いです: .Bd -literal drive d3 device /dev/da1e drive d4 device /dev/da4e volume raid plex org raid5 512k sd size 2g drive d1 sd size 2g drive d2 sd size 2g drive d3 sd size 2g drive d4 .Ed .Pp この設定ファイルでは、次のようになります: .Bd -literal # vinum create newconfig Configuration summary Drives: 4 (4 configured) Volumes: 2 (4 configured) Plexes: 5 (8 configured) Subdisks: 8 (16 configured) D d1 State: up Device /dev/da2e Avail: 51176/57320 MB (89%) D d2 State: up Device /dev/da3e Avail: 53220/57320 MB (89%) D d3 State: up Device /dev/da1e Avail: 53224/57320 MB (92%) D d4 State: up Device /dev/da4e Avail: 53224/57320 MB (92%) V mirror State: down Plexes: 4 Size: 2048 MB V raid State: down Plexes: 1 Size: 6144 MB P mirror.p0 C State: init Subdisks: 1 Size: 2048 MB P mirror.p1 C State: init Subdisks: 1 Size: 2048 MB P mirror.p2 C State: init Subdisks: 1 Size: 2048 MB P mirror.p3 C State: init Subdisks: 1 Size: 2048 MB P raid.p0 R5 State: init Subdisks: 4 Size: 6144 MB S mirror.p0.s0 State: up PO: 0 B Size: 2048 MB S mirror.p1.s0 State: up PO: 0 B Size: 2048 MB S mirror.p2.s0 State: up PO: 0 B Size: 2048 MB S mirror.p3.s0 State: up PO: 0 B Size: 2048 MB S raid.p0.s0 State: empty PO: 0 B Size: 2048 MB S raid.p0.s1 State: empty PO: 512 kB Size: 2048 MB S raid.p0.s2 State: empty PO: 1024 kB Size: 2048 MB S raid.p0.s3 State: empty PO: 1536 kB Size: 2048 MB .Ed .Pp RAID-5 プレックスの大きさに注意してください: 6 GB しかありませんが、 これを構成するためにディスク空間を 8 GB 使用しています。 これは、サブディスク 1 個分相当をパリティデータ格納に使用しているからです。 .Ss Vinum の再起動 システムのリブート時に、 .Nm start コマンドで .Nm を起動します: .Bd -literal # vinum start .Ed .Pp これにより、システム中の全 .Nm ドライブが起動します。 なんらかの理由で一部のドライブのみを起動したい場合、 .Nm read コマンドを使用してください。 .Ss 性能関連 最高性能の RAID アレイ設定に関する、多くの誤った考えが存在しています。 特に、ほとんどのシステムで使用しているストライプの大きさは、小さ過ぎます。 以降の議論は、 .Nm vinum だけでなく、全 RAID システムにあてはまります。 .Pp FreeBSD のブロック I/O システムは、.5 kB から 60 kB までの要求を発行します; .\" mix = workload mix ? 典型的なミックスでは、ほぼ 8 kB です。 どんなストライピングシステムにおいても、 ある要求が 2 個の物理要求に分割されることを避けることはできませんし、 より悪くするならばより多くに分割されてしまいます。 これにより、甚大な性能劣化となります: ディスクあたりの転送時間の削減は、 より大きなオーダで増加するレイテンシによって相殺されてしまいます。 .Pp 最近のディスクの大きさと FreeBSD のブロック I/O システムでは、 ストライプの大きさを 256 kB から 512 kB にすると、 適度に少数な要求に分割されることを期待できます; 正しい RAID の実装では、 大きなディスクでのストライプの大きさを 2 または 4 MB に増さない 明確な理由はありません。 .Pp 複数アクセスシステムでの転送のインパクトを考えるためのもっとも容易な方法は、 潜在的なボトルネック、すなわちディスクサブシステムの観点から見ることです: つまり、転送に要するディスク時間の総計はいくらか?です。 ほとんどすべてがキャッシュされているので、 要求と完了との時間的な関係はそれほど重要ではありません: 重要なパラメータは、要求がディスクを活動状態にする総時間であり、 この間ディスクは他の転送ができなくなります。 この結果、転送が同時に発生しても違う時に発生しても、 実際には問題とはなりません。 実際的には、我々が見ている時間は、レイテンシの総和 (位置決定時間と回転遅延、 言い替えるとデータがディスクヘッド下に来るまでの時間) と総転送時間です。 同じ速度のディスクへの転送においては、 転送時間は転送の大きさの合計のみに依存します。 .Pp 24 kB の典型的なニュースの記事やウェブページを考えると、 これは 1 回の I/O で読み込めます。 ディスクが転送レート 6 MB/s で平均位置決定時間 8 ms であり、 ファイルシステムを 4 kB ブロックであるとします。 24 kB ですから、断片化を考慮する必要はなく、 ファイルは 4 kB 境界から開始します。 必要な転送回数はブロック開始位置に依存します: 式は (S + F - 1) / S となり、 S はファイルシステムブロック数でのストライプの大きさ、 F はファイルシステムブロック数でのファイルの大きさです。 .Pp .Bl -enum .It ストライプの大きさは 4 kB。転送回数は 6 回。 サブシステムの負荷: レイテンシ 48 ms、転送 2 ms、合計 50 ms。 .It ストライプの大きさは 8 kB。転送回数は 3.5 回。 サブシステムの負荷: レイテンシ 28 ms、転送 2 ms、合計 30 ms。 .It ストライプの大きさは 16 kB。転送回数は 2.25 回。 サブシステムの負荷: レイテンシ 18 ms、転送 2 ms、合計 20 ms。 .It ストライプの大きさは 256 kB。平均転送回数は 1.08 回。 サブシステムの負荷: レイテンシ 8.6 ms、転送 2 ms、合計 10.6 ms。 .It ストライプの大きさは 4 MB。平均転送回数は 1.0009 回。 サブシステムの負荷: レイテンシ 8.01 ms、転送 2 ms、合計 10.01 ms。 .El .Pp ハードウェア RAID システムによっては、 大きなストライプでは問題があるものがあるようです: このようなシステムでは完全なストライプを常にディスクとの間で転送するようで、 大きなストライプは性能に逆効果となります。 .Nm ではこの問題の被害を受けません: すべてのディスク転送を最適化し、不要なデータを転送しないからです。 .Pp 良く知られたベンチマークプログラムで真の複数アクセス状態 (100 を越える同時ユーザ) をテストするものはないので、 この主張の正しさを証明することは困難であることに注意してください。 .Pp これらのことを考えると、次の事項が .Nm ボリュームの性能に影響します: .Bl -bullet .It ストライピングは、複数アクセスのみの性能を向上します。 各要求が違うディスク上にある確率が増加するからです。 .It 複数ドライブにまたがるコンカチネート化 UFS ファイルシステムもまた、 複数ファイルアクセスの性能を向上します。 UFS は、ファイルシステムをシリンダグループに分割し、 ファイルを単一のシリンダグループに置こうとするからです。 一般的に、ストライピングほどは効果がありません。 .It ミラーリングは、読み込み複数アクセスの性能を向上可能です。 デフォルトでは .Nm は、連続する複数の読み込みを、 連続する複数のプレックスに対して発行するからです。 .It ミラーリングは、複数アクセスか単一アクセスかに関わらず、 すべての書き込みの性能を劣化させます。 両方のプレックスに対し、データを書き込む必要があるからです。 これが、前述のミラーリング設定におけるサブディスクのレイアウトの説明です: 各プレックス中の対応するサブディスクが別の物理ディスクにある場合、 書き込みコマンドは並列に発行可能です。 しかし、同じ物理ディスクにある場合、逐次的に実行されてしまいます。 .It RAID-5 の読み込みは、 ストライプ化の読み込みと本質的に同じ考慮すべき点があります。 ただし、ストライプ化プレックスがミラー化ボリュームの一部である場合を除きます。 この場合、ミラー化ボリュームの方が性能が良くなります。 .It RAID-5 の書き込みは、ストライプ化の書き込みの約 25% の速度です: 書き込みを行うには、 .Nm はまずデータブロックと対応するパリティブロックを読み込み、 いくばくかの計算を行い、 パリティブロックとデータブロックを書き戻す必要がありますので、 ストライプ化プレックスに対する書き込みの 4 倍の転送回数となります。 一方、これはミラーリングのコストにより相殺されますので、 単一 RAID-5 プレックスのボリュームへの書き込みは、 2 個のストライプ化プレックスからなる正しく設定されたボリュームへの 書き込み速度の半分となります。 .It .Nm の設定が変わると (例えば、オブジェクトの追加や削除、またはオブジェクトの状態変更)、 .Nm は 128 kB までの更新された設定を各ドライブに書き込みます。 ドライブ数が増加すると、この時間が長くなります。 .El .Ss Vinum ボリューム上にファイルシステムを作成する .Nm ボリューム上にファイルシステムを作成する前に .Nm disklabel を実行する必要はありません。 raw デバイスに対して .Nm newfs だけを実行してください。 .Fl v オプションを使用して、 デバイスがパーティションに分割されないようにしてください。 例えば、ボリューム .Pa mirror 上にファイルシステムを作成するには、次のコマンドを入力します: .Bd -literal -offset 4n # newfs -v /dev/vinum/rmirror .Ed .Pp .Pa rmirror という名前が raw デバイスを参照していることに注意してください。 .Sh その他のことがら .Nm の設定に関係する数個のその他のことがらがあります: .Bl -bullet .It 複数のドライブを単一ディスク上に作成しても、利益はありません。 各ドライブは 131.5 kB のデータをラベルと設定情報に使用し、 設定変更時に性能が劣化します。 適切な大きさのサブディスクを使用してください。 .It コンカチネート化 .Nm プレックスの大きさを増すことはできますが、 現在のところストライプ化プレックスと RAID-5 プレックスでは増せません。 現在のところ既存の UFS ファイルシステムの大きさを増すこともできません。 プレックスおよびファイルシステムを拡張可能とする計画はあります。 .El .Sh 分かりにくい仕様 (GOTCHAS) 次の事柄はバグではありませんし、存在する理由があるのですが、 混乱を引き起こすものです。 各項目は適切な節において議論されています。 .Bl -enum .It .Nm はデバイスを UFS パーティション上には作成するよう要求されると、 ``wrong partition type'' というエラーメッセージを返します。 パーティションタイプは、現在のところ、``unused'' である必要があります。 .It 複数のプレックスからなるボリューム作成時に、 .Nm はプレックスを自動的には初期化しません。 これは、内容については分からなくても、 これらの間には確かに一貫性がないということを意味しています。 その結果デフォルトでは、 新規作成されたプレックスのうち最初のものを除いたすべての状態を、 .Nm は .Ar 古い (stale) 状態に設定します。 .sp 実際上は、プレックス作成時にその内容に多大な興味を持つ人はいないので、 他のボリュームマネージャはどんなときでも .Ar 起動 (up) に設定して騙します。 .Nm は、新規作成されたプレックスが .Ar 起動 (up) 状態であることを保証するために、2 つの方法を提供します: .Bl -bullet .It プレックスを作成し、それらを .Nm vinum start で同期します。 .It キーワード .Ar setupstate 付きでボリューム (プレックスではありません) を作成します。 このキーワードは、矛盾が存在しても無視してプレックスの状態を .Ar 起動 (up) 状態にするように、 .Nm に指示します。 .El .It 現在 .Nm がサポートしているコマンドには、実際には不要なものがあります。 私には理解できない理由があるのでしょうが、 .Nm label および .Nm resetconfig のコマンドを使おうとするユーザをしばしば見掛けます。特に .Nm resetconfig は、あらゆる種類の恐しいメッセージを表示するにもかかわらずです。 正当な理由無しに、これらのコマンドを使わないでください。 .It 状態遷移には非常に分り難いものがあります。 事実、これがバグであるのか仕様であるのかは明かではありません。 .Ar reborn サブディスクなどの、奇妙な状態になったオブジェクトを起動できない場合には、 .Nm stop または .Nm stop Ar -f のコマンドを使用して、まず .Ar stopped 状態に遷移させてください。 これが上手くいけば、オブジェクトを起動できるはずです。 簡単な方法では上手くいかなくて、これが唯一の回復手段である場合、 その状況を報告してください。 .It カーネルモジュールを .Ar -DVINUMDEBUG オプション付きで構築した場合、 .Nm vinum(8) もまた .Ar -DVINUMDEBUG オプション付きで構築する必要があります。 なぜなら、両方のコンポーネントで使用されるデータオブジェクトに、 大きさが本オプションに依存しているものがあるからです。 前記のようにしないと、 .Ar Invalid argument というメッセージを表示してコマンドは失敗し、 次のようなコンソールメッセージが記録されます: .Pp .Bd -literal vinumioctl: invalid ioctl from process 247 (vinum): c0e44642 .Ed .Pp 古いバージョンの kld やユーザランドプログラムを使うと、 このエラーが発生することがあります。 .It .Nm ドライブは UNIX ディスクパーティションであり、パーティションタイプ .Ar vinum を使用します。 これは、パーティションタイプが .Ar 4.2BSD となる .Nm ccd とは違います。 この ccd の動作は、自分の足元をすくうことになります: .Nm ccd では、容易にファイルシステムを上書きできてしまいます。 .Nm ではそのようなことは許しません。 .Pp 同様の理由で、 .Nm vinum Ar start コマンドは、パーティション .Ar c 上のドライブを受け付けません。 パーティション .Ar c は、ディスク全体を表現するためにシステムが使用し、タイプ .Ar unused である必要があります。 ここには明確な矛盾があるので、 .Ar c パーティションを使用しないことにより .Nm は問題を解決しています。 .It .Nm vinum Ar read コマンドの文法は、吐き気を催すものです。 これが唯一の .Nm vinum 起動のためのコマンドでしたが、今の好ましい方法は .Nm vinum Ar start です。 .Nm vinum Ar read は整備のみに使用すべきです。 文法が変更されたので、引き数が .Pa /dev/da0 のようなディスクスライスであり .Pa /dev/da0e のようなパーティションではないことに注意してください。 .El .\"XXX.Sh BUGS .Sh 関連ファイル .Ar /dev/vinum - .Nm オブジェクトのデバイスノードがあるディレクトリ .br .Ar /dev/vinum/control - .Nm vinum の制御デバイスがあるディレクトリ .br .Ar /dev/vinum/plex - .Nm プレックスのデバイスノードがあるディレクトリ .br .Ar /dev/vinum/sd - .Nm サブディスクのデバイスノードがあるディレクトリ .Sh 関連項目 .Xr vinum 4 , .Xr disklabel 8 , .Xr newfs 8 , .Pa http://www.lemis.com/vinum.html , .Pa http://www.lemis.com/vinum-debugging.html . .Sh 作者 Greg Lehey .Pa .Sh 歴史 .Nm コマンドは FreeBSD 3.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/Makefile b/ja_JP.eucJP/man/man1/Makefile index 42a227b8e9..91803fb0e8 100644 --- a/ja_JP.eucJP/man/man1/Makefile +++ b/ja_JP.eucJP/man/man1/Makefile @@ -1,412 +1,413 @@ MAN1 = a2p.1\ addftinfo.1\ addr2line.1\ alaw2ulaw.1\ apply.1\ apropos.1\ ar.1\ as.1\ at.1\ awk.1\ basename.1\ bc.1\ biff.1\ bison.1\ brandelf.1\ btreeop.1\ c89.1\ calendar.1\ cap_mkdb.1\ cat.1\ catman.1\ cccp.1\ cd.1\ cdcontrol.1\ checknr.1\ chflags.1\ chkey.1\ chgrp.1\ chio.1\ chmod.1\ chpass.1\ ci.1\ ckdist.1\ cksum.1\ cmp.1\ co.1\ col.1\ colcrt.1\ colldef.1\ colrm.1\ column.1\ comm.1\ compile_et.1\ compress.1\ cp.1\ cpio.1\ crontab.1\ crunchgen.1\ crunchide.1\ csh.1\ ctags.1\ ctm.1\ ctm_rmail.1\ cu.1\ cursor.1\ cut.1\ cvs.1\ date.1\ dc.1\ dd.1\ df.1\ dialog.1\ diff.1\ diff3.1\ dig.1\ dnsquery.1\ domainname.1\ + doscmd.1\ du.1\ echo.1\ ed.1\ ee.1\ enigma.1\ eqn.1\ error.1\ expand.1\ expr.1\ f2c.1\ f77.1\ false.1\ fdformat.1\ fdwrite.1\ fetch.1\ file.1\ file2c.1\ find.1\ finger.1\ fmt.1\ fold.1\ fontedit.1\ fpr.1\ from.1\ fsplit.1\ fstat.1\ ftp.1\ gcc.1\ gcore.1\ gctags.1\ gdb.1\ gdbserver.1\ gencat.1\ genclass.1\ getNAME.1\ getopt.1\ global.1\ gperf.1\ gprof.1\ grep.1\ grodvi.1\ groff.1\ grolj4.1\ grops.1\ grotty.1\ groups.1\ gtags.1\ gzexe.1\ gzip.1\ h2ph.1\ head.1\ hexdump.1\ host.1\ hostname.1\ htags.1\ id.1\ ident.1\ indent.1\ indxbib.1\ install.1\ install-info.1\ intro.1\ ipcrm.1\ ipcs.1\ ipf.1\ ipftest.1\ ipnat.1\ ipresend.1\ ipsend.1\ iptest.1\ join.1\ jot.1\ kbdcontrol.1\ kbdmap.1\ kcon.1\ kdump.1\ key.1\ keyinfo.1\ keyinit.1\ keylogin.1\ keylogout.1\ kill.1\ killall.1\ ktrace.1\ lam.1\ last.1\ lastcomm.1\ ld.1\ ldd.1\ leave.1\ lex.1\ limits.1\ lint.1\ lkbib.1\ ln.1\ loadfont.1\ locate.1\ lock.1\ lockf.1\ logger.1\ login.1\ logname.1\ look.1\ lookbib.1\ lorder.1\ lp.1\ lpq.1\ lpr.1\ lprm.1\ lptest.1\ ls.1\ lsvfs.1\ m4.1\ mail.1\ mailq.1\ make.1\ makewhatis.1\ man.1\ manpath.1\ mcon.1\ md5.1\ merge.1\ mesg.1\ minigzip.1\ mkdep.1\ mkdir.1\ mkfifo.1\ mklocale.1\ mkstr.1\ mktemp.1\ more.1\ mptable.1\ mset.1\ msgs.1\ mt.1\ mv.1\ ncal.1\ neqn.1\ netstat.1\ newaliases.1\ nfsstat.1\ nice.1\ nm.1\ nohup.1\ nroff.1\ objcopy.1\ objdump.1\ objformat.1\ od.1\ opieinfo.1\ opiekey.1\ opiepasswd.1\ pagesize.1\ passwd.1\ paste.1\ patch.1\ pawd.1\ pax.1\ perl.1\ pfbtops.1\ pic.1\ pkg_add.1\ pkg_create.1\ pkg_delete.1\ pkg_info.1\ pr.1\ printenv.1\ printf.1\ ps.1\ psbb.1\ psroff.1\ pwd.1\ quota.1\ ranlib.1\ rcp.1\ rcs.1\ rcsclean.1\ rcsdiff.1\ rcsfreeze.1\ rcsintro.1\ rcsmerge.1\ rdist.1\ refer.1\ rev.1\ rlog.1\ rlogin.1\ rm.1\ rmdir.1\ rpcgen.1\ rs.1\ rsh.1\ rtprio.1\ rup.1\ ruptime.1\ rusers.1\ rwall.1\ rwho.1\ s2p.1\ sasc.1\ scon.1\ script.1\ sdiff.1\ sed.1\ send-pr.1\ sgsc.1\ sh.1\ shar.1\ size.1\ skey.1\ sleep.1\ soelim.1\ sort.1\ split.1\ startslip.1\ strings.1\ strip.1\ stty.1\ su.1\ symorder.1\ systat.1\ tail.1\ talk.1\ tar.1\ tbl.1\ tconv.1\ tcopy.1\ tcpdump.1\ tcpslice.1\ tee.1\ telnet.1\ test.1\ tfmtodit.1\ tftp.1\ time.1\ tip.1\ tn3270.1\ top.1\ touch.1\ tput.1\ tr.1\ troff.1\ true.1\ truss.1\ tset.1\ tsort.1\ tty.1\ ul.1\ ulaw2alaw.1\ uname.1\ unifdef.1\ uniq.1\ units.1\ unvis.1\ uptime.1\ users.1\ uuconv.1\ uucp.1\ uuencode.1\ uulog.1\ uuname.1\ uupick.1\ uuto.1\ uustat.1\ uux.1\ vacation.1\ vgrind.1\ vi.1\ vidcontrol.1\ vis.1\ vt220keys.1\ vttest.1\ w.1\ wait.1\ wall.1\ wc.1\ what.1\ whereis.1\ which.1\ who.1\ whoami.1\ whois.1\ window.1\ write.1\ xargs.1\ xstr.1\ xten.1\ yacc.1\ yes.1\ ypcat.1\ ypmatch.1\ ypwhich.1\ yyfix.1\ zdiff.1\ zforce.1\ zmore.1\ znew.1 MLINKS= csh.1 limit.1 csh.1 alias.1 csh.1 bg.1 csh.1 dirs.1 csh.1 fg.1 \ csh.1 foreach.1 csh.1 history.1 csh.1 jobs.1 csh.1 popd.1 \ csh.1 pushd.1 csh.1 rehash.1 csh.1 repeat.1 csh.1 suspend.1 \ csh.1 stop.1 csh.1 source.1 MLINKS+= ed.1 red.1 MLINKS+= test.1 '[.1' MLINKS+= gcc.1 cc.1 gcc.1 c++.1 gcc.1 g++.1 MLINKS+= cccp.1 cpp.1 MLINKS+= grep.1 egrep.1 grep.1 fgrep.1 MLINKS+= grep.1 zgrep.1 grep.1 zegrep.1 grep.1 zfgrep.1 MLINKS+= gzip.1 gunzip.1 gzip.1 zcat.1 gzip.1 gzcat.1 MLINKS+= zdiff.1 zcmp.1 MLINKS+= apropos.1 whatis.1 MLINKS+= send-pr.1 sendbug.1 MLINKS+= at.1 batch.1 \ at.1 atq.1 \ at.1 atrm.1 MLINKS+= basename.1 dirname.1 MLINKS+= chpass.1 chfn.1 chpass.1 chsh.1 MLINKS+= chpass.1 ypchpass.1 chpass.1 ypchfn.1 chpass.1 ypchsh.1 MLINKS+= compress.1 uncompress.1 MLINKS+= ee.1 ree.1 MLINKS+= expand.1 unexpand.1 MLINKS+= ftp.1 pftp.1 ftp.1 gate-ftp.1 MLINKS+= hexdump.1 hd.1 MLINKS+= intro.1 introduction.1 MLINKS+= lex.1 flex.1 MLINKS+= lex.1 flex++.1 MLINKS+= lex.1 lex++.1 MLINKS+= mail.1 Mail.1 MLINKS+=passwd.1 yppasswd.1 MLINKS+= printenv.1 env.1 MLINKS+= tconv.1 tic.1 tconv.1 captoinfo.1 MLINKS+= tput.1 clear.1 MLINKS+= tset.1 reset.1 MLINKS+=vi.1 ex.1 vi.1 view.1 MLINKS+=vi.1 nex.1 vi.1 nview.1 vi.1 nvi.1 MLINKS+=yacc.1 byacc.1 MLINKS+= ctm_rmail.1 ctm_smail.1 MLINKS+= ctm_rmail.1 ctm_dequeue.1 MLINKS+= kbdmap.1 vidfont.1 MLINKS+= rtprio.1 idprio.1 MLINKS+= cksum.1 sum.1 MLINKS+= ktrace.1 trace.1 MLINKS+= uuencode.1 uudecode.1 MLINKS+= ncal.1 cal.1 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man1/chpass.1 b/ja_JP.eucJP/man/man1/chpass.1 index 504822f6ef..05e616252d 100644 --- a/ja_JP.eucJP/man/man1/chpass.1 +++ b/ja_JP.eucJP/man/man1/chpass.1 @@ -1,422 +1,422 @@ .\" Copyright (c) 1988, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)chpass.1 8.2 (Berkeley) 12/30/93 .\" %Id: chpass.1,v 1.14 1998/12/13 15:32:26 bde Exp % .\" jpman %Id: chpass.1,v 1.2 1997/03/31 14:06:36 horikawa Stab % .\" .Dd December 30, 1993 .Dt CHPASS 1 .Os .Sh 名称 .Nm chpass, chfn, chsh, ypchpass, ypchfn, ypchsh .Nd ユーザデータベース内の情報を編集する .Sh 書式 .Nm chpass .Op Fl a Ar list .Op Fl p Ar encpass .Op Fl s Ar newshell .Op user .Sh 解説 .Nm chpass は .Ar user もしくはデフォルトでは実行したユーザのユーザデータベースの情報を変更します。 情報はフォーマットされ、必要な部分をエディタで変更します。 .Pp ユーザが変更することができる情報だけが表示されます。 .Pp -オプションとしては、以下のものがあります: +オプションとしては、次のものがあります: .Bl -tag -width flag .It Fl a スーパユーザは、ユーザデータベースのエントリを .Xr passwd 5 で定義されたフォーマットで引数として直接指定できます。 -この引数はコロン(``:'')で区切られたリストであり、 +この引数はコロン (``:'') で区切られたリストであり、 空きの部分があっても許されますが、 すべてのフィールドをリストにしなければなりません。 .It Fl p スーパユーザは、暗号化されたパスワードフィールドを .Xr crypt 3 で用いられているフォーマットで引数として直接指定することができます。 .It Fl s .Fl s オプションは、ユーザのシェルを .Ar newshell に変更します。 .El .Pp 表示されるエントリには以下のものがあります: .Pp .Bl -tag -width "Other Information:" -compact -offset indent .It Login: ユーザのログイン名 .It Password: ユーザの暗号化されたパスワード .It Uid: ユーザの ID .It Gid: ユーザのグループ ID .It Class: ユーザの一般的な分類 .It Change: パスワードの変更時間 .It Expire: アカウントの有効期限 .It Full Name: ユーザの実際の名前 .It Location: ユーザが通常いる場所 (1) .It Home Phone: ユーザの自宅の電話番号 (1) .It Office Phone: ユーザのオフィスの電話番号 (1) .It Other Information: ユーザに関するローカル定義情報 (1) .It Home Directory: ユーザのホームディレクトリ .It Shell: ユーザのログインシェル .Pp -.It 注釈(1) - +.It 注釈 (1) - 実際の master.passwd ファイルでは、 これらのフィールドはコンマで区切られたフィールドとして FullName フィールドに埋め込まれます。 .El .Pp .Ar login フィールドは計算機にアクセスするときに使われるユーザ名です。 .Pp .Ar password フィールドはユーザの暗号化されたパスワードが収められています。 .Pp .Ar uid フィールドは .Ar login フィールドと関連した番号です。ファイルのアクセスを制御するために、 どちらのフィールドもシステム (しばしば、複数のシステム) の中で 一意である必要があります。 .Pp 複数のエントリが同一のログイン名や同一のユーザ ID を持つことは可能ですが、 そのようにすることは通常誤りです。 これらのファイルを操作する手順では、 それらの複数のエントリ内から無作為に選んだものの一つだけを返すでしょう。 .Pp .Ar group フィールドはユーザがログイン時に所属するグループです。BSD が複数の -グループを採用してから( +グループを採用してから ( .Xr groups 1 参照) このフィールドはほとんど意味がありません。 -このフィールドは番号やグループ名( +このフィールドは番号やグループ名 ( .Xr group 5 参照) のどちらかが記述されます。 .Pp .Ar class フィールドは .Ar /etc/login.conf のクラスに関する記述を参照します。 典型的には、ユーザのログイン時に、 ユーザのシステムリソースを制限するために使用されます。 .Pp .Ar change フィールドはパスワードが変更されているべき日付です。 .Pp .Ar expire フィールドはアカウントの満了する日付です。 .Pp .Ar change と .Ar expire の両方のフィールドは ``month day year'' の形式で入力し、 .Ar month -は、英語の月の名前 (はじめの3文字でも十分です) で、 +は、英語の月の名前 (はじめの 3 文字でも十分です) で、 .Ar day は、その月の中の日で、 .Ar year は、その年です。 .Pp 5 つのフィールドは、ユーザの .Ar 実際の名前 、 .Ar オフィスの場所 、 .Ar 職場 と .Ar 家で使う電話 番号、そして .Ar その他の情報 を保管しています。 .Ar その他の情報 は、コンマで区切った単一文字列であり、追加の gcos フィールドを表現します。 (典型的にはサイト固有のユーザ情報のために使用します)。 .Pp ユーザの .Ar home directory はユーザがログイン時にいる場所への絶対 UNIX パス名です。 .Pp .Ar shell フィールドはユーザの好むコマンドインタプリタです。 もし .Ar shell フィールドが空であれば、ボーンシェル .Pa /bin/sh であると仮定します。 ログインシェルを変更するときに、スーパユーザではないユーザは、 非標準シェルから、または非標準シェルへの変更は許されていません。 非標準シェルとは .Pa /etc/shells で見つけられないシェルのことです。 .Pp 一度情報が確認されたら .Nm chpass はユーザデータベースを更新するために .Xr pwd_mkdb 8 を用います。 .Sh 環境変数 環境変数 EDITOR を設定して他のエディタを指定している場合を除き、 .Xr vi 1 エディタが使われます。エディタが終了すると、その情報は再度読み込まれ、 ユーザデータベースを変更するための情報とします。 ユーザの情報を変更できるのは、そのユーザかスーパユーザのみです。 .Sh NIS との相互作用 いくつかの制限が適用されますが、 .Nm chpass を NIS と同時に使うこともできます。現在 .Nm chpass が .Xr rpc.yppasswdd 8 を通じて NIS のパスワードマップ中で変更できるのは、 通常はユーザのパスワード、シェル、GECOS フィールドだけです。 NIS マスタサーバ上でスーパユーザによって起動された場合を除き、 .Nm chpass (同様に .Xr passwd 1 ) は、ユーザ情報の変更および新レコードの追加のために .Xr rpc.yppasswdd 8 サーバを使用出来ません。 なお、 .Xr rpc.yppasswdd 8 は、どのような変更を行う前にもパスワード認証を要求します。 パスワード無しで変更要求できるユーザは NIS マスタサーバ上のスーパユーザだけです; 他の全てのユーザはパスワードを入力する必要があります。 -他の全てのユーザには NIS クライアント(および NIS スレーブサーバ)上の -ルート権限を持つユーザも含まれます。 +他の全てのユーザには NIS クライアント (および NIS スレーブサーバ) 上の +root 権限を持つユーザも含まれます。 (NIS マスタサーバ上のスーパユーザがこの制約をバイパスできる理由は、 主に簡便さのためです: -NIS マスタサーバへのルートアクセス権限をもつユーザは +NIS マスタサーバへの root アクセス権限をもつユーザは 既に NIS マップを更新するための権限を持っています。 それにもかかわらずマップソースファイルを手で編集することは面倒です。 .Pp 注: これらの例外が適用されるのは NIS マスタサーバが FreeBSD システムの時だけです。) .Pp その結果として、上述の例外を除き、NIS 環境で .Nm chpass を使う場合には以下の制限が適用されます: .Bl -enum -offset indent .It .Pa シェルと GECOS 情報だけを変更できます。 たとえ .Nm chpass がスーパユーザによって起動された場合であってもです。 他のフィールドの変更がサポートされるようになっても、 他の NIS システムとの互換性の問題を引き起こすでしょう。 スーパユーザがあるエントリを編集している時に、 他のフィールドにデータを書いても、余分な情報として (パスワードは例外 -- 以下を参照してください) だまって廃棄されるでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは、 任意のフィールドの変更が許されています。 .Pp .It .Pa パスワード認証が要求されます。 どのような変更を行う前にも .Nm chpass はユーザの NIS パスワードを要求します。もしパスワードが間違っていたら、 どのような変更も行われません。 .Pp 例外: NIS マスタサーバ上のスーパユーザはパスワード無しに変更要求できます。 (スーパユーザは、後述するように .Fl o フラグを指定する事によりこの仕様を無効にする事が選択できます。) .It .Pa 新しいレコードのローカルパスワードデータベースへの追加は勧められません。 NIS が動作しているときに、管理者が .Nm chpass によって新しいレコードをローカルのパスワードデータベースに追加可能です。 しかし、新しいレコードがマスタパスワードファイルの最後、 通常は NIS の特別な '+' エントリの後に追加されるため、 いくつかの混乱を招きかねません。 .Xr vipw 8 を使ってローカルのパスワードファイルを変更するべきです。 .Pp NIS マスタサーバ上のスーパユーザによる NIS パスワードマップへの新レコードの追加が許可されるのは、 .Xr rpc.yppasswdd 8 サーバが .Fl a フラグ付で起動された場合、すなわち追加を許可して起動された場合のみです (通常は追加を拒否します)。 .Nm chpass はデフォルトではローカルのパスワードデータベースを更新しようとします; NIS マップを変更する場合には chpass を .Fl y フラグ付で起動してください。 .It .Pa パスワードの変更は許可されていません。 ユーザが、自分の NIS のパスワードを変更するときには .Xr passwd 1 か .Xr yppasswd 1 を使うべきです。スーパユーザは新しいパスワードを指定することを許され -ています(たとえ、``Password:'' フィールドがエディタのテンプレートに +ています (たとえ、``Password:'' フィールドがエディタのテンプレートに あらわれていなくても、スーパユーザは手動で加えることができます) 。 しかしながら、スーパユーザであってもユーザの元のパスワードがなければ .Xr rpc.yppasswdd 8 が NIS マップの更新を拒否するでしょう。 .Pp 例外: NIS マスタサーバ上のスーパユーザは .Nm chpass を使用して、ユーザの NIS パスワードを変更する事が許されています。 .El .Pp .Nm chpass が NIS をサポートしてコンパイルされたときに、数個の特別なフラグが有効 になります: .Bl -tag -width flag .It Fl l .Fl l フラグは、ローカルと NIS の両方のデータベースにユーザが存在していても、 ユーザのパスワード情報のローカルのコピーを修正することを .Nm chpass に強制します。 .It Fl y このフラグは .Fl l と反対の効果があります。もし NIS が動作していれば、 デフォルトでは .Nm chpass は NIS のエントリを操作するので、 このフラグはまったく冗長です。 .It Fl d Ar domain NIS ドメインを指定します。 .Nm chpass はデフォルトではシステムのドメイン名を使用します。 これは .Xr domainname 1 コマンドにて設定されています。 .Fl d オプションは、 このデフォルトを上書きするため、 もしくはドメイン名が設定されていない場合にドメイン名を指定するために 使用できます。 .It Fl h Ar host 問い合わせるべき NIS サーバの名前もしくはアドレスを指定します。 通常 .Nm chpass は .Pa master.passwd もしくは .Pa passwd マップにて指定される NIS マスタホストと通信します。 NIS クライアントとして構成されていないホスト上では、 この情報を決定するための方法がプログラムにはありませんので、 ユーザがサーバのホスト名を指定します。 指定するホスト名は NIS マスタサーバである必要が無い事に注意してください; NIS ドメイン内のマスタサーバ名でもスレーブサーバ名でも良いのです。 .Pp .Fl d オプション使用時には、ホスト名のデフォルトは ``localhost'' です。 .Fl h オプションを .Fl d とともに使用し、ユーザが指定するホスト名でこのデフォルトを上書きできます。 .Pp .It Fl o .Xr rpc.yppasswdd 8 -に RPC ベースの更新を強制します(``旧モード'')。 +に RPC ベースの更新を強制します (``旧モード'')。 NIS マスタサーバ上でスーパユーザにより起動された場合、 .Nm chpass は専用の非 RPC ベースの機構を使用し、 NIS パスワードマップに対する無制限の変更を許可します (この場合 UNIX ドメインソケットを使用します)。 .Fl o フラグを使用する事により .Nm chpass に標準の更新メカニズムを使用させる事が出来ます。 このオプションは主にテスト目的のために提供されています。 .El .Pp .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/master.passwd ユーザデータベース .It Pa /etc/passwd Version 7 フォーマットのパスワードファイル .It Pa /etc/chpass.XXXXXX パスワードファイルのテンポラリ用コピー .It Pa /etc/shells 利用できるシェルのリスト .El .Sh 関連項目 .Xr finger 1 , .Xr login 1 , .Xr passwd 1 , .Xr getusershell 3 , .Xr login.conf 5, .Xr passwd 5 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Rs .%A Robert Morris and .%A Ken Thompson .%T "UNIX Password security" .Re .Sh 注釈 .Xr chfn 1 , .Xr chsh 1 , .Xr ypchpass 1 , .Xr ypchfn 1 , .Xr upchsh 1 コマンドは実際には .Nm chpass にリンクしているだけです。 .Sh バグ ユーザ情報の保存はどこか他の場所にするべきです (し、いつかはそうなるでしょう)。 .Sh 歴史 .Nm chpass コマンドは .Bx 4.3 Reno から登場しました。 diff --git a/ja_JP.eucJP/man/man1/diff.1 b/ja_JP.eucJP/man/man1/diff.1 index 3d33c65cbc..f5acc61b2f 100644 --- a/ja_JP.eucJP/man/man1/diff.1 +++ b/ja_JP.eucJP/man/man1/diff.1 @@ -1,433 +1,434 @@ .TH DIFF 1 "22sep1993" "GNU Tools" "GNU Tools" .\" jpman %Id: diff.1,v 1.3 1997/05/16 00:15:44 h-nokubi Stab % .SH 名称 diff \- 2 つのテキストファイルの間の差を求める .SH 書式 .B diff [options] from-file to-file .SH 解説 .I diff の最も単純な使用方法は、 .I from-file と .I to-file の 2 つのファイルを指定することです。 この場合、 .I diff は、その 2 つのファイルの内容を比較します。ファイル名 として、`-' を指定した場合は、標準入力から読み込みを行ないます。 特殊な場合として、 .B "diff \- \-" は標準入力をそれ自身と比較します。 .PP もし、 .I from-file としてディレクトリを指定し .I to-file がディレクトリでなかった場合、 .I diff は .I to-file で指定したファイル名と同じ名前のファイルを .I from-file のディレクトリから捜して、そのファイルとの間で比較を行ないます。 その逆に、 .I to-file がディレクトリで .I from-file がディレクトリでない場合も、同様に処理します。なお、 ディレクトリでない方のファイルに `-' を指定することはできません。 .PP .I from_file と .I to_file の両方がディレクトリだった場合、 .I diff は、両方のディレクトリ内でファイル名が同じファイル同士をアルファベット順に 比較していきます。この時、 .B \-r もしくは、 .B \-\-recursive オプションが指定されていれば、 サブディレクトリの中のファイルも再帰的に比較していきます。 .I diff は、ディレクトリの実際の中身をファイルのように比較しません。標準入力は名前 が無く``同じ名前を持ったファイル''の概念が適用できないので、 完全指定したファイルは標準入力であってはなりません。 .PP .B diff のオプションは .BR \- で始まります。よって通常 .I from_file と .I to_file は .BR \- で始まりません。しかしながらそれ自体が引数である .B \-\- の後では、 残された引数が .BR \- で始まっていてもファイル名として扱います。 .SS オプション GNU .I diff のすべてのオプションの要約は以下の通りです。ほとんどのオプション -は2つの同等な名前を持ちます。1つは +は 2 つの同等な名前を持ちます。1 つは .BR \- -で始まる1文字の名前で、もう1つは、 +で始まる 1 文字の名前で、もう 1 つは、 .BR \-\- -で始まる長い名前です。複数の1文字のオプション(引数を持たない場合)は、 -1つの文字列にまとめてしまって構いません。つまり +で始まる長い名前です。複数の 1 文字のオプション (引数を持たない場合) は、 +1 つの文字列にまとめてしまって構いません。つまり .B \-ac は .B "\-a \-c" と同等です。長い名前のオプションはその名前の接頭辞が一意的に決まればどんな 省略でもできます。鍵括弧 .RB ( [ と .BR ] ) は、オプションが省略可能な引数を持つことを示します。 .PP .TP .BI \- lines .B \-c か .B \-u -と組み合わせて、相違点の前後(context)の表示行数を `数字' +と組み合わせて、相違点の前後 (context) の表示行数を `数字' で指定します。このオプションだけでは、出力フォーマットは変化しません。 -このオプションは旧式(obsolete)です。 +このオプションは旧式 (obsolete) です。 .I patch をうまく働かせるためには、少なくとも前後 2 行ずつは必要です。 .TP -.\" 以下では、同等な1文字オプションと長い単語のオプションが +.\" 以下では、同等な 1 文字オプションと長い単語のオプションが .\" まとめて表示されるようにアレンジされ直されている。 .B \-a .br .ns .TP .B \-\-text テキストファイルでないようなものについても、全てのファイルを テキストとみなして、1 行づつ比較していきます。 .TP .B \-b .br .ns .TP .B \-\-ignore\-space\-change 空白の数の違いを無視します。 .TP .B \-B .br .ns .TP .B \-\-ignore\-blank\-lines 空行が入っているもしくは足りないなどの違いは無視します。 .TP .B \-\-brief .br .ns .TP .B \-q ファイルの違いの詳細は表示せず、違っているかどうかだけを報告します。 .TP .B \-c ``context output format'' を使用します。 .\" これは、patch コマンドに .\" 適した形式で、違っている行だけでなく、その前後も数行出力する形式で .\" す。デフォルトでは 3 行づつ表示します。行数を変えるには、`-行数'オ .\" プションを使うか、次のオプションを使用します。 .TP .BI "\-C " 行数 .br .ns .TP .BI \-\-context[= 行数 ] ``context output format'' を使用します。不一致の行の前後に、`行数' -で指定した行数だけ表示します (context) 。 +で指定した行数だけ表示します (context)。 .I patch をうまく働かせるためには、少なくとも 2 行の context が必要です。 .TP .BI \-\-changed\-group\-format= format if-then-else 形式の両方のファイルから異なった行を含む部分を出力する ために .I format を使う。 .TP .B \-d .br .ns .TP .BI \-\-minimal より小さな違いを見つけるアルゴリズムに変更します。このオプションを 指定すると .I diff -の処理速度は遅くなります(かなり遅くなることもあります)。 +の処理速度は遅くなります (かなり遅くなることもあります)。 .TP .BI "\-D " name .br .ns .TP .BI \-\-ifdef= name プリプロセッサマクロ .I name の条件記述を用いた if-then-else 形式にマージして出力します。 .TP .B -e .br .ns .TP .B \-\-ed .I ed のスクリプトの形式で出力します。 .TP .BI \-\-exclude= pattern .br .ns .TP .BI "\-x " pattern ディレクトリ単位の比較の時、ファイルやディレクトリ名が .I pattern にマッチした場合は、比較しないようにします。 .TP .BI \-\-exclude\-from= file .br .ns .TP .BI "\-X " file ディレクトリ単位の比較の時、ファイルやディレクトリ名が .I file の中に含まれる pattern にマッチした場合は、比較しないようにします。 .TP .B \-\-expand\-tabs .br .ns .TP .B \-t 入力ファイルのタブによる位置調整をくずさないよう、タブを空白に展開します。 .TP .B \-f .br .ns .TP .B \-\-forward\-ed .B ed のスクリプトと一見同じような出力をします。ただし、ファイルに 現われる順序が違います。 .TP .BI "\-F " regexp .br .ns .TP .BI \-\-show\-function\-line= regexp context diff 形式および unified diff 形式において、差分のブロック毎に、 差分のブロックに先行し、かつ .I regexp にマッチする行のうちでもっともブロックに近い行を出力します。 .TP .B \-h なにも機能はありません。通常の UNIX の diff との互換のためにあります。 .TP .B \-H .br .ns .TP .B \-\-speed\-large\-files 小さな違いがあちこちにあるような大きなファイルの処理を 高速化するヒューリスティックを用います。 .TP .BI \-\-horizon\-lines= lines -2つのファイルの先頭と末尾における共通部分のうち +2 つのファイルの先頭と末尾における共通部分のうち .I lines 行を残したままで差分を検索します .\" (通常は先頭と末尾の共通部分を削除してから検索を行います)。 .TP .B \-i .br .ns .TP .B \-\-ignore\-case 英大文字と小文字の違いを無視します。 .TP .BI "\-I " regexp .br .ns .TP .BI \-\-ignore\-matching\-lines= regexp 正規表現 .I regexp にマッチした行が追加あるいは削除されていても無視します。 .TP .B \-\-initial\-tab .br .ns .TP .B \-T 通常形式および context diff 形式において、テキスト先頭に空白文字ではなく タブを入れます。行に含まれるタブが元と同じような形で見えます。 .TP .B \-l .br .ns .TP .B \-\-paginate 出力を .I pr に通してページ付けを行ないます。 .TP .BI "\-L " label .br .ns .TP .BI \-\-label= label context diff 形式および unified diff 形式において、 出力に付加されるファイル名の代わりに、 .I label で指定したラベルを使用します。 .TP .BI \-\-left\-column -2段組形式において、2つの共通の行の左の欄だけを表示します。 +2 段組形式において、2 つの共通の行の左の欄だけを表示します。 .TP .BI \-\-line\-format= format .I format を用いて、すべての入力行を if-then-else 形式で出力します。 .TP .B \-n .br .ns .TP .B \-\-rcs RCS形式の差分を出力します。 .B \-f と似ていますが、各コマンドには適用した行数がついた形となります。 .TP .B \-N .br .ns .TP .B \-\-new\-file ディレクトリ単位の比較の時に、片方のディレクトリにだけ存在するファイルに 関しては、他のディレクトリでは空のファイルがあるものとして扱います。 .TP .BI \-\-new\-group\-format= format -2番目のファイルにだけ存在する部分をif-then-else 形式で出力するために +2 番目のファイルにだけ存在する部分をif-then-else 形式で出力するために .I format を使います。 .TP .BI \-\-new\-line\-format= format -if-then-else 形式で 2番目のファイルにだけ存在する行を出力するために使う +if-then-else 形式で 2 番目のファイルにだけ存在する行を出力するために使う .I format .TP .BI \-\-old\-group\-format= format -if-then-else 形式で 1番目のファイルにだけ存在する部分を出力するために使 +if-then-else 形式で 1 番目のファイルにだけ存在する部分を出力するために使 う .I format .TP .BI \-\-old\-line\-format= format #### -if-then-else 形式で 1番目のファイルにだけ存在する行を出力するために使う +if-then-else 形式で 1 番目のファイルにだけ存在する行を出力するために使う .I format .TP .B \-P .br .ns .TP .B \-\-unidirectional\-new\-file -ディレクトリの比較において、2番目のディレクトリにしか存在しないファイル -があれば、1番目のディレクトリにもサイズ 0 のファイルがあるとみなします。 +ディレクトリの比較において、2 番目のディレクトリにしか存在しないファイル +があれば、1 番目のディレクトリにもサイズ 0 のファイルがあるとみなします。 .TP .B \-r .br .ns .TP .B \-\-recursive ディレクトリ単位の比較の時に、サブディレクトリがあれば、その配下も再帰的に 検索して比較を行ないます。 .TP .B \-\-report\-identical\-files .br .ns .TP .B \-s ファイルの内容が同じだった時に、その旨を報告します。 .TP .BI "\-S " file .br .ns .TP .BI \-\-starting\-file= file ディレクトリ単位の比較の時に、 .I file で指定したファイル名から実行します。これは、一連の比較作業を中断した後に 途中から再開するのに便利です。 .TP .B \-\-sdiff\-merge\-assist .I sdiff 作業の手助けになる補足の情報を表示します。普通、 .I sdiff が .I diff を実行する際にはこのオプションを付けるので、 -ユーザーが直接このオプションを使うことはありません。 +ユーザが直接このオプションを使うことはありません。 .TP .B \-\-show\-c\-function C のプログラムを認識して、どの関数で変更があったかを表示します。 .TP .B \-\-side\-by\-side .br .ns .TP .B \-y -比較する 2 つのファイルの内容を、横に並べて表示します(side-by-side 形式)。 +比較する 2 つのファイルの内容を、横に並べて表示します (side-by-side 形式)。 .TP .B \-\-suppress\-common\-lines side-by-side 形式の表示で、同じ内容の行は表示しないようにします。 .TP .B \-u unified diff 形式を用います。 .TP .BI \-\-unchanged\-group\-format= format if-then-else 形式で変更がなかった部分を出力するために使う .I format .TP .BI \-\-unchanged\-line\-format= format if-then-else 形式で変更がなかった行を出力するために使う .I format .TP .BI "\-U " 行数 .br .ns .TP .BI \-\-unified[= 行数 ] -unified diff 形式にします。不一致の行の前後に、`行数'で -指定した行数のマッチした行も表示します。`行数'を省略した場合は 3行になります。 +unified diff 形式にします。不一致の行の前後に、`行数' で +指定した行数のマッチした行も表示します。`行数' を省略した場合は +3 行になります。 patch をうまく働かせるためには、少なくとも前後 2 行は必要です。 .TP .B \-v .br .ns .TP .B \-\-version .I diff のバージョンを表示します。 .TP .B \-w .br .ns .TP .B \-\-ignore\-all\-space 比較時に、空白は無視するようにします。 .TP .BI "\-W " columns .br .ns .TP .BI \-\-width= columns side-by-side 形式の表示で、1 行の幅を .I columns で指定した文字数にします。 .SH 関連項目 cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1) .SH 戻り値 比較結果として、違いが無かった場合は 0 を、違いが発見された場合は 1 を、 何かエラーがおきた場合は 2 を返します。 diff --git a/ja_JP.eucJP/man/man1/ftp.1 b/ja_JP.eucJP/man/man1/ftp.1 index 0d7487af05..1c2f65e15c 100644 --- a/ja_JP.eucJP/man/man1/ftp.1 +++ b/ja_JP.eucJP/man/man1/ftp.1 @@ -1,1379 +1,1379 @@ .\" %Id: ftp.1,v 1.8 1998/03/01 18:58:03 steve Exp % .\" %NetBSD: ftp.1,v 1.21 1997/06/10 21:59:58 lukem Exp % .\" .\" Copyright (c) 1985, 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ftp.1 8.3 (Berkeley) 10/9/94 .\" jpman %Id: ftp.1,v 1.3 1997/08/20 12:54:33 horikawa Stab % .\" .Dd August 18, 1997 .Dt FTP 1 .Os BSD 4.2 .Sh 名称 .Nm ftp , pftp , gate-ftp .Nd .Tn ARPANET ファイル転送プログラム .Sh 書式 .Nm .Op Fl a .Op Fl d .Op Fl e .Op Fl g .Op Fl i .Op Fl n .Op Fl U .Op Fl p .Op Fl P Ar port .Op Fl t .Op Fl v .Op Fl V .Op Ar host Op Ar port .Nm ftp ftp://[\fIuser\fR:\fIpassword\fR@]\fIhost\fR[:\fIport\fR]/\fIfile\fR[/] .Nm ftp http://\fIhost\fR[:\fIport\fR]/\fIfile\fR .Nm ftp \fIhost\fR:[/\fIpath\fR/]\fIfile\fR[/] .Sh 解説 .Nm は、 .Tn ARPANET 標準のファイル転送プロトコルを用いてファイル転送を実現するためのコマンドです。 本コマンドは、ネットワークを介して接続されているコンピュータ間で ファイルを転送する手段をユーザに提供します。 .Pp 書式の後ろから 3 つの使用例の形式では HTTP または FTP プロトコルの いずれかを使ってファイルをカレントディレクトリに取得します。 これはスクリプト用に理想的です。 より詳しい情報については .Sx ファイルの自動的な取得 を参照して下さい。 .Pp オプションは、コマンドライン上か、コマンドインタプリタで指定できます。 .Bl -tag -width "port " .It Fl a .Nm は通常のログイン手続きを飛ばして、かわりに anonymous ログインを 使います。 .It Fl d デバッグを有効にします。 .It Fl e コマンドラインでの編集を無効にします。 .It Fl g ファイル名展開を無効にします。 .It Fl U データポートの範囲制限を無効にします。 .It Fl i 複数ファイル転送を行っている間の対話的プロンプトモードを オフにします。 .It Fl n .Nm が最初に接続する際の .Dq 自動ログイン を行いません。 自動ログインが許可された場合は、 .Nm は起動したユーザのホームディレクトリの .Pa .netrc (下記参照) ファイルに、リモートマシンのアカウントを記述している エントリがあるかどうかを調べます。 そのファイルにエントリがない場合には、 .Nm はリモートマシン上のログイン名 (デフォルトはローカルマシンでのユーザ ID) を要求します。 そして、もし必要があればログイン用のパスワードと アカウントの入力も促します。 .It Fl p 防火壁を越える接続のためのパッシブモード操作を有効にします。 .Nm pftp コマンドを使うのと同じです。 .It Fl P Ar port ポート番号を .Ar port に設定します。 .It Fl t パケットのトレースを有効にします。 .It Fl v 饒舌モードを有効にします。 入力が端末からの場合はこれがデフォルトです。 .Nm はデータ転送状況と、 リモートサーバからのすべてのレスポンスを表示します。 .It Fl V 入力が端末からの場合に、デフォルトで有効になっているのを無視して 饒舌モードを無効にします。 .El .Pp .Nm は、通信相手をコマンドラインで指定することが出来ます。通信相手を コマンドラインで指定した場合、 .Nm は指定したリモートマシンの .Tn FTP サーバプログラムとの接続を試みます。それ以外の場合、 .Nm は内部のコマンドインタプリタに入り、ユーザからの コマンド入力を待ちます。このとき .Nm は、 .Ql ftp> というプロンプトを出力します。 本状態の時には、 .Nm は以下のコマンドを受け付けます。 .Bl -tag -width Fl .It Ic \&! Op Ar command Op Ar args ローカルマシン上でシェルを起動します。 引数が指定された場合、最初の引数をコマンドとして実行し、 それ以降の引数はそのコマンドに対する引数として処理されます。 .It Ic \&$ Ar macro-name Op Ar args .Ar macro-name で定義されたマクロを実行します。マクロは、 .Ic macdef コマンドで定義出来ます。 .Ar args で指定された文字列は、展開されずにマクロに対して引き渡されます。 .It Ic account Op Ar passwd 一旦ログインに成功したユーザが、資源を扱うためにリモートマシンから 要求された追加のパスワードを入力します。 引数が指定されない場合、ユーザに対してパスワード入力を促す表示がされます。 この場合はパスワードはエコーバックされません。 .It Ic append Ar local-file Op Ar remote-file ローカルファイルをリモートマシン上のファイルに追加書き込みします。 もし、 .Ar remote-file が指定されていなければ、ローカルファイルの名前を .Ic ntrans や .Ic nmap で修正した名前をリモートファイル名として使います。 ファイル転送では .Ic type , .Ic format , .Ic mode , .Ic structure の現在の設定が使われます。 .It Ic ascii 転送ファイルの .Ic type をネットワーク .Tn ASCII 形式にします。 これはデフォルト時の設定です。 .It Ic bell 各ファイル転送コマンド終了時にベルを鳴らすかどうかを指定します。 .It Ic binary 転送ファイルの .Ic type をバイナリ形式にします。 イメージファイルなど、バイナリファイルを転送する時には本指定は必須です。 .It Ic bye リモートサーバとの .Tn FTP セッションを終了し、 .Nm を終了します。 EOF を入力した場合も同様です。 .It Ic case .Ic mget コマンドで連続してファイルを取得する場合、リモートマシン上の ファイル名の大文字小文字の対応を切り替えます。 デフォルトでは .Ic case はオフですが、オンの場合にはリモートマシンファイル名の すべての大文字が小文字に変換されて、ローカル マシンのディレクトリに 書き込まれます。 .It Ic \&cd Ar remote-directory リモートマシン上での作業ディレクトリを .Ar remote-directory へ変更します。 .It Ic cdup リモートマシン上での作業ディレクトリを一つ上に変更させます。 .It Ic chmod Ar mode file-name .Ar file-name で指定したリモートマシン上のファイルの属性を、 .Ar mode で指定したものに変更します。 .It Ic close リモートサーバとの .Tn FTP セッションを終了します。そしてコマンド入力待ちのプロンプトを表示します。 すでに定義されたマクロはすべて無効になります。 .It Ic \&cr ASCII 形式ファイルの転送を行なう場合に、 復帰コードの除去を行なうかどうかを変更します。 ASCII 形式のファイル転送時には、 復帰/改行 の文字列によってレコードが認識されます。 .Ic \&cr -がオン(デフォルト)の時には、改行コードのみでレコードを区切る +がオン (デフォルト) の時には、改行コードのみでレコードを区切る .Ux に適合するように、 復帰コードが文字列から除去されます。 .Ux 以外のリモートのシステムのレコードは 単独の改行コードを含む可能性があります。 ASCII 形式で転送を行った時には、そういった改行コードは .Ic \&cr がオフの場合にだけレコード区切り記号と区別して扱われます。 .It Ic delete Ar remote-file リモートマシン上のファイル .Ar remote-file を削除します。 .It Ic debug Op Ar debug-value デバッグモードを切り替えます。 .Ar debug-value が指定されるとデバッグレベルとして設定されます。 デバッグモードが有効になると、 .Nm はリモートマシンに送信されたコマンドを .Ql \-\-> に続けて表示します。 .It Ic dir Op Ar remote-directory Op Ar local-file リモートマシン上のディレクトリの内容を表示します。 表示内容にはサーバが選択したシステム依存の情報を含みます。 例えば大部分の .Ux システムは .Ql ls \-l コマンドから得られる出力を表示します。 ( .Ic ls も参照して下さい) もし .Ar remote-directory が指定されなければ、リモートマシン上のカレントディレクトリの内容が 表示されます。 もしプロンプトがオンだったら、 .Nm は、最後の引数が本当に .Ic dir の出力を書き込むローカルファイルかどうか問い合わせます。 ローカルファイルの指定が無い場合、または .Ar local-file の指定が .Sq Fl だった場合は出力は画面に表示されます。 .It Ic disconnect .Ic close と同じです。 .It Ic edit コマンドラインの編集機能、そして文脈に応じたコマンドとファイルの 補完機能を切り替えます。 これは入力が端末の場合は自動的に有効になり、そして そうでなければ無効になります。 .It Ic exit .Ic bye と同じです。 .It Ic ftp Ar host Op Ar port .Ic open と同じです。 .It Ic form Ar format ファイル転送様式を .Ar format と指定します。 デフォルトでは、様式は \*(Lqfile\*(Rq となります。 .It Ic get Ar remote-file Op Ar local-file リモートマシン上のファイル .Ar remote-file を取得してローカルマシン上に格納します。 ローカルファイル名 .Ar local file が指定されない場合、 ローカルファイル名は取得したファイルの リモートマシン上の名前と同じになります。 ただし、その名前は .Ic case , .Ic ntrans , .Ic nmap の設定により変更される事があります。 ファイル転送の時には現在の .Ic type , .Ic form , .Ic mode , .Ic structure の設定が使用されます。 .It Ic gate Op Ar host Op Ar port gate-ftp モードを切り替えます。 これは gate-ftp サーバが設定されていないと有効になりません (ユーザによって明示的に、または .Ev FTPSERVER 環境変数によって)。 .Ar host が与えられると、 gate-ftp モードが有効になり、そして gate-ftp サーバが .Ar host に設定されます。 .Ar port も同時に与えられると、それが gate-ftp サーバへ接続する際のポートとして使用されます。 .It Ic glob .Ic mdelete , .Ic mget , .Ic mput を行なう場合のファイル名の展開のオン/オフを切り替えます。 .Ic glob がオフの場合には、ファイル名は展開されずにそのままになります。 .Ic mput でのファイル名展開の規則は .Xr csh 1 のファイル名展開規則と同様です。 .Ic mdelete と .Ic mget の場合には、 各々のリモートファイル名はリモートマシン上で別々に展開され、 リストはマージされません。 ディレクトリ名の展開は普通のファイル名の展開と異なる事があります。 つまり、展開の結果はリモートの OS と FTP サーバに依存しています。 これは .Ql mls remote-files \- を実行する事によってあらかじめ知ることができます。 注意: .Ic mget と .Ic mput はファイルのディレクトリ・サブツリーを全て転送する物ではありません。 そのようにしたい時はサブツリーの .Xr tar 1 のアーカイブを作成してバイナリモードで転送します。 .It Ic hash Op Ar size 1 データブロック転送するごとに ハッシュサイン (``#'') を出力するかどうかを切り替えます。 デフォルトでは 1 データブロックは 1024byte です。 これは .Ar size でバイト単位で指定する事で変更できます。 .It Ic help Op Ar command 引数 .Ar command で指定したコマンドのヘルプメッセージを出力します。 引数が与えられない場合、 .Nm は使用可能なコマンドの一覧を出力します。 .It Ic idle Op Ar seconds リモートサーバ上のアイドルタイマを .Ar seconds 秒に設定します。 .Ar seconds が与えられない場合は現在のアイドルタイマ値を表示します。 .It Ic lcd Op Ar directory ローカルマシン上の作業ディレクトリを変更します。 .Ar directory 名が与えられない場合はユーザのホームディレクトリに移動します。 .It Ic less Ar file .Ic page と同じです。 .It Ic lpwd ローカルマシン上の作業ディレクトリを表示します。 .It Ic \&ls Op Ar remote-directory Op Ar local-file リモートマシンのディレクトリの内容のリストを表示します。 .Ar remote-directory の指定が無い場合には、 代わりに現在の作業ディレクトリが使われます。 もしプロンプトモードになっているならば, .Nm は、最後の引数が .Ic ls -の出力を受け取るローカルのファイルであるかをユーザーに問い合わせます。 +の出力を受け取るローカルのファイルであるかをユーザに問い合わせます。 .Ar local-file の指定がない場合や .Fl が指定されている場合には、 出力は画面に表示されます。 .It Ic macdef Ar macro-name マクロ定義を行ないます。 後続の行がマクロ .Ar macro-name として格納されます。 空行 (1 つのファイル内での連続した改行文字や端末からの連続した 復帰文字) は マクロの入力モードを終了させます。 マクロの数の制限は 16 個で、定義されたマクロ全部で 4096 文字までがゆるされています。マクロは .Ic close コマンドが実行されるまで持続します。 マクロプロセッサは `$' と `\e' を特別な文字として解釈します。 1つ以上の数字が続く `$' は、コマンドラインで呼び出したマクロの 対応する引数によって置き換えられます。 後ろに `i' が続く `$' は、マクロプロセッサに対して実行している マクロのループを指示します。 最初のパスで `$i' はマクロを呼び出したコマンドラインの最初の引数に 置き換えられ、2 回目のパスで 2 つ目の引数に置き換えられ、それ以降も 同様に置き換えられます。 後ろに任意の文字が続いている `\e' はその文字に置き換えられます。 `\e' は `$' の特別な扱いを避けるために使用します。 .It Ic mdelete Op Ar remote-files リモートマシンの .Ar remote-files を削除します。 .It Ic mdir Ar remote-files local-file 複数のリモートファイルを指定出来る点を除くと .Ic dir と同様です。 プロンプトがオンの時には、 .Nm は最後の引数が .Ic mdir -の出力を受け取るローカルファイルであるかをユーザーに問い合わせます。 +の出力を受け取るローカルファイルであるかをユーザに問い合わせます。 .It Ic mget Ar remote-files リモートマシンで .Ar remote-files で指定されたファイルを展開し、展開後の各ファイル名のファイルに対して .Ic get を実行します。 ファイル名の展開の詳細は .Ic glob を参照してください。 生成されたファイル名は .Ic case , .Ic ntrans , .Ic nmap の設定に従い処理されます。 ファイルはローカルの作業ディレクトリに転送されます。 そのディレクトリは .Ql lcd directory で変更できます。 ローカルの新しいディレクトリは .Ql "\&! mkdir directory" で作成できます。 .It Ic mkdir Ar directory-name リモートマシンにディレクトリを作ります。 .It Ic mls Ar remote-files local-file 複数のリモートファイル名を指定できる点と .Ar local-file を必ず指定しなければならない点を除くと .Ic ls と同様です。 プロンプトがオンの時には、 .Nm は最後の引数が .Ic mls の出力を受け取る目標のローカルファイルであるかをユーザに確認します。 .It Ic mode Op Ar mode-name ファイル転送モード .Ic mode を .Ar mode-name で指定したものに設定します。 デフォルトは \*(Lqstream\*(Rq です。 .It Ic modtime Ar file-name リモートマシン上の指定ファイルの最終更新日時を参照します。 .It Ic more Ar file .Ic page と同じです。 .It Ic mput Ar local-files 引数として与えられたローカルファイルのリスト中の ワイルドカードを展開し、 展開後の各ファイル名のファイルに対して .Ic put を実行します。 ファイル名の展開の詳細については .Ic glob を参照してください。 生成されたファイル名は .Ic ntrans と .Ic nmap の設定に従って処理されます。 .It Ic msend Ar local-files .Ic mput と同じです。 .It Ic newer Ar file-name リモートマシンのファイルの最終更新日時の方が ローカルマシンのファイルより新しい場合にのみファイルを取得します。 現在のシステムにファイルが無いときには、リモートファイルの方が .Ic 新しい ものとして扱われます。 その他については .Ar get と同じです。 .It Ic nlist Op Ar remote-directory Op Ar local-file .Ic ls と同じです。 .It Ic nmap Op Ar inpattern outpattern ファイル名のマッピング機能を設定したり解除したりします。 引数が無い場合にはマッピング機能が解除されます。 引数がある場合には、出力先のリモートファイル名の指定されていない .Ic mput コマンドと .Ic put コマンドの実行時に、リモートファイル名がマップされます。 同様な事が .Ic mget コマンドと .Ic get コマンドのローカルファイル名についても行われます。 このコマンドはファイルの命名規則が異なる .Ux ではないリモートマシンとの接続時に便利です。 マッピングは .Ar inpattern と .Ar outpattern によって設定されたパターンに従って行われます。 .Op Ar inpattern は (すでに .Ic ntrans と .Ic case によって処理されているかもしれない) 入力ファイル名のためのテンプレートです。 .Ar inpattern -に`$1', `$2', ..., `$9' の文字列を含むことによって、 +に `$1', `$2', ..., `$9' の文字列を含むことによって、 変数を使用したテンプレートも使えます。 `$' を特別扱いしたくない時には `\\' を使ってください。 他の文字はそのままその文字として扱われ、 .Ic nmap の .Op Ar inpattern 変数の値を決めるのに用いられます。 例えば、 .Ar inpattern として $1.$2 が、 リモートファイルの名前として "mydata.data" が 与えられた時に、$1 は "mydata" という値となり, $2 は "data" という値になります。 .Ar outpattern は生成されるマッピング後のファイル名を決定します。 文字列の `$1', `$2', ...., `$9' は .Ar inpattern のテンプレートから生成される値に置き換えられます。 文字列の `$0' は元のファイル名で置き換えられます。 さらに、文字列の .Ql Op Ar seq1 , Ar seq2 は .Ar seq1 が空文字列でない時には .Op Ar seq1 に、 空文字列の時には .Op Ar seq2 に置き換えられます。 例えばコマンド .Pp .Bd -literal -offset indent -compact nmap $1.$2.$3 [$1,$2].[$2,file] .Ed .Pp は、 入力ファイル名 "myfile.data" と "myfile.data.old" に対して出力ファイル名が "myfile.data" になり、 入力ファイル名 "myfile" に対して出力ファイル名が "myfile.file" になり、 入力ファイル名 ".myfile" に対して 出力ファイル名が "myfile.myfile"になります。 例えば、`nmap $1 sed "s/ *$//" > $1' のように、 .Ar outpattern にはスペースが入っていても構いません。 文字 `$', `[', `]', `,' を特別扱いしたくない時には `\e' を使ってください。 .It Ic ntrans Op Ar inchars Op Ar outchars ファイル名の文字変換機能を設定したり解除したりします。 引数が無い場合には文字変換機能が解除されます。 引数がある場合には、出力先のリモートファイル名の指定されていない .Ic mput コマンドと .Ic put コマンドの実行時にリモートファイル名が変換されます。 同様な事が .Ic mget コマンドと .Ic get コマンドでもローカルファイルに対して行われます。 このコマンドは、 .Ux とは異なるファイル命名規則のリモートマシンとの接続時に有効です。 ファイル名中の文字で、 .Ar inchars の中の文字に一致するものが .Ar outchars の対応する文字に置き換えられます。 .Ar inchars の中での文字の位置が .Ar outchars の長さを越えている時には、その文字はファイル名から削除されます。 .It Ic open Ar host Op Ar port 指定した .Ar host の .Tn FTP サーバとのコネクションを確立します。 ポート番号 .Ar port を指定した場合、 .Nm は指定したポート番号を用いて .Tn FTP サーバとのコネクションの確立を試みます。 .Ic 自動ログイン -オプションがオン ( デフォルト時 ) の場合には、 +オプションがオン (デフォルト時) の場合には、 .Nm は自動的に .Tn FTP -サーバに対してログインを行ないます ( 以下を参照 ) 。 +サーバに対してログインを行ないます (以下を参照)。 .It Ic page Ar file .Ic file を取得して、 .Ev PAGER で指定されたプログラム (デフォルトは .Xr less 1 -)を使って表示します。 +) を使って表示します。 .It Ic passive パッシブモードを切り替えます。パッシブモードがオン (デフォルトはオフ) なら、ftp クライアントは すべてのデータコネクションにおいて、通常の .Dv PORT コマンドの代わりに .Dv PASV コマンドを送ります。 .Dv PASV コマンドはリモートのサーバにデータコネクションのためのポートを 開いて、そのポートのアドレスを返すよう要求します。 リモートサーバはそのポートで待ち、クライアントはそこに接続します。 より伝統的な .Dv PORT コマンドを使う場合は、クライアントがポートで待ち、そしてそのアドレスを リモートサーバに送ってリモートサーバはそこに接続して来ます。 パッシブモードは ゲートウェイ・ルータやトラフィックの方向を制御しているホストを 経由して .Nm を使う場合に有用です。 (注意: ftp サーバが RFC 1123 の .Dv PASV コマンドをサポートしている必要がありますが、サポートしていない 場合もあります。) .It Ic preserve 受け取ったファイルの更新日時を保存するかどうかを切り替えます。 .It Ic progress 転送の進行状況を表す棒グラフ表示を切り替えます。 この棒グラフは、 .Ar ローカルファイル として .Sq Fl か .Sq \&| で始まるコマンドが指定された転送では表示されません。 詳しくは .Sx ファイル名の規則 を参照して下さい。 .It Ic prompt 対話的プロンプトモードを切り替えます。 対話的プロンプトモードをオンにすることで、 複数ファイル転送時に転送ファイルの選択を行なえます。 対話的プロンプトモードをオフにすると (デフォルトはオン)、 .Ic mget や .Ic mput で指定したファイルはすべて転送され、 .Ic mdelete で指定したファイルはすべて削除されます。 .Pp プロンプトモードがオンの時には、プロンプトにおいて以下の コマンドが使用できます: .Bl -tag -width 2n -offset indent .It Ic n ファイルを転送しません。 .It Ic a 現在のファイルについて .Sq yes とし、自動的に現在のコマンドに対する残りのすべての ファイルに対しても .Sq yes とします。 .It Ic p 現在のファイルについて .Sq yes とし、プロンプトモードをオフにします (あたかも .Dq prompt off が指定されたかのように)。 .El .Pp これ以外の応答は現在のファイルに対する .Sq yes として扱われます。 .It Ic proxy Ar ftp-command -ftp コマンドを 2次制御接続上で実行します。 +ftp コマンドを 2 次制御接続上で実行します。 本コマンドを用いることで、同時に 2 つのリモートマシンとコネクションを確立し、 -2つのサーバ間でファイル転送を行なうようにすることができるようになります。 +2 つのサーバ間でファイル転送を行なうようにすることができるようになります。 最初の .Ic proxy コマンドは .Ic open コマンドである必要があります。 これは、2 次的な制御コネクションを確立するために必要な操作です。 "proxy ?" とコマンドを実行することで、 2 次接続下で使用可能なコマンド一覧が表示されます。 以下のコマンドは .Ic proxy の後におかれた時には異なった働きをします。 .Ic open は自動ログイン処理中には新しいマクロの定義を行いません。 .Ic close はマクロの削除を行いません。 .Ic get と .Ic mget は 1次制御接続のホストから 2次制御接続のホストにファイルの転送を行います。 .Ic put と .Ic mput と .Ic append は 2次制御接続のホストから 1次制御接続のホストにファイルの転送を行います。 第三者のファイル転送は、2次制御接続のサーバが FTP プロトコルの .Dv PASV コマンドをサポートしているかどうかに依存します。 .It Ic put Ar local-file Op Ar remote-file ローカルマシン上の指定ファイルをリモートマシンに転送します。 .Ar remote-file が指定されない場合には、転送先でのファイル名は、 .Ic ntrans か .Ic nmap の設定に基づく処理を行ったローカルファイルの名前が用いられます。 ファイル転送には .Ic type , .Ic format , .Ic mode , .Ic structure の現在の設定が用いられます。 .It Ic pwd 現在のリモートマシン上での作業ディレクトリを表示します。 .It Ic quit .Ic bye と同じです。 .It Ic quote Ar arg1 arg2 ... 引数で指定した文字列を、そのままリモート .Tn FTP サーバに送信します。 .It Ic recv Ar remote-file Op Ar local-file .Ic get と同じです。 .It Ic reget Ar remote-file Op Ar local-file getと似ていますが、 .Ar local-file が存在しており .Ar remote-file よりサイズが小さい場合には、 .Ar local-file がリモートファイルの一部であるとみなして続きをコピーする点が異なります。 本コマンドは、大きいファイルの転送中にコネクションが 切断されてしまった場合の続きを受信しなおす場合などに有用です。 .It Ic remotehelp Op Ar command-name リモート .Tn FTP サーバのヘルプメッセージを要求します。 .Ar command-name が指定された場合にはそのコマンドのヘルプが表示されます。 .It Ic rstatus Op Ar file-name 引数がない場合にはリモートマシンのステータスが表示されます。 .Ar file-name が指定されている場合には、 リモートマシン上の指定ファイルのステータスが表示されます。 .It Ic rename Op Ar from Op Ar to リモートマシン上のファイル .Ar from が、 .Ar to というファイル名にリネームされます。 .It Ic reset リプライキューをクリアします。 本コマンドはコマンド/リプライのシーケンスの再同期をとるのに使われます。 再同期を取ることは ftp プロトコル上の障害が発生した時に必要な操作です。 .It Ic restart Ar marker .Ic get や .Ic put を指定した .Ar marker 位置から再開します。 .Ux システムにおいては、通常 marker はファイルのバイトオフセットで指定します。 .It Ic restrict データポートの幅を制限するかをオン/オフします。 パッシブモードでない時に、 .Nm クライアントはリモートサーバに対して、独立したデータポートで クライアントホストに接続してくることを要求します。 前のバージョンでは、そのリモートポートは 1024 から 4999 までの幅に 収まっていました。 しかしほとんどの防火壁 (fire wall) では、その範囲に他のサービスが あるために TCPポートをフィルタリングしています。 現在のデフォルトの動作では、ポート番号が 40000 から 44999 の間で、 サーバがクライアントに対して接続してくることを要求します。 もしセキュリティ上の危険性がないと考えるならば、防火壁管理者は その幅での TCP 接続に対して許可を行うという選択ができます。 .It Ic rmdir Ar directory-name リモートマシン上のディレクトリを消去します。 .It Ic runique ローカルマシンに保存されるファイルに対して ユニークな名前を付加するかどうかを切り替えます。 .Ic get や .Ic mget コマンドで目的のローカルファイルと同じ名前のファイルが既に存在する時には、 ".1" が名前に付加されます。 その名前も既に存在する時には ".2" が付加されます。 このように順番に処理をし、 ".99" になっても存在する時には エラーメッセージが表示され、転送は行われません。 生成されたユニークなファイル名は報告されます。 注意: .Ic runique はシェルコマンドで生成されるファイル名には効果がありません (下記参照)。 デフォルトではオフになっています。 .It Ic send Ar local-file Op Ar remote-file .Ic put と同じです。 .It Ic sendport .Dv PORT コマンドを使用するかどうか切り替えます。 デフォルトでは、 .Nm は各データ転送用のコネクションの確立の際に .Dv PORT コマンドの使用を試みます。 .Dv PORT を使うことで複数ファイル転送を行なう場合の遅延を避けることが出来ます。 .Dv PORT コマンドが失敗した場合、 .Nm はデフォルトのデータ・ポートを使用します。 .Dv PORT コマンドが無効になった場合、データ転送時に .Dv PORT コマンドは使われません。 これはある種の .Tn FTP の実装で .Dv PORT コマンドは無視するが、誤っていて、受け入れたと返事を返すような 物に対して有効です。 .It Ic site Ar arg1 arg2 ... 引数で指定した文字列を、 .Dv SITE コマンドの引数としてそのまま .Tn FTP サーバに送信します。 .It Ic size Ar file-name リモートマシン上の .Ar file-name で指定したファイルのサイズを表示します。 .It Ic status .Nm の現在の状態を表示します。 .It Ic struct Op Ar struct-name ファイル転送の .Ar structure を .Ar struct-name に設定します。 デフォルトでは、\*(Lqstream\*(Rq に設定されています。 .It Ic sunique リモートマシン上に転送するファイルのファイル名に対して、 一意な名前を付与するかどうかを切り替えます。 この機能が使えるためには、 リモートの FTP サーバが FTP のプロトコルの .Dv STOU コマンドをサポートしていなければなりません。 リモートサーバがユニークな名前を報告します。 デフォルトではこの機能はオフになっています。 .It Ic system リモートマシンで稼働している OS のタイプを表示します。 .It Ic tenex .Tn TENEX マシンと 通信するために必要なファイル転送モードを設定します。 .It Ic trace パケットトレースをするかどうかを切り替えます。 .It Ic type Op Ar type-name ファイル転送の .Ic type を .Ar type-name に変更します。引数が指定されない場合には 現在のファイル転送タイプを表示します。 デフォルトタイプはネットワーク .Tn ASCII です。 .It Ic umask Op Ar newmask リモートサーバのデフォルトの umask 値を .Ar newmask で指定した値に変更します。 .Ar newmask が指定されていない場合は現在の umask 値を表示します。 .It Xo .Ic user Ar user-name .Op Ar password Op Ar account .Xc ユーザをリモート .Tn FTP サーバに認識させます。 .Ar password が指定されていなくて、 .Tn FTP サーバが必要とする場合は -( ローカルエコーをオフにしてから ) +(ローカルエコーをオフにしてから) .Nm がユーザに問い合わせます。 .Ar account が指定されていなくて、 .Tn FTP サーバが必要とする場合には、 .Nm がユーザに問い合わせます。 リモートサーバがログイン時にアカウントを必要としないのに .Ar account フィールドが指定された場合には、ログイン処理の完了後に account コマンドがリモートサーバに渡されます。 「自動ログイン」を無効にした状態で .Nm が呼び出されない限り、 この処理は .Tn FTP サーバに最初につながった時に自動的に行われます。 .It Ic verbose 饒舌モードの切り替えをします。 饒舌モードの時には .Tn FTP サーバからの全ての応答が表示されます。 さらにこのモードがオンの時には、ファイル転送が終了した時に 転送効率に関する統計が報告されます。 デフォルトではオンになっています。 .It Ic ? Op Ar command .Ic help コマンドと同じです。 .El .Pp スペースを含むコマンドの引数は、`"' マークで括って下さい。 .Pp 設定を切り替えるコマンドでは、設定を指定するために明示的に .Ic on か .Ic off を引数として指定できます。 .Pp .Nm が転送中に .Dv SIGINFO ( .Xr stty 1 の引数 .Dq status を参照) シグナルを受けると、その時点での転送レートの統計情報が 終了時の標準的なフォーマットと同じ形式で標準エラー出力に書き出されます。 .Sh ファイルの自動取得 標準的なコマンドに加えて、 このバージョンの .Nm は自動取得の機能をサポートします。 単にホスト名/ファイルのリストをコマンドラインで渡すと 自動取得が有効になります。 .Pp 自動取得の指定では以下の形式を認識します: .Bl -tag -width "host:/file" .It host:/file .Dq 古典的な ftp の形式 .It ftp://[user:password@]host[:port]/file -ftp URL形式で、 +ftp URL 形式で、 .Ev ftp_proxy -が定義されていなければ ftpプロトコルで取得します。 +が定義されていなければ ftp プロトコルで取得します。 そうでなければ .Ev ftp_proxy で指定されたプロキシを経由した http を使って転送します。 .Ar user:password@ が指定されていて .Ev ftp_proxy が定義されていない場合は、 パスワードに .Ar password を使って .Ar user でログインします。 .It http://host[:port]/file -HTTP URL形式、http プロトコルで取得します。 +HTTP URL 形式、http プロトコルで取得します。 .Ev http_proxy -が定義されている場合は、その内容が HTTPプロキシサーバの +が定義されている場合は、その内容が HTTP プロキシサーバの URL として使用されます。 .El .Pp 古典的な形式または ftp URL形式で最後に .Sq / がある場合は、 .Nm はサイトに接続して与えられたパスのディレクトリに .Ic cd し、以降の入力を受け付けるために対話モードに入ります。 .Pp 自動取得の対象が複数指定されていて、連続しているものが同じホストを 参照している時は、接続の確立と切断によるオーバヘッドを避けるために 複数の転送にわたって接続が維持されます。 .Pp ファイル名の展開がオンで .Ic file が展開の対象となる文字を含んでいるなら ( .Ic glob 参照) .Ic "mget file" と同じ事を行います。 .Pp .Ic file のディレクトリ部分が展開の対象となる文字を含まなければ、 ファイルは .Ic file から .Xr basename 1 で得られる名前で現在のディレクトリに置かれます。 そうでなければリモートの名前をローカルでの名前として使います。 .Sh ファイル転送の中止 ファイル転送を中断するためには、 端末のインタラプトキー (通常は Ctrl-C) を打鍵してください。 データ送信はただちに停止します。 データ受信は、ftp プロトコルの .Dv ABOR コマンドをリモートサーバに送ることでサーバからのデータ送信がとまります。 そしてそれ以降の受信データは捨てられます。 これが行われる速度は、リモートサーバが .Dv ABOR コマンドをサポートする方式に依存します。 リモートサーバが .Dv ABOR コマンドをサポートしていない時には、 リモートサーバが要求したファイルを送り終るまで .Ql ftp> というプロンプトは現れません。 .Pp 端末からの割り込みキー入力は、 .Nm が何かローカルの処理をすでに完了していて リモートサーバからの応答を待っている時には無視されます。 このモードでの長い遅延は上でも述べたように ABOR 処理の結果に よるものか、 ftp のプロトコル違反を含めたリモートサーバによる 予期せぬ動作のどちらかによるものです。 もしリモートサーバの予期せぬ動作の結果による遅延であるならば、 ローカルの .Nm プログラムは手動で終了 (kill) しなければなりません。 .Sh ファイル名の規則 .Nm コマンドの引数として指定されたファイル名は、以下の規則で処理されます。 .Bl -enum .It ファイル名として .Sq Fl が指定された場合、 入力ファイル名の場合には標準入力 .Ar stdin が、 出力ファイル名の場合には標準出力 .Ar stdout が使用されます。 .It ファイル名の先頭の文字が .Sq \&| の場合には、その後に指定された文字列はすべてシェルコマンドと解釈されます。 .Nm は与えられた引数をつけて .Xr popen 3 -を用いてシェルを呼び出し、標準入力から(標準出力へ)読み出し(書き込み)ます。 +を用いてシェルを呼び出し、標準入力から (標準出力へ) 読み出し (書き込み) ます。 シェルコマンドにスペースが含まれている時には 引数は引用符で囲まれなければなりません。 (例: \*(Lq" ls -lt"\*(Rq ) 特に有用な例としては \*(Lqdir \&|more\*(Rq があります。 .It -上記のチェックにひっかからず、 ``globbing'' が許可されている場合、 +上記のチェックにひっかからず、``globbing'' が許可されている場合、 ローカルファイル名は .Xr csh 1 のファイル名展開規則にしたがって展開されます。 (詳細は .Ic glob コマンドを参照) ただし、 .Nm のコマンドが 1 つのファイル名しか必要としない場合 (例えば .Ic put ) は、ファイル名が展開された後の最初のファイル名だけが使用されます。 .It .Ic mget コマンドと .Ic get コマンドにおいてローカルファイル名が指定されない場合、 ローカルファイル名はリモートファイル名と同一になります。 ただし、これらのファイル名は .Ic case , .Ic ntrans , .Ic nmap の設定によって変わることもあります。 結果として得られたファイル名は、 .Ic runique が設定されていればさらに変わるかもしれません。 .It .Ic mput コマンドと .Ic put コマンドにおいてリモートファイル名が指定されない場合、 リモートファイル名はローカルファイル名と同一になります。 ただし、これらのファイル名は .Ic ntrans , .Ic nmap の設定によって変わることもあります。 結果として得られたファイル名は、 .Ic sunique が設定されていればリモートサーバによって さらに変えられるかも知れません。 .El .Sh ファイル転送パラメータ FTPの仕様にはファイル転送時に影響を及ぼす多くのパラメータがあります。 .Ic type は、\*(Lqascii\*(Rq, \*(Lqimage\*(Rq (binary), \*(Lqebcdic\*(Rq, \*(Lqlocal byte size\*(Rq ( .Tn PDP Ns -10 および .Tn PDP Ns -20 でよく使われます) が指定可能です。 .Nm は、ascii と image のタイプを指定可能なのに加えて、 .Ic tenex モードの転送を指定することにより ローカルバイトサイズ 8 を指定することが可能です。 .Pp .Nm では、他の .Ic mode , .Ic form , .Ic struct のパラメータではデフォルト値だけが使用可能です。 .Sh .netrc ファイル .Pa .netrc ファイルは、自動ログイン処理においてのログインおよび初期設定情報を記述します。 .Pa .netrc ファイルは、ユーザのホームディレクトリに置きます。 .Pa .netrc では以下の予約語が解釈されます。これらはスペース、タブそして new-line によって分割されます。 .Bl -tag -width password .It Ic machine Ar name リモートマシン名 .Ar name を定義します。 自動ログイン処理は .Pa .netrc ファイル中に .Ic machine トークンがあるかどうか探し、そのエントリが .Nm のコマンドラインもしくは .Ic open コマンドの引数と一致するかどうかチェックします。 一致するエントリがあった場合は後に続く .Pa .netrc トークンが処理され、その処理はファイル最後尾に行き着くか他の .Ic machine トークンまたは .Ic default トークンに出くわすまで続きます。 .It Ic default いろんな名前と一致するワイルドカード的な働きがあることを除けば .Ic machine .Ar name と同様です。 .Ic default トークンは、 .Pa .netrc ファイル中に 1 エントリだけが許され、 しかも他の全ての .Ic machine トークンより後ろでなければなりません。 通常は .Pp .Dl default login anonymous password user@site .Pp のように使用されます。 本エントリによって .Pa .netrc に指定の無い ftp サイトに自動で anonymous ログインを試みるようになります。 .Fl n フラグを付加して ftp を起動することで .Pa .netrc ファイルを無視することが出来ます。 .It Ic login Ar name リモートマシンにおけるログイン名を指定します。 本トークンが与えられている場合、自動ログイン処理は .Ar name をログイン名としてログインしようとします。 .It Ic password Ar string パスワードを指定します。 本トークンが指定されている場合でリモートサーバがログイン処理中に パスワードを要求する場合は、自動ログイン処理は指定した文字列を 送ります。 .Pa .netrc ファイルにおいて、 .Ar anonymous 以外のユーザエントリにおいて本トークンが登録されており、なおかつ .Pa .netrc がユーザ以外から読める属性である場合には .Nm は自動ログイン処理を中断します。 .It Ic account Ar string 追加のアカウントパスワードを登録します。 このトークンがあると、 もし追加のアカウントパスワードをリモートホストが必要とする時に 自動ログインプロセスが指定された文字列を与えます。 そうでない場合には、自動ログインプロセスは .Dv ACCT コマンドを与えます。 .It Ic macdef Ar name マクロを定義します。 このトークンの機能は .Nm .Ic macdef コマンドの機能に似ています。 マクロは指定された名前を用いて定義されます。 その内容は .Pa .netrc -の次の行から始まり、空行 ( 改行文字の連続 ) が現れるまで続きます。 +の次の行から始まり、空行 (改行文字の連続) が現れるまで続きます。 .Ic init というマクロが定義されているならば、 自動ログイン処理の中での最後の段階で自動的に実行されます。 .El .Sh コマンドラインの編集機能 .Nm は .Xr editline 3 ライブラリを使った対話的なコマンドラインの編集をサポートします。 これは .Ic edit コマンドによって有効になり、そして入力が tty からの場合は デフォルトで有効になっています。 カーソルキーで以前の行を呼び出して編集できます。 そして他にも GNU Emacs スタイルの編集用のキーが使えます。 .Pp .Xr editline 3 ライブラリは .Pa .editrc ファイルで設定できます - より詳しくは .Xr editrc 5 を参照して下さい。 .Pp .Nm には、文脈に依存したコマンドとファイル名の補完 (リモートファイルの補完を含む) 機能を提供するための 追加のキー割り当てが用意されています。 これを使うためには .Xr editline 3 の .Ic ftp-complete コマンドにキーを割り当てて下さい。 これはデフォルトで TAB キーに割り当てられています。 .Sh 環境変数 .Nm は、以下の環境変数を使用します。 .Bl -tag -width "FTP_PASSIVE_MODE" .It Ev FTP_PASSIVE_MODE パッシブモードの FTP をデフォルトで使用します。 .It Ev FTPSERVER .Ic gate -が有効な時に gate-ftpサーバとして使用するホスト。 +が有効な時に gate-ftp サーバとして使用するホスト。 .It Ev FTPSERVERPORT .Ic gate -が有効な時に gate-ftpサーバに接続するのに使うポート。 +が有効な時に gate-ftp サーバに接続するのに使うポート。 デフォルトは .Dq ftpgate/tcp で .Fn getservbyname を呼び出して返って来たポート。 .It Ev HOME 定義されていれば .Pa .netrc ファイルのデフォルトの置き場所となります。 .It Ev PAGER .Ic page でファイルを表示する際に使われます。 .It Ev SHELL デフォルトで起動するシェルを定義します。 .It Ev ftp_proxy -FTP URLリクエストを発行する時に使う FTPプロキシの URL -(定義されていなければ標準の ftpプロトコルを使います)。 +FTP URL リクエストを発行する時に使う FTP プロキシの URL +(定義されていなければ標準の ftp プロトコルを使います)。 .It Ev http_proxy -HTTP URLリクエストを発行する時に使う HTTPプロキシの URL。 +HTTP URL リクエストを発行する時に使う HTTP プロキシの URL。 .El .Sh 関連項目 .Xr getservbyname 3 , .Xr editrc 5 , .Xr services 5 , .Xr ftpd 8 .Sh 注釈 .Xr pftp 1 と .Xr gate-ftp 1 コマンドは .Nm にリンクされています。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から実装されました。 .Pp コマンドラインの編集、文脈に依存したコマンドとファイルの補完、 進行状況を表す棒グラフ、ファイルの自動的な取得、 ftp と http 形式の URL、更新時刻の保存といった各種の機能は .Nx 1.3 で Luke Mewburn によって、Jason Thorpe のアシスタントを得て実装されました。 .Sh バグ 多くのコマンドの正しい動作は、リモートサーバの適切な動作に依存します。 .Pp .Bx 4.2 の ascii モードでの転送時の復帰文字の取り扱いのエラーは訂正されています。 この訂正の結果として、 .Bx 4.2 のサーバとの間でバイナリファイルを ascii タイプを使用して転送した時に 不正転送をひき起こすことが あります。この問題を回避するためにはバイナリモードを用いて ファイル転送をして下さい。 diff --git a/ja_JP.eucJP/man/man1/grep.1 b/ja_JP.eucJP/man/man1/grep.1 index 0344107757..6361697320 100644 --- a/ja_JP.eucJP/man/man1/grep.1 +++ b/ja_JP.eucJP/man/man1/grep.1 @@ -1,377 +1,377 @@ .TH GREP 1 "1992 September 10" "GNU Project" .\" jpman %Id: grep.1,v 1.3 1997/07/21 07:22:12 konuma Stab % .SH 名称 grep, egrep, fgrep, zgrep \- パターンにマッチする行を表示する .SH 書式 .B grep [\-[AB] num] [\-HRPS] [\-CEFGLVabchilnqsvwx] [\-e expr] [\-f file] files... .SH 解説 .B grep は、 .I files で名前を指定されたファイル (ファイルが指定されてないか .I files の部分に .B \- が指定された場合は標準入力) を読み込み、 .I pattern で指定したパターンにマッチする部分を含んでいるかどうかを、行毎に調べます。 デフォルト動作では、マッチした行を表示します。 .PP .B grep は、以下のオプションにより大きく 3 つの動作に分かれます。 .PD 0 .TP .B \-G .I pattern として、基本的な正規表現を扱うモードです (下記参照)。デフォルトです。 .TP .B \-E .I pattern として、拡張された正規表現を扱うモードです (下記参照)。 .TP .B \-F .I pattern として、改行で区切られた固定の文字列パターンのリストを扱うモードです。 その文字列のどれかにマッチするかどうか調べます。 .LP さらに、2 つの同種のプログラム .B egrep と .B fgrep が利用可能です。 .B egrep は、 .B "grep\ \-E" と似ています (が等価ではありません) し、歴史的な UNIX の .B egrep と互換性があります。 .B fgrep は、 .B "grep\ \-F" と同じです。 .BR zgrep として呼ばれた場合には、 .BR \-Z オプションが仮定されます。 .PD .LP 全ての .B grep の変種は、以下のようなオプションを理解します: .PD 0 .TP .BI \- num .I num で指定した行数だけ、パターンにマッチした行の前後の行も表示します。 ただし、同じ行を 2 度以上表示する事はありません。 .TP .BI \-A " num" .I num で指定した行数だけ、パターンにマッチした行の後の行も表示します。 .TP .BI \-B " num" .I num で指定した行数だけ、パターンにマッチした行の前の行も表示します。 .TP .B \-C .B \-2 を指定した事と同じです。 .TP .B \-V .B grep のバージョン番号を標準エラー出力に表示します。バグレポート には、この番号を付記してください (下記参照)。 .TP .B \-a バイナリファイルの検索を行いません。 .TP .B \-b 各行の前に、ファイルの先頭からのバイト単位のオフセットを表示します。 .TP .B \-c 各行の表示はせず、マッチした行数だけを表示します。 .B \-v オプションと共に指定した場合は、 マッチしなかった行数の表示となります (下記参照)。 .TP .BI \-e " pattern" パターンを指定します。 .B \- で始まっているパターンを保護するために有効です。 .TP .BI \-f " file" パターンを .I file から読み込みます。 .TP .B \-h 複数ファイルを検索した時に、出力の前にファイル名を付けることを抑制します。 .TP .B \-i パターンマッチにおいて、英大文字と小文字の区別をしないようにします。 .TP .B \-L 通常の表示を抑止します; このオプションを指定しなかったときに 全く出力されない入力ファイルの名前を表示します。 .TP .B \-l 通常の表示を抑止します; このオプションを指定しなかったときに 出力される入力ファイルの名前を表示します。 .TP .B \-n 各行の出力の前に、入力ファイルにおける行番号を表示します。 .TP .B \-q 静粛; 通常の表示を抑止します。 .TP .B \-s 指定されたファイルが存在しないことや読み込みできないことを示す エラーメッセージを抑止します。 .TP .B \-v マッチの意味を逆転します。すなわち、マッチしない行を対象にします。 .TP .B \-w 完全な語にマッチする行のみを選択します。 部分文字列が行頭から始まっているか、 語でない文字列が前にあることがテストされます。 同様に、行末か語でない文字列が後に付いいる必要があります。 単語とは、レター・数字・アンダスコアからなる文字列です。 .TP .B \-x 行全体がマッチする行のみを選択します。 .PP FTS ライブラリとともにコンパイルした場合、以下のオプションが 利用可能です: .PD 0 .TP .BI \-H .I \-R オプション指定時に、 コマンドラインのシンボリックリンクを辿ります (木を探索している時に遭遇したシンボリックリンクは辿りません) 。 .TP .BI \-L .I \-R オプション指定時に、全てのシンボリックリンクを辿ります。 .TP .BI \-P .I \-R オプション指定時に、シンボリックリンクを辿りません。 .TP .BI \-R -ファイルのみを検索する代わりに、ファイルを根とするファイル階層を検索します。 +files のみを検索する代わりに、files を根とするファイル階層を検索します。 .TP .LP 次のオプションは zlib ライブラリと共にコンパイルした場合のみ使用可能です: .PD 0 .TP .BI \-Z .I \-Z オプションが指定されると、検索前に入力ファイルを伸長します。 .TP .PD .SH "正規表現" .PP 正規表現は、文字列の集合を表現するパターンの事です。正規表現は、より小さな 表現を組み合わせるさまざまな演算子を用いる事により、数式表現と同じような 表現を作成する事ができます。 .PP .B grep は、「基本」正規表現と 「拡張」正規表現の 2 種類の正規表現を扱う事ができます。 .RB "GNU\ " grep では、どちらの表現も機能的に違いありません。 他の実装では、基本正規表現は拡張正規表現より能力が低くなっています。 ここでは、拡張正規表現について説明します。 基本正規表現との違いは、その後に説明します。 .PP 正規表現の基本単位は、1 文字にマッチします。 レターや数字などの多くの文字は、それ自身にマッチします。 また、特殊な意味があるメタ文字も、その文字の前にバックスラッシュ を付ける事で、その本来の文字にマッチするようになります。 .PP .B [ と .B ] で囲まれた文字のリストは、そのリストの中に含まれるどれか 1 文字にマッチします。 ただし、リストの先頭がキャレット .B ^ の場合は、そのリストに含まれ .I ない 文字にマッチします。 例えば、正規表現 .B [0123456789] は数字 1 文字にマッチします。 ASCII 文字の範囲は最初と最後の文字をハイフン (`-') でつなぐことで 指定できます。最後に、特定の名前を持つ文字クラスが既定義されています。 名前が内容を示しており、それらは、 .BR [:alnum:] , .BR [:alpha:] , .BR [:cntrl:] , .BR [:digit:] , .BR [:graph:] , .BR [:lower:] , .BR [:print:] , .BR [:punct:] , .BR [:space:] , .BR [:upper:] , .B [:xdigit:] です。 例えば、 .B [[:alnum:]] は .B [0-9A-Za-z] と同じですが、後者は ASCII コード順に依存しますので、前者の方が可搬的です。 (注: クラス名の鈎括弧はシンボル名の一部であり、 リストを区切る鈎括弧とは別に指定する必要があります。) リストの中では、ほとんどの特殊文字は、通常の文字として扱われます。 リテラル .B ] を含むためにはリストの先頭に置いてください。同様に、リテラル .B ^ を含むためには先頭以外に置いてください。リテラル .B \- を含むためには、最後に置いてください。 .PP ピリオド .B . は、任意の 1 文字にマッチします。 シンボル .B \ew は、 .B [[:alnum:]] と同じで、 シンボル .B \eW は、 .B [^[:alnum:]] と同じです。 .PP キャレット .B ^ と、 ドル記号 .B $ は、それぞれ行頭と行末の空文字列にマッチするメタ文字です。 シンボル .B \e< とシンボル .B \e> は、それぞれ単語の先頭と単語の末尾の空文字列にマッチするメタ文字です。 シンボル .B \eb は単語の端の空文字列にマッチします。 シンボル .B \eB は単語の端 .I 以外 の空文字列にマッチします。 .PP 1 文字にマッチする正規表現の後には、繰り返し演算子が付くことがあります: .PD 0 .TP .B ? 直前の項目はオプションであり、最大 1 回マッチします。 .TP .B * 直前の項目は 0 回以上マッチします。 .TP .B + 直前の項目は 1 回以上マッチします。 .TP .BI { n } 直前の項目は厳密に .I n 回マッチします。 .TP .BI { n ,} 直前の項目は .I n 回以上マッチします。 .TP .BI {, m } 直前の項目はオプションであり、最大 .I m 回マッチします。 .TP .BI { n , m } 直前の項目は、最低 .I n 回、最大 .I m 回マッチします。 .PD .PP 2 つの正規表現は結合可能です; 結果としてできあがる正規表現は、 結合された 2 つの部分表現にそれぞれマッチする 2 つの部分文字列を結合した任意の文字列にマッチします。 2 つの正規表現は .B | インフィクス演算子で繋ぐことができます; 結果としてできあがる正規表現は、 どちらかの部分表現にマッチする任意の文字列にマッチします。 .PP 繰り返しは結合に優先します。また結合は選言に優先します。 部分表現全体は括弧で括って、この順序に優先させることができます。 .PP .I n が 1 つの数字であるような、 後方参照 .BI \e n\c \& は、正規表現中で括弧で囲まれた .I n 番目の部分表現にマッチします。 .PP 基本正規表現では、メタ文字 .BR ? , .BR + , .BR { , .BR | , .BR ( , .B ) は、特殊な意味を失います; 代わりに、バックスラッシュを付けた .BR \e? , .BR \e+ , .BR \e{ , .BR \e| , .BR \e( , .B \e) を使用してください。 .PP .B egrep では、 .B { は、特殊な意味を失います; 代わりに、 .B \e{ を使う必要があります。 .SH 診断 通常、パターンにマッチした行が見つかった場合は 0 を、 見つからなかった場合は 1 を返します。(ただし、 .B \-v オプションを指定した場合は、逆になります。) パターンの指定の仕方が間違っていたり、ファイルがアクセスできないなどの エラーが発生した場合は、2 を返します。 .SH バグ バグレポートは、 .B bug-gnu-utils@prep.ai.mit.edu まで Email してください。この時、``Subject:'' のどこにでもいいですから ``grep'' という単語を 忘れずに入れてください。 .PP .BI { m , n } の表現で非常に大きな繰り返しを指定すると、非常に多くのメモリを消費します。 さらに、ある種のあいまいな正規表現を指定すると、必要となる時間とメモリ領域は 指数的に増大し、メモリ不足を起こす可能性があります。 .PP 後方参照は非常に動作が遅く、必要となる時間は指数的に増大します。 diff --git a/ja_JP.eucJP/man/man1/gtar.1 b/ja_JP.eucJP/man/man1/gtar.1 index 8d9b0c17eb..8a1e3bed8b 100644 --- a/ja_JP.eucJP/man/man1/gtar.1 +++ b/ja_JP.eucJP/man/man1/gtar.1 @@ -1,502 +1,501 @@ .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*- .\" See /usr/src/gnu/COPYING for conditions of redistribution .\" .\" Written by John F. Woods .\" Updated by Robert Eckardt .\" .\" %Id: tar.1,v 1.18.2.1 1999/03/29 11:26:35 obrien Exp % .\" .\" jpman %Id: tar.1,v 1.2 1997/06/24 07:09:44 bobson Stab % .Dd 25 August 1997 .Os FreeBSD .Dt TAR 1 .Sh 名称 .Nm tar .Nd テープアーカイバ; "tar" アーカイブファイルの操作 .Sh 書式 .Nm tar .Op [-] Ns Ar bundled-options .Op Ar gnu-style-flags .Op Ar tarfile .Op Ar blocksize .Op Ar exclude-file .Op Ar filenames .Op Fl C Ar directory-name .Sh 解説 .Nm は、歴史的な理由により .Dq tape archiver を省略して名付けられました。 .Nm プログラムは、 .Ar tarfile と呼ばれる .Dq tar フォーマットのアーカイブファイルを作成し、アーカイブにファイルを追加したり、 またアーカイブからファイルを抽出したりします。 tarfile は通常磁気テープを指しますが、フロッピディスケットや 通常のファイルでも構いません。 .Pp 通常、 .Nm コマンドラインの最初の引数は、機能文字および機能変更文字からなる単語であり、 その前に ダッシュ (-) を付けても付けなくてもいいようになっています。 単語には、次の機能文字のうち丁度 1 つを含んでいる必要があります: .Cm A , .Cm c , .Cm d , .Cm r , .Cm t , .Cm u , .Cm x , これらはそれぞれ、 追加 (append)、作成 (create)、差分 (difference)、置換 (replace)、 リスト表示 (table of contents)、更新 (update)、抽出 (extract) を意味しています (下記に詳細があります)。 これらの他に、以下に詳細を述べる機能変更文字を、コマンド単語に 含めることができます。それらのいくつかは、コマンド単語内と同じ順で -コマンドライン引数を要求します (使用例の節を参照) 。 +コマンドライン引数を要求します (使用例の節を参照)。 機能文字と機能変更文字は、GNU 形式の引数で指定することもできます (2 つのダッシュを最初に付け、1 つのコマンド単語ごとに機能文字か 機能変更文字を 1 つだけ指定する)。 アーカイブへの追加、アーカイブからの抽出、そしてリスト表示のために コマンドライン指定するファイル名には、 シェルのパターンマッチ文字列を使用することができます。 .Sh 機能 以下の機能のいずれか 1 つだけを必ず指定する必要があります。 .Pp .Bl -tag -width "--concatenate" -compact .It Fl A .It Fl -catenate .It Fl "-concatenate" 指定された (tar アーカイブ形式の) ファイルを tar アーカイブの末尾 に追加します。(追加する前の古い end-of-archive ブロックは削除さ れます。) これは、指定されたファイルがアーカイブの中の 1 ファイルとなるので はなく、指定したファイルの中に含まれているファイルを、最初に指定 したアーカイブに追加するという効果を持ちます。 .Em 注: このオプションは tarfile を再書き込みする必要があるため、1/4 インチカートリッジテープでは動作しません。 .It Fl c .It Fl -create 新しいアーカイブを作成して (もしくは古い内容を切り捨てて)、指定 されたファイルをアーカイブに書き込みます。 .It Fl d .It Fl -diff .It Fl -compare アーカイブの中のファイルと、それに相当するファイルシステム内の ファイルとの違いを調査します。 .It Fl -delete 指定されたファイルをアーカイブから削除します。(1/4 インチテープ では動作しません。) .It Fl r .It Fl -append アーカイブの末尾にファイルを追加します。(1/4 インチテープでは 動作しません。) .It Fl t .It Fl -list アーカイブ内容のリスト表示をします。もし引数としてファイル名が 指定されていれば、そのファイルだけがリスト表示されます。そうでなけ れば、アーカイブに含まれるすべてのファイルリストが表示されます。 .It Fl u .It Fl -update 指定したファイルのうち、アーカイブ内のファイルよりもディスク上の ファイルの変更時刻が新しいものだけを追加します。1/4 インチテープ では動作しません。 .It Fl x .It Fl -extract .It Fl -get アーカイブからファイルを抽出します。可能ならば、所有者、 変更時刻、ファイル属性はリストアされます。もし .Ar file 引数が指定されていなければ、アーカイブ内の全ファイルが抽出されます。 もし .Ar filename 引数がテープ上のディレクトリ名にマッチしていれば、そのディレクトリと ディレクトリ内のファイルが抽出されます。(ディレクトリ内の すべてのディレクトリについても同様に抽出されます。) もしアーカイブ内に、相当する同じファイルが複数含まれていれば (上記の .Fl -append コマンドを参照)、最後に含まれているものが他のすべてのファイルを 上書きする形で抽出されます。 .Sh オプション .Nm の他のオプションは、組み合わせて使用することができます。 1 文字オプションは、コマンド単語の中で指定することができます。 引数を与えるべきオプションの場合、オプションに続けて引数を指定し ます。1 文字オプションであれば、これに続くコマンドライン引数を 使用します (以下の .Sx 使用例 を参照してください。) .Pp .Bl -tag -width "--preserve-permissions" -compact .It Fl -help .Nm のすべてのコマンドオプションについて一覧と解説を表示します。 .It Fl -atime-preserve テープに書かれている、ファイルのアクセス時刻をリストアします。 (inode の変更時刻が変更されることに注意してください!) .It Fl b .It Fl -block-size Ar number 読み書きするブロックサイズを .Ar number * 512-byte ブロック に設定します。 .It Fl B .It Fl -read-full-blocks 短い読みだしブロックを、完全なブロックに再組み立てします。 (4.2BSD パイプの読み込み用。) .It Fl C Ar directory .It Fl -directory Ar directory 残りの引数を処理する前に .Ar directory へ移動します。 .It Fl -checkpoint アーカイブを読み書きする間に読み書きしたバッファの数を表示します。 .It Fl f Ar [hostname:]file .It Fl -file Ar [hostname:]file 指定された .Ar file (デフォルトは /dev/rsa0) を読み書きします。 もし .Ar hostname が指定されていれば、 .Nm は .Xr rmt 8 を使って、リモートマシン上の .Ar file を読み書きします。"-" はファイル名として使用されることもありますが、 これは標準入力から読み出したり、標準出力へ書き出したりするために使用されます。 .It Fl -force-local コロンがある時でさえ、アーカイブファイルはローカルのものとします。 .It Fl F Ar file .It Fl -info-script Ar file .It Fl -new-volume-script Ar file それぞれのアーカイブが終ると、スクリプトを実行します (暗黙の .Fl M 指定が行なわれます。) .It Fl -fast-read ワイルドカードで指定されていないすべての抽出ターゲットが アーカイブ内に見つかったら、その時点で終了します。 .It Fl G .It Fl -incremental 古い GNU-format インクリメンタルバックアップファイルを作成/リスト/ 抽出します。 .It Fl g Ar file .It Fl -listed-incremental Ar file 新しい GNU-format インクリメンタルバックアップファイルを作成/リスト/ 抽出します。 .It Fl h .It Fl -dereference シンボリックリンクをシンボリックのまま書き込みません。シンボリックリンクが 指しているデータを書き込みます。 .It Fl i .It Fl -ignore-zeros アーカイブの中のゼロブロック (通常、End-Of-File を意味する) を無視します。 .It Fl -ignore-failed-read ファイルが読めなくても、非 0 のステータスで exit しません。 .It Fl k .It Fl -keep-old-files ディスク上に既にあるファイルを保持します。つまり、アーカイブから 抽出するファイルは、ディスク上のファイルへ上書きしません。 .It Fl K Ar file .It Fl -starting-file Ar file アーカイブの中の .Ar file から (抽出、リストなどを) 始めます。 .It Fl l .It Fl -one-file-system あるファイルシステム内にあるファイルだけでアーカイブを作成します。 (他ファイルシステムへのマウントポイントを跨ぎません。) .It Fl L Ar number .It Fl -tape-length Ar number .Ar number * 1024 バイト書き込んだ後でテープの交換を要求します。 .It Fl m .It Fl -modification-time ファイルの変更時刻を抽出しません。 .It Fl M .It Fl -multi-volume マルチボリュームアーカイブを作成/リスト/抽出します。 .It Fl n .It Fl -norecurse 作成時に再帰的にサブディレクトリを走査しません。 .It Fl -volno-file Ar file ボリューム番号付きのファイル名です。 .It Fl N Ar date .It Fl -after-date Ar date .It Fl -newer Ar date 作成時間が .Ar date より新しいファイルだけを抽出します。 .It Fl -newer-mtime Ar date 変更時間が .Ar date より新しいファイルだけを抽出します。 .It Fl o .It Fl -old-archive .It Fl -portability POSIX フォーマットではなく、V7 フォーマットのアーカイブを作成します。 .It Fl O .It Fl -to-stdout ファイルを標準出力に抽出します。 .It Fl p .It Fl -same-permissions .It Fl -preserve-permissions 保護情報を完全に抽出します。 .It Fl -preserve .Fl p s の指定と同じ効果を持ちます。 .It Fl P .It Fl -absolute-paths ファイル名から先頭の `/' をとりません。 .It Fl R .It Fl -record-number メッセージ中にアーカイブ内のレコード番号を埋め込み表示します。 .It Fl -remove-files アーカイブに追加したファイルを、追加後に削除します。 .It Fl s .It Fl -same-order .It Fl -preserve-order アーカイブ内から抽出するファイルを、指定された順のままにします。 .It Fl -show-omitted-dirs アーカイブ作成中に除外されたディレクトリを表示します。 .It Fl S .It Fl -sparse 「少ない」ファイルを効率的に扱うようにします。 .It Fl T Ar file .It Fl -files-from Ar file .Ar file から抽出もしくは作成するファイル名を得ます。(1 行 1 ファイル名。) .It Fl -null null で終わっている名前を考慮し、 .Fl T の振舞を変更します。 これは .Fl C 指定を無効にします。 .It Fl -totals .Fl -create によって書かれた総バイト数を表示します。 .It Fl v .It Fl -verbose .Fl -create でアーカイブに書くファイルや .Fl -extract でアーカイブから 取り出すファイル名をリスト表示します。 ファイルの保護情報をファイル名とともに表示させるには、 .Fl -list を使います。 .It Fl V Ar volume-name .It Fl -label Ar volume-name 指定された .Ar volume-name を持ったアーカイブを作成します。 .It Fl -version .Nm プログラムのバージョン番号を表示します。 .It Fl w .It Fl -interactive .It Fl -confirmation すべての動作に対して、確認を求めるようになります。 .It Fl W .It Fl -verify アーカイブを書き込んだ後、ベリファイを試みます。 .It Fl -exclude Ar pattern .Ar pattern にマッチするファイルを除外します。 (抽出しません。追加しません。リスト表示しません。) .It Fl X Ar file .It Fl -exclude-from Ar file .Ar file に一覧されているファイルを除外します。 .It Fl y .It Fl -bzip2 .It Fl -bunzip2 アーカイブを .Xr bzip2 1 でフィルタリングします。 .It Fl Z .It Fl -compress .It Fl -uncompress アーカイブを .Xr compress 1 でフィルタリングします。 .It Fl z .It Fl -gzip .It Fl -gunzip アーカイブを .Xr gzip 1 でフィルタリングします。 .It Fl -use-compress-program Ar program アーカイブを .Ar program でフィルタリングします。 (これは、 .Fl d が指定されたときは ``decompress'' を意味しなければなりません。) .It Fl -block-compress テープもしくはフロッピのために、圧縮プログラムの出力をブロック 化します。(そうしないと、ブロック長がおかしくなり、デバイスドライバは そのブロックを拒絶するでしょう。) .It Fl [0-7][lmh] テープドライブと密度を指定します。 .It Fl -unlink ファイルを作成する前に、いったん削除します。 .El .Sh 使用例 "bert" と "ernie" というファイルを含む、 ブロックサイズが 20 ブロックのアーカイブを、 テープドライブ /dev/rsa0 に作るには、 .Pp .Dl tar cfb /dev/rsa0 20 bert ernie .Pp もしくは .Pp .Dl tar\ --create\ --file\ /dev/rsa0\ --block-size\ 20\ bert\ ernie .Pp と入力します。 .Fl f および .Fl b フラグは両方とも引数を必要としていることに注意してください。 この引数は、コマンド単語に書かれているのと同じ順序でコマンドラインから 取得されます。 .Pp /dev/rsa0 はデフォルトのデバイスであり、20 はデフォルトのブロック サイズですので、上記の例は次のように単純化できます。 .Pp .Dl tar c bert ernie .Pp "backup.tar" というアーカイブから、すべての C ソース及びヘッダを 抽出するには、次のようにタイプします。 .Pp .Dl tar xf backup.tar '*.[ch]' .Pp シェルがカレントディレクトリ内のファイル名に展開しないよう、パターンを クォートしなければならないことに注意してください。(当然、 シェルはアーカイブ内のファイル一覧にアクセスすることはできません。) .Pp ファイルを階層構造ごとコピーするには、このようにコマンドを使用してください: .Bd -literal tar cf - -C srcdir . | tar xpf - -C destdir .Ed .Pp ディスケットに、gzip を使った圧縮アーカイブを作成するには、次の ようなコマンドラインを使うといいでしょう。 .Pp .Dl tar --block-compress -z -c -v -f /dev/rfd1a -b 36 tar/ .Pp まとめ指定フラグと -- スタイルのフラグを混在させることができない ことに注意してください。次のようにタイプしなければならないわけで はなく、上記のような書き方で 1 文字フラグを使うことができます。 .Pp -.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar -/ +.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar/ .Pp -上のようにして作成したディスクの内容は、次のようにすればリスト表 -示できます。 +上のようにして作成したディスクの内容は、次のようにすればリスト +表示できます。 .Pp .Dl tar tvfbz /dev/rfd1a 36 .Pp 2 つの tar アーカイブを 1 つのアーカイブにまとめるには、 .Pp .Dl tar Af archive1.tar archive2.tar .Pp を使います。こうすると、archive2.tar に含まれているファイルが archive1.tar の末尾に追加されます。(単純に .Pp .Dl cat archive2.tar >> archive1.tar .Pp とタイプしてもうまくいかないことに注意してください。なぜなら、 tar アーカイブの末尾には end-of-file ブロックがあるからです。) .Pp srcdir ディレクトリから 1997 年 2 月 9 日 13:00 以降に変更をされた 全てのファイルをアーカイブするためには、以下の形式を使って下さい。 .Dl tar\ -c\ -f\ backup.tar\ --newer-mtime\ 'Feb\ 9\ 13:15\ 1997'\ srcdir/ .Pp 他の時間指定形式としては、'02/09/97 13:15', \&'1997-02-09 13:15', '13:15 9 Feb 1997', '9 Feb 1997 13:15', \&'Feb. 9, 1997 1:15pm', '09-Feb', '3 weeks ago', 'May first Sunday' があります。 正しいタイムゾーンを指定するためには、 `13:15 CEST' や `13:15+200' を使用して下さい。 .Sh 環境変数 .Nm プログラムは、以下の環境変数を参照します。 .Bl -tag -width "POSIXLY_CORRECT" .It POSIXLY_CORRECT 通常、 .Nm はファイル指定の中に混ざったフラグを処理します。 この環境変数を設定すると、 .Nm は最初のフラグ以外の引数を見つける とそれ以降の引数に対してフラグ処理を行なわないという、POSIX 仕様 に合わせた動作を行なうようになります。 .It SHELL インタラクティブモードにおいて、サブシェルの起動が要求されたとき、 SHELL 変数が設定されていればそれが、設定されていなければ "/bin/sh" が使用されます。 .It TAPE tar のデフォルトのテープドライブを変更します。(これは、さらに .Fl f フラグによって変更することができます。) .El .Sh 関連ファイル .Bl -tag -width "/dev/rsa0" .It Pa /dev/rsa0 デフォルトのテープドライブ .El .\" This next request is for sections 1, 6, 7 & 8 only .\" (command return values (to shell) and fprintf/stderr type diagnostics) .\" .Sh 診断 .Sh 関連項目 .Xr bzip2 1 , .Xr compress 1 , .Xr gzip 1 , .Xr pax 1 , .Xr ft 8 , .Xr rmt 8 .\" .Sh 規格 .Sh 歴史 .Nm フォーマットは立派な歴史を持っていて、Sixth Edition UNIX に 原点があります。 この .Nm の実装は GNU 実装であり、John Gilmore によって書かれた パブリックドメイン tar が元になっています。 .Sh 作者 次の人を含む、大変多くの人々。[ソースの中の ChangeLog ファイルに記 述されている人々] .An John Gilmore (オリジナルのパブリックドメイン版の作者), .An Jay Fenlason (最初の GNU 作者), .An Joy Kendall , .An Jim Kingdon , .An David J. MacKenzie , .An Michael I Bushnell , .An Noah Friedman そして バグフィックスや追加を貢献してくれた無数の人々。 このマニュアルページは NetBSD 1.0 release から、 .Bx Free グループが 取り込んだものです。 .Sh バグ 特徴的な .Fl C オプションの動作は、伝統的な tar プログラムのそれとは異なるので、 あまり頼りにはできません。 .Pp .Fl A コマンドで任意の数の tar アーカイブを結合できればいいのですが、 それはできません。これをやろうとしても、 2 つ目以降のアーカイブの end-of-archive ブロックが削除されずに残ってしまいます。 diff --git a/ja_JP.eucJP/man/man1/lastcomm.1 b/ja_JP.eucJP/man/man1/lastcomm.1 index 4fb6bb8b97..04f98fd535 100644 --- a/ja_JP.eucJP/man/man1/lastcomm.1 +++ b/ja_JP.eucJP/man/man1/lastcomm.1 @@ -1,172 +1,161 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" From: @(#)lastcomm.1 8.1 (Berkeley) 6/6/93 .\" %Id: lastcomm.1,v 1.6 1997/07/21 12:01:45 charnier Exp % .\" jpman %Id: lastcomm.1,v 1.2 1997/03/29 06:18:35 horikawa Stab % .\" .Dd September 18, 1996 .Dt LASTCOMM 1 .Os BSD 3 .Sh 名称 .Nm lastcomm .Nd 過去に実行されたコマンドの情報を逆順に表示する .Sh 書式 .Nm .Op Fl EScesu .Op Fl f Ar file .Op Ar command ... .Op Ar user ... .Op Ar terminal ... .Sh 解説 .Nm は、以前に実行されたコマンドの情報を表示します。引数が ないときは、現在のアカウント情報ファイルが存在している間に実行されたすべて のコマンドの記録を表示します。 .Pp -.\" この部分原文にはありませんが、正しいことを確認しています。 -.\" Kazuo HORIKAWA -このコマンドを使用するには、あらかじめ -.Xr accton 8 -で、アカウント -情報ファイルを設定しておく必要があります。このファイルはデフォルトでは、 -.Pa /var/account/acct -ですが、存在しない場合にはあらかじめrootで -touch /var/account/acctとしておいてから、accton /var/account/acct -を実行しなければなりません(通常 /etc/rc で起動されます)。 -.Pp 以下のオプションを使用可能です: .Bl -tag -width XXfXfileX -compact .Pp .It Fl E プロセスが終了した時刻を表示します。 .It Fl S プロセスが開始した時刻を表示します。 .It Fl c プロセスが使用した CPU 時間を表示します。 .It Fl e プロセスが経過した時間を表示します。 .It Fl s プロセスが使用したシステム時間を表示します。 .It Fl u プロセスが使用したユーザ時間を表示します。 .It Fl f Ar file デフォルトの .Pa /var/account/acct のかわりに .Ar file を読み 込みます。 .El .Pp オプションが指定されない場合には .Fl cS が仮定されます。 .Nm が引数付きで呼ばれたときは、引数で与えられた .Ar command , .Ar user , .Ar terminal にマッチする情報を表示します。 たとえば: .Pp .Dl lastcomm a.out root ttyd0 .Pp では、 .Pa a.out というコマンド名か、 .Ar root というユーザか、 .Ar ttyd0 というターミナルで実行されたコマンド全てのリストが出力されます。 .Pp 表示される情報は、次のようなものです。 .Pp .Bl -bullet -offset indent -compact .It ユーザが実行したプロセスの名前 .It システムのアカウント機能によってつけられるフラグ .It コマンドを実行したユーザ名 .It コマンドを実行した端末名 .It プロセスが使用した CPU .Pq Fl c または実 .Pq Fl e またはシステム .Pq Fl s またはユーザ .Pq Fl u -時間の合計(秒) +時間の合計 (秒) .It プロセスが開始 .Pq Fl S または終了 .Pq Fl E した時刻 .El .Pp フラグには次のようなものがあります: ``S'' -コマンドはスーパーユーザーによって実行されました。 +コマンドはスーパーユーザによって実行されました。 ``F'' コマンドが .Xr fork 2 を行いましたが、その後、 .Xr exec 3 を行っていません。 .\" ``C'' .\" コマンドがPDP-11互換モードで実行されました (これはVAXでのみ有効です)。 ``D'' コマンドが .Pa core ファイルを生成して終了しました。 ``X'' コマンドがシグナルで終了しました。 .Pp .Sh 関連ファイル .Bl -tag -width /var/account/acct -compact .It Pa /var/account/acct デフォルトのアカウント情報ファイル .El .Sh 関連項目 .Xr last 1 , .Xr sigvec 2 , .Xr acct 5 , .Xr core 5 .Sh 歴史 .Nm コマンドは .Bx 3.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/login.1 b/ja_JP.eucJP/man/man1/login.1 index b1cfb43adf..6bc248f021 100644 --- a/ja_JP.eucJP/man/man1/login.1 +++ b/ja_JP.eucJP/man/man1/login.1 @@ -1,192 +1,192 @@ .\" %NetBSD: login.1,v 1.5 1994/12/23 06:53:00 jtc Exp % .\" .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)login.1 8.2 (Berkeley) 5/5/94 .\" %Id: login.1,v 1.13 1999/01/11 09:07:42 asami Exp % .\" jpman %Id: login.1,v 1.3 1997/05/19 16:39:53 horikawa Stab % .\" .Dd May 5, 1994 .Dt LOGIN 1 .Os BSD 4 .Sh 名称 .Nm login .Nd 指定したユーザでログインする .Sh 書式 .Nm .Op Fl fp .Op Fl h Ar hostname .Op Ar user .Sh 解説 .Nm は、指定したユーザでログインするものです。 .Pp user を指定しなかった場合、もしくは指定した user でのログインに失敗した ときには、 .Nm は、再度ユーザ名の入力を求めるプロンプトを表示します。 ユーザの確認は入力されたパスワードにより行われます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl f パスワードによるユーザの確認を省略します。このオプションは、スーパーユーザ か、すでにログインしているユーザが同じユーザ名で login を実行す るときのみ指定可能です。 .It Fl h コネクションを受信可能なホスト名を指定します。この機能は .Xr telnetd 8 などのデーモンによって使われています。このオプションはスーパーユーザ しか指定することができません。 .It Fl p .Nm は、デフォルトでは実行時の環境 (環境変数など) を引き継ぎ ませんが、このオプションを指定すると、実行時の環境を引き継ぎます。 .El .Pp もし .Pa /var/run/nologin ファイルが存在した場合、 .Nm はそのファイル内容 を表示してログイン処理をせずに終了します。この機能は .Xr shutdown 8 で使用されており、システムの終了処理実行中にユーザがログインしないよう にしています。 .Pp もし .Pa /etc/login.access ファイルが存在した場合、 .Nm はそのファイルから、ユーザとホストの組が特別に許可されている、もしくは 拒否されているかどうかをチェックします。 .Pp もし .Pa /etc/fbtab ファイルが存在した場合、 .Nm はそのファイルに記述された幾つかのデバイスのプロテクトと所有者を変えます。 .Pp ファイル .Pa /etc/skeykeys が存在する場合、このファイル中にユーザのエントリが存在する時には、 .Nm は S/key パスワード認証を行います。 .Pa /etc/skey.access により、 接続元のホストやネットワークに応じて S/key パスワード使用の義務を制御します。 .Pp 通常、ユーザがログインすると、 .Nm はシステムのコピーライト表示、 ユーザが最後にログインした日付と時間、その日のメッセージなどの 情報を表示します。ただし、ユーザのホームディレクトリに .Dq Pa .hushlogin というファイルが存在した場合は、これらのメッセージを表示 しないようにします (これは .Xr uucp 1 のようなプログラムがユーザとしてログインするためにあります)。 このあと、 .Nm は .Xr wtmp 5 と .Xr utmp 5 ファイルに記録し、ユーザのコマンドインタプリタ (シェル) を起動します。 .Pp なお、環境変数 ( .Xr environ 7 ) HOME, SHELL, PATH, TERM, LOGNAME, USER は .Nm によりセットされます。 他の環境変数はログインクラスケーパビリティデータベースの エントリにより設定されるかも知れません。 ログインクラスはユーザのシステムパスワードレコードに割り当てられています。 ログインクラスは、当該ログインに許された最大および現在の資源制約、 プロセス優先度や他の多くのユーザログイン環境を制御します。 .Pp 標準シェルである .Xr csh 1 と .Xr sh 1 は、 .Nm が実行されてから起動します。 .Sh 関連ファイル .Bl -tag -width /var/mail/userXXX -compact .It Pa /etc/fbtab デバイスのプロテクトの変更 .It Pa /etc/login.access ログインアクセス制御表 .It Pa /etc/login.conf ログインクラスケーパビリティデータベース .It Pa /etc/motd ログイン時に最初に表示するメッセージ .It Pa /var/run/nologin ログインを拒否する時に表示するメッセージ .It Pa /etc/skey.access skey パスワード制御表 .It Pa /etc/skeykeys skey パスワードデータベース .It Pa /var/run/utmp 現在のログイン状況 .It Pa /var/log/lastlog 最後にログインした記録 last login account records .It Pa /var/log/wtmp ログイン・ログアウト状況 .It Pa /var/mail/user -ユーザーごとのメイルボックス +ユーザごとのメイルボックス .It Pa \&.hushlogin ログインメッセージを抑止するファイル .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr chpass 1 , .Xr passwd 1 , .Xr rlogin 1 , .Xr skey 1 , .Xr getpass 3 , .Xr fbtab 5 , .Xr login.access 5 , .Xr login.conf 5 , .Xr skey.access 5 , .Xr utmp 5 , .Xr environ 7 , .Xr nologin 8 , .Xr pam 8 .Sh 歴史 .Nm login ユーティリティは .At v6 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/lpr.1 b/ja_JP.eucJP/man/man1/lpr.1 index 05f9888d6b..0a4518f51e 100644 --- a/ja_JP.eucJP/man/man1/lpr.1 +++ b/ja_JP.eucJP/man/man1/lpr.1 @@ -1,242 +1,242 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)lpr.1 8.1 (Berkeley) 6/6/93 .\" %Id: lpr.1,v 1.8 1997/09/24 06:48:07 charnier Exp % .\" jpman %Id: lpr.1,v 1.3 1997/08/11 14:28:54 horikawa Stab % .\" .Dd June 6, 1993 .Dt LPR 1 .Os BSD 4 .Sh 名称 .Nm lpr .Nd 印刷ジョブを生成し、キューに登録する .Sh 書式 .Nm lpr .Op Fl P Ns Ar printer .Op Fl \&# Ns Ar num .Op Fl C Ar class .Op Fl J Ar job .Op Fl T Ar title .Op Fl U Ar user .Op Fl i Ar numcols .Op Fl 1234 Ar font .Op Fl w Ns Ar num .Op Fl cdfghlnmprstv .Op Ar name ... .Sh 解説 .Nm lpr は、プリンタが利用可能になったときにファイルをプリント アウトするためにスプーリングデーモンを利用します。 もしファイル名が指定されないようなら、標準入力から読みます。 .Pp 以下の単一文字のオプションは、ファイルが通常のテキストファイルでないこ -とをラインプリンタのスプールデーモンに教えるためのものです。スプールデー -モンはそのデータを適切に出力するために、データにふさわしいフィルタを使 -うようになります。 +とをラインプリンタのスプールデーモンに教えるためのものです。 +スプールデーモンはそのデータを適切に出力するために、 +データにふさわしいフィルタを使うようになります。 .Bl -tag -width indent .It Fl c ファイルが .Xr cifplot 1 で作成されたデータを含んでいるものとみなします。 .It Fl d ファイルが .Tn TeX の .Tn DVI フォーマットであるとみなします。 .It Fl f 各行の最初の文字を、標準的な FORTRAN のキャリッジコントロール キャラクタとして処理するフィルタを使うようになります。 .It Fl g ファイルが .Xr plot ルーチンで作成された 標準的な plot データであるとみなします。 .It Fl l コントロールキャラクタを通し、ページの区切りを抑制するフィルタを利用します。 .It Fl n ファイルが .Em ditroff -(デバイスに依存しないtroff) からのデータであるとみなします。 +(デバイスに依存しない troff) からのデータであるとみなします。 .It Fl p ファイルの整形に .Xr pr 1 を利用します。 .It Fl t -ファイルが(写植印字コマンドである) +ファイルが (写植印字コマンドである) .Xr troff 1 からのデータであるとみなします。 .It Fl v -ファイルが Benson Varian のようなデバイスのためのラスターイメージを +ファイルが Benson Varian のようなデバイスのためのラスタイメージを 含むものとみなします。 .El .Pp 以下のオプションは、プリントジョブを操作するときに適用します: .Bl -tag -width indent .It Fl P 指定したプリンタに出力します。これを指定しない通常の場合は、 -デフォルトプリンタが使われる (これはサイトごとに依存します)か、 +デフォルトプリンタが使われる (これはサイトごとに依存します) か、 環境変数 .Ev PRINTER の値が使われます。 .It Fl h バーストページを出力しないようにします。 .It Fl m 終了時にメールを送ってきます。 .It Fl r スプーリングの終了時にファイルを削除します。 .Fl s オプション使用時には出力の終了時に削除します。 .It Fl s -シンボリックリンクを利用します。通常、ファイルはスプールディ -レクトリにコピーされますが、大きなファイルをコピーするよりは +シンボリックリンクを利用します。通常、ファイルはスプールディレクトリに +コピーされますが、大きなファイルをコピーするよりは .Fl s オプションで .Xr symlink 2 -を使ってデータファイルにリンクを張ったほうがよ -いでしょう。つまり、これはファイルのプリントアウトが完了するまではファ -イルに変更を加えたり、削除したりするべきではないということを意味します。 +を使ってデータファイルにリンクを張ったほうがよいでしょう。 +つまり、これはファイルのプリントアウトが完了するまでは +ファイルに変更を加えたり、削除したりするべきではないということを意味します。 .El .Pp 残りのオプションはコピーを行ったり、ページの表示やヘッダの表示を行います: .Bl -tag -width indent .It Fl \&# Ns Ar num .Ar num は、各ファイルのコピーの枚数です。例えば、 .Bd -literal -offset indent lpr \-#3 foo.c bar.c more.c .Ed -は、foo.cのコピーを3回行った後、bar.cのコピーを3回行います。一方、 +は、foo.c のコピーを 3 回行った後、bar.c のコピーを 3 回行います。一方、 .Bd -literal -offset indent cat foo.c bar.c more.c \&| lpr \-#3 .Ed .Pp -は、連結されたファイルのコピーを3回行います。 +は、連結されたファイルのコピーを 3 回行います。 この機能を禁止してコピー機の使用を推奨しているサイトがあるかもしれません。 .It Xo .Fl Ns Oo Cm 1234 Oc Ar font .Xc フォントポジション .Ar i のフォントを指定します。デーモンはフォントのパス名を参照する .Li .railmag ファイルを作成します。 .It Fl C Ar class バーストページで使うジョブ見出しです。例えば、 .Bd -literal -offset indent lpr \-C EECS foo.c .Ed .Pp -は、バーストページのシステム名( +は、バーストページのシステム名 ( .Xr hostname 1 -で返される)を EECS に置き換えて、foo.c をプリントします。 +で返される) を EECS に置き換えて、foo.c をプリントします。 .It Fl J Ar job バーストページに書くジョブ名です。通常は、 一番最初のファイルの名前が使われます。 .It Fl T Ar title .Xr pr 1 のタイトル名に、ファイル名のかわりにこのタイトルを使います。 .It Fl U Ar user -バーストページで使うユーザー名であり、課金目的でも利用されます。 -このオプションは実ユーザidがデーモン(あるいはデーモンの代わりに -printcap中で指定されているユーザ)のみ使用できます。 +バーストページで使うユーザ名であり、課金目的でも利用されます。 +このオプションは実ユーザ id が daemon (あるいは daemon の代わりに +printcap 中で指定されているユーザ) のみ使用できます。 .It Fl i numcols 出力が .Pq Ar numcols でインデントされます。 .It Fl w Ns Ar num .Xr pr 1 のページ幅を .Ar num にします。 .El .Sh 環境変数 以下の環境変数が存在すると、 .Nm lpr が使用します: .Bl -tag -width PRINTER .It Ev PRINTER かわりのデフォルトプリンタを指定する .El .Sh 関連ファイル .Bl -tag -width /var/spool/output/*/tf* -compact .It Pa /etc/passwd 個人の識別を行うためのファイル .It Pa /etc/printcap プリンタの特徴を記述したデータベース .It Pa /usr/sbin/lpd ラインプリンタデーモン .It Pa /var/spool/output/* スプーリングのために利用するディレクトリ .It Pa /var/spool/output/*/cf* デーモンの制御のためのファイル .It Pa /var/spool/output/*/df* ``cf'' ファイルが指定するデータファイル .It Pa /var/spool/output/*/tf* ``cf'' ファイルの一時的なコピー .El .Sh 関連項目 .Xr lpq 1 , .Xr lprm 1 , .Xr pr 1 , .Xr symlink 2 , .Xr printcap 5 , .Xr lpc 8 , .Xr lpd 8 .Sh 歴史 .Nm コマンドは .Bx 3 から登場しました。 .Sh 診断 もしとても大きいファイルをスプールしようとするなら、途中で切れてしまう でしょう。 .Nm はバイナリファイルを印刷することを目的としています. -もしルート以外のあるユーザーがファイルを印刷しようとしてスプールに +もし root 以外のあるユーザがファイルを印刷しようとしてスプールに 失敗したら、 .Nm はその旨のメッセージを印刷してそのファイルは印刷されません。 もしローカルマシンの .Xr lpd 8 との接続ができなければ、 .Nm はデーモンを起動できなかったと言うでしょう。その結果は .Xr lpd 8 によってファイルのスプールに失敗したとデーモンのログファイルに 残されるでしょう。 .Sh バグ .Xr troff 1 と .Xr tex のフォントは,プリンタがつながっているホストにないといけません。 これは,現在はローカルのフォントライブラリを使うことができないことを 意味します。 diff --git a/ja_JP.eucJP/man/man1/passwd.1 b/ja_JP.eucJP/man/man1/passwd.1 index 4015bb4a31..c34d592073 100644 --- a/ja_JP.eucJP/man/man1/passwd.1 +++ b/ja_JP.eucJP/man/man1/passwd.1 @@ -1,208 +1,208 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)passwd.1 8.1 (Berkeley) 6/6/93 .\" %Id: passwd.1,v 1.11 1998/11/30 22:41:58 billf Exp % .\" jpman %Id: passwd.1,v 1.4 1997/07/21 09:41:51 konuma Stab % .\" .Dd June 6, 1993 .Dt PASSWD 1 .Os BSD 4 .Sh 名称 .Nm passwd, yppasswd .Nd ユーザのパスワードを変更する .Sh 書式 .Nm passwd .Op Fl l .Op Ar user .Nm yppasswd .Op Fl l .Op Fl y .Op Fl d Ar domain .Op Fl h Ar host .Op Fl o .Sh 解説 .Nm passwd は、ユーザの local, Kerberos, NIS パスワードを変更します。 パスワードの変更にあたっては、最初に、現在のパスワードの入力を求 められます。現在のパスワードが正しく入力されたら、新しいパスワードの入 力を求められます。新しいパスワードは、タイプミスを避けるため、2 回入力しな ければなりません。 .Pp 新しいパスワードは、少なくとも 6 文字以上 (ユーザのログインクラスに対する .Xr login.conf 5 の "minpasswordlen" 設定が優先します) で、アルファベットだけにならな いようにすべきです。パスワードの最大文字数は、 .Dv _PASSWORD_LEN (現在は128文字) より短くなければなりません。 数字、アルファベットの大文字、メタキャラクタの使用を推奨します。 .Pp 新しいパスワードが確認されたら .Nm passwd は新しいパスワードを Kerberos 認証ホストに伝えます。 .Bl -tag -width flag .It Fl l Kerberosデータベースではなく、 ローカルマシンのパスワードだけを変更します。 ローカルマシンのパスワードだけを変更する場合は、 .Xr pwd_mkdb 8 がパスワードデータベースの更新に使われます。 .Pp .El ローカルまたは NIS パスワードを変更する場合、 ユーザのログインクラスの "passwordperiod" ケーパビリティに基づき、 次にパスワードを変更すべき日付が設定されます。 .Pp 別のユーザの Kerberos パスワードを変更するには、 .Xr kinit 1 を実行してから、 .Xr passwd 1 を実行する必要があります。 スーパユーザがローカルマシンのパスワードを修正するときにかぎり、現在の パスワードの入力は不要です。 .Sh NIS との相互作用 .Nm passwd は NIS のサポートが組み込まれています。 もしユーザ名が NIS のパスワードデータベースの中にあり、 ローカルにはない場合、 .Nm passwd は自動的に ``yppasswd'' に切り替わります。 指定されたユーザ名がローカルのパスワードデータベースにも、 NIS のパスワードマップにも存在しない場合、 .Nm passwd はエラーを返します。 .Pp -NIS のパスワードを変更するとき、非特権ユーザーは +NIS のパスワードを変更するとき、非特権ユーザは 確認のために現在のパスワードの入力を求められます ( .Xr rpc.yppasswdd 8 デーモンはいかなる変更でも NIS パスワードマップに加える前に 現在のパスワードの入力を求めます)。 この制限はスーパユーザにも適用されますが、大きな例外があります。 NIS マスタサーバのスーパユーザはパスワードの確認が省略されるの です。 したがって、NIS マスタサーバのスーパユーザは、すべてのユーザの NIS パスワードを無制限に変更できます。 しかし、NIS クライアントや NIS スレーブサーバのスーパユーザは 変更にパスワードが必要です。 .Pp 以下のオプションは NIS のためのものです: .Bl -tag -width flag .It Fl y .Nm passwd は強制的に NIS 用になります。 .It Fl l NIS が有効な場合に .Nm passwd を強制的にローカル用にします。 このフラグは同じログイン名で NIS のユーザと ローカルなユーザが存在するときに、ローカルユーザの パスワードエントリを変更するために使われます。 例えば、システム用の .Pa bin や .Pa daemon といったエントリは NIS パスワードマップとローカルユーザデータベース の両方に存在することが、よくあります。 この場合デフォルトでは .Nm passwd は NIS のパスワードを変更しようとします。 NIS ではなくローカルの パスワードを変更するとき .Fl l を使います。 .It Fl d Ar domain NIS パスワードを変更するとき、ドメイン名を指定します。デフォルトで .Nm passwd は、システムのデフォルトドメイン名を使います。このフラグは主に NIS マスタサーバのスーパユーザが使用するものです。一つの NIS マスタサーバが複数のドメインを扱っている場合や、NIS マスタサーバでは ドメイン名が設定されていない (NIS サーバーは必ずしもクライアントになる 必要はありません) 場合に、 .Nm passwd コマンドがどのドメインを扱うのかを指定する必要があります。 .It Fl s Ar host NIS サーバの名前を指定します。このオプションを .Fl d オプションと共に用いることで、非ローカルな NIS サーバ上の NIS パスワードを変えることが出来ます。 .Fl d オプションでドメイン名を指定し、 NIS マスタサーバの名前が決定できな い (おそらく、ローカルのドメイン名が設定されていないため) ときには、 NIS マスタサーバは、 ``localhost'' であると仮定されます。 このサーバ名を .Fl s で指定することが出来ます。指定するホスト名は NIS マスタサーバ でなくても構いません。 NIS マスターサーバー名はドメイン内の NIS (マスタもしくはスレーブ) サーバに問い合わせることで決定される ので、スレーブサーバを指定しても構いません。 .Pp .It Fl o NIS マスタサーバにおいて、スーパユーザの確認を省略しません。 \'old' モードにします。このフラグはあまり実用的ではありませんが、 パスワードのテストに使うことが出来ます。 .El .Sh 関連ファイル .Bl -tag -width /etc/master.passwd -compact .It Pa /etc/master.passwd パスワードのマスタファイル .It Pa /etc/passwd Version 7 形式のパスワードファイル .It Pa /etc/passwd.XXXXXX パスワード変更時に作られるテンポラリファイル .It Pa /etc/login.conf ログインクラスケーパビリティデータベース .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr chpass 1 , .Xr kerberos 1 , .Xr kinit 1 , .Xr login 1 , .Xr login.conf 5 , .Xr passwd 5 , .Xr kpasswdd 8 , .Xr pwd_mkdb 8 , .Xr vipw 8 .Rs .%A Robert Morris .%A Ken Thompson .%T "UNIX password security" .Re .Sh 注釈 .Xr yppasswd 1 は実際には .Nm passwd へのリンクです。 .Sh 歴史 .Nm passwd コマンドは .At v6 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/rcp.1 b/ja_JP.eucJP/man/man1/rcp.1 index caf1df1715..cf91b91b88 100644 --- a/ja_JP.eucJP/man/man1/rcp.1 +++ b/ja_JP.eucJP/man/man1/rcp.1 @@ -1,150 +1,151 @@ .\" Copyright (c) 1983, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rcp.1 8.1 (Berkeley) 5/31/93 .\" %Id: rcp.1,v 1.7 1998/10/09 06:31:45 markm Exp % .\" jpman %Id: rcp.1,v 1.2 1997/05/20 01:30:55 mutoh Stab % .\" .Dd May 31, 1993 .Dt RCP 1 .Os BSD 4.3r .Sh 名称 .Nm rcp .Nd リモートファイルのコピー .Sh 書式 .Nm rcp .Op Fl Kpx .Op Fl k Ar realm .Ar file1 file2 .Nm rcp .Op Fl Kprx .Op Fl k Ar realm .Ar file ... .Ar directory .Sh 解説 .Nm は、ネットワークでつながれた複数のマシンの間でコピーをするプログラムです。 .Ar file および .Ar directory として ``rname@rhost:path'' の形式で指定する ことにより、それがリモートマシン上のファイルであるとみなされます。 ファイル指定に ``:'' が含まれていないか、含まれていても``/''のあとにある 場合は、ローカルマシンのファイルとみなされます。 .Pp 次のオプションを利用可能です: .Bl -tag -width flag .It Fl K 全ての Kerberos による認証を無効にします。 .It Fl k .Xr krb_realmofhost 3 で決定されるリモートホストの realm のかわりに、 .Ar realm で指定したリモートホストの チケットを得るようにします。 .It Fl p .Ar umask を無視し、転送元のファイルの修正日付とアクセスモードを維持したままコピー します。デフォルトでは、転送先に同じファイル名のファイルがすでに 存在していれば、そのファイルのモードと所有者が引き継がれ、もしファイルが 存在していなければ、転送元のファイルのモードに転送先のマシンで使われている .Xr umask 2 のマスクを施したアクセスモードになります。 .It Fl r 転送元としてディレクトリが指定された場合、ディレクトリ下の各ファイルも 再帰的にコピーします。この場合、転送先にはディレクトリを指定しなければ なりません。 .It Fl x .Nm で送るすべてのデータを .Tn DES 暗号化します。これによりレスポンスタイムと .Tn CPU の利用率に影響が生じますが、セキュリティは向上します。 .El .Pp .Ar file がフルパスでなかった場合は、リモートマシン .Ar rhost 上のユーザ .Ar ruser のログインディレクトリ -(リモートユーザー名が指定されていなければ、現在のユーザー名の -ログインディレクトリ)からの相対パスと解釈します。 +(リモートユーザ名が指定されていなければ、現在のユーザ名の +ログインディレクトリ) からの相対パスと解釈します。 リモートマシン上のファイル指定にワイルドカードなどのメタキャラクタを 含める場合は、ローカルマシンのシェルによりワイルドカードが 展開されないよう \e、" または \(aa でクォートする必要があります。 .Pp .Nm では .Xr rsh 1 -を使用するため同様のユーザーの認証が必要とされ、パスワードを要求する +を使用するため同様のユーザの認証が必要とされ、パスワードを要求する プロンプトを出しません。 .Pp .Nm -では転送元、転送先ともにリモートマシンを指定し、第3者によるリモートマシン間での +では転送元、転送先ともにリモートマシンを指定し、 +第三者によるリモートマシン間での ファイルのコピーを行うこともできます。 .Sh 関連ファイル .Bl -tag -width /etc/auth.conf -compact .It Pa /etc/auth.conf 認証サービスの設定 .El .Sh 関連項目 .Xr cp 1 , .Xr ftp 1 , .Xr rlogin 1 , .Xr rsh 1 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 このバージョンの .Nm は、 .Bx 4.3 Reno -において Kerberos を組み込んで再インプリメントされました。 +において Kerberos を組み込んで再実装されました。 .Sh バグ ディレクトリが指定されるべき場所にファイルが指定されている場合を検出で きるとは限りません。 .Pp リモートホストの .Pa \&.login , .Pa \&.profile または .Pa \&.cshrc 内のコマンドの出力によって混乱することがあります。 .Pp 転送先のマシンにバージョン .Bx 4.2 の .Nm -が動作している場合、``rhost.rname''のように転送先のユーザー名とホスト +が動作している場合、``rhost.rname''のように転送先のユーザ名とホスト 名を指定しなければなりません。 diff --git a/ja_JP.eucJP/man/man1/stty.1 b/ja_JP.eucJP/man/man1/stty.1 index e28e3f8c61..afd7c37546 100644 --- a/ja_JP.eucJP/man/man1/stty.1 +++ b/ja_JP.eucJP/man/man1/stty.1 @@ -1,530 +1,531 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)stty.1 8.4 (Berkeley) 4/18/94 .\" %Id: stty.1,v 1.10 1998/06/03 04:07:59 jkoshy Exp % .\" jpman %Id: stty.1,v 1.2 1997/06/05 04:05:59 yugawa Stab % .\" .Dd April 18, 1994 .Dt STTY 1 .Os .Sh 名称 .Nm stty .Nd 端末の設定を行なう .Sh 書式 .Nm stty .Op Fl a | Fl e | Fl g .Op Fl f Ar file .Op operands .Sh 解説 .Nm は、標準入力になっているデバイスの端末属性を設定もしくは表示する プログラムです。オプションや引数を指定しなかった場合、 設定されている属性の一部や、デフォルト値と違う値が設定されている属性 を表示します。 指定した場合は、指定された引数に従って端末の状態を変更します。 ターミナルの種類によっては相互に排他的な引数の組み合わせもあります。 .Pp オプションとしては以下のものがあります。 .Bl -tag -width indent .It Fl a .St -p1003.2 に規定された形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl e .Tn BSD の伝統的な ``all'' や ``everything'' の形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl f 標準入力ではなく、 .Ar file で指定された端末を使います。 このファイルは .Fn open 関数に .Dv O_NONBLOCK フラグを付けてオープンされるので、端末の設定や表示をブロックされず に行なうことができます。 .It Fl g 端末変更後に端末の状態を復帰させられるように、 .Nm の引数として指定できる形式で、現在の端末属性を標準出力に 出力します。 この形式は .St -p1003.2 に規定されています。 .El .Pp 端末属性の設定には、以下の引数が使えます。 .Ss 制御モード: .Pp 制御モードのフラグは端末と関連するハードウェアの属性 に影響します。これは termios 構造体の c_cflag に相当します。 .Bl -tag -width Fl .It Cm parenb Pq Fl parenb パリティ生成および検出を有効 (無効) にします。 .It Cm parodd Pq Fl parodd 奇数パリティ (偶数パリティ) にします。 .It Cm cs5 cs6 cs7 cs8 可能なら 1 文字のビット幅を設定します。 .It Ar number 可能なら、端末のボーレートを .Ar number に設定します。0 を指定した場合は、モデムの制御を切ります。 .It Cm ispeed Ar number 可能なら、入力のボーレートを .Ar number に設定します。0 を設定した場合は、出力のボーレートと同じ値に設定されます。 .It Cm ospeed Ar number 可能なら、出力のボーレートを .Ar number に設定します。0 を設定した場合は、モデムの制御を切ります。 .It Cm speed Ar number .Cm ispeed と .Cm ospeed の両方を .Ar number に設定します。 .It Cm hupcl Pq Fl hupcl そのデバイスをオープンしているプロセスがクローズ処理を行ったとき、ほか にこのデバイスをオープンしているプロセスがなければ、モデムの制御機能に より切断処理を行います (行いません)。 .It Cm hup Pq Fl hup hupcl .Pq Fl hupcl と同じです。 .It Cm cstopb Pq Fl cstopb -ストップビットを 2ビット (1ビット) にします。 +ストップビットを 2 ビット (1 ビット) にします。 .It Cm cread Pq Fl cread 受話器を有効 (無効) にします。 .It Cm clocal Pq Fl clocal 回線に対してモデム制御が不要である (必要である) とみなします。 .It Cm crtscts Pq Fl crtscts RTS/CTS フロー制御を有効 (無効) にします。 .El .Ss 入力モード: これは termios 構造体の c_iflag に相当します。 .Bl -tag -width Fl .It Cm ignbrk Pq Fl ignbrk 入力のブレーク信号を無視します (無視しません)。 .It Cm brkint Pq Fl brkint ブレークを受信したとき、シグナル .Dv INTR を出します (出しません)。 .It Cm ignpar Pq Fl ignpar パリティエラーを無視します (無視しません)。 .It Cm parmrk Pq Fl parmrk パリティエラーをマークします (マークしません)。 .It Cm inpck Pq Fl inpck 入力のパリティチェックを有効 (無効) にします。 .It Cm istrip Pq Fl istrip 入力した文字の 8 ビット目を捨てて 7 ビットにします (8 ビット目 を捨てません)。 .It Cm inlcr Pq Fl inlcr 入力の .Dv NL を .Dv CR に変換します (変換しません)。 .It Cm igncr Pq Fl igncr 入力の .Dv CR を無視します (無視しません)。 .It Cm icrnl Pq Fl icrnl 入力の .Dv CR を .Dv NL に変換します (変換しません)。 .It Cm ixon Pq Fl ixon 制御コードの .Dv START/STOP を使った出力フロー制御を有効 (無効) にします。 システムから端末への出力において、システムが .Dv STOP を受信したら出力を中断し、 .Dv START を受信するか、 .Cm ixany が設定されている場合は何らかの文字を受信すると、 出力を再開するようになります。 .It Cm ixoff Pq Fl ixoff システムの入力キューが 空/満杯に近づいたら、それぞれ .Dv START/STOP を出力するようにします (近づいても、出力しません)。 .It Cm ixany Pq Fl ixany どんな文字が来ても ( .Dv START が来た場合のみ) 出力を再開します。 .It Cm imaxbel Pq Fl imaxbel システムによって入力キューの .Dv MAX_INPUT (一般的には 255) の最大文字数が規定されており、 .Cm imaxbel がセットされていると、入力キューの制限を越えた入力に対して ASCII BEL キャラクタを出力キューに送ります (端末が鳴ります)。 .Cm imaxbel がセットされていなくて入力キューが一杯になった場合、次の文字入力で すべての入力、出力キューは捨てられます。 .El .Ss 出力モード: これは termios 構造体の c_oflag に相当します。 .Bl -tag -width Fl .It Cm opost Pq Fl opost -プロセス後の処理を行った上で出力をします (プロセス後の処理を行わずに出力します。 +プロセス後の処理を行った上で出力をします +(プロセス後の処理を行わずに出力します。 この指定をすると、他のすべての出力モードが無視されます)。 .It Cm onlcr Pq Fl onlcr 出力の .Dv NL を .Dv CR-NL に変換します (変換しません)。 .It Cm oxtabs Pq Fl oxtabs 出力のタブをスペースに展開します (展開しません)。 .El .Ss ローカルモード: .Pp ローカルモードのフラグ (lflags) は端末処理のさまざまな属性に影響します。 -歴史的には、"local"という名前のつけられた新しいジョブコントロール機能 +歴史的には、"local" という名前のつけられた新しいジョブコントロール機能 は Jim Kulp によって .Tn IIASA の .Tn Pdp 11/70 に実装されました。 その後このドライバは、 Evans Hall, UC Berkeley の最初の .Tn VAX 上で走りました。その際ジョブコントロールの細部は大幅に変更されましたが、 構造体の定義と名前は根本的には変わりませんでした。 -lflag の 'l' の二つ目の解釈は、 +lflag の 'l' の 2 つ目の解釈は、 .Ar termios 構造体の .Ar c_lflag に相当する ``line discipline flag''(行制御規則フラグ) です。 .Bl -tag -width Fl .It Cm isig Pq Fl isig 特殊な制御文字 .Dv INTR , QUIT , .Dv SUSP に対する処理を有効 (無効) にします。 .It Cm icanon Pq Fl icanon .Dv ERASE と .Dv KILL 処理による入力制御を有効 (無効) にします。 .It Cm iexten Pq Fl iexten icanon, isig, ixon で制御に使われているもの以外の特殊な 制御文字の処理を有効 (無効) にします。 .It Cm echo Pq Fl echo タイプされた文字をエコーバックします (エコーバックしません)。 .It Cm echoe Pq Fl echoe .Dv ERASE 文字の入力があった場合、可能ならディスプレイ上に見える現在の出力行の 最後の文字を消します (消しません)。 .It Cm echok Pq Fl echok .Dv KILL 文字の入力があった場合、そのあとに .Dv NL を出力します (出力しません)。 .It Cm echoke Pq Fl echoke 可能なら、 .Dv KILL 文字でディスプレイ上の現在の行を消します (消しません)。 .It Cm echonl Pq Fl echonl echo が無効になっているときでも .Dv NL 文字だけはエコーバックさせます (エコーバックしません)。 .It Cm echoctl Pq Fl echoctl .Cm echoctl をセットすると、制御文字は ^X のように表示されます。 セットしなければ、その文字自身が表示されます。 .It Cm echoprt Pq Fl echoprt プリンタ端末に対するもので、設定された場合、削除された文字を ``\\'' と ``/'' で囲んで逆方向にエコーします。 設定されていなければ、この機能を無効にします。 .It Cm noflsh Pq Fl noflsh .Dv INTR , QUIT , SUSP のあとのフラッシュ処理を無効 (有効) にします。 .It Cm tostop Pq Fl tostop バックグラウンドジョブが出力を行おうとした時に .Dv SIGTTOU を送ります (送りません)。これによってバックグラウンドジョブは画面出力を 行おうとすると停止するようになります。 .It Cm altwerase Pq Fl altwerase .Dv WERASE 文字を処理するときに、別の単語消去アルゴリズムを用います (用いません)。 このアルゴリズムは英数字とアンダースコアの並びを単語とみなします。 また、分類上直前の文字をスキップします (便宜的に、直前の文字を .Dv ERASE 一文字で消すことができるようにするため)。 .It Cm mdmbuf Pq Fl mdmbuf セットされると、CD 信号の検出によるフロー制御の出力を行います。 セットされなければ、CD 信号の低下に対してエラーを出力します (キャリア信号は .Dv CLOCAL フラグによっても無視されません)。 .It Cm flusho Pq Fl flusho 出力を捨てます (捨てません)。 .It Cm pendin Pq Fl pendin 入力を非標準 (non-canonical) モードから標準 (canonical) モードへ切り換えた あと、入力を保留します (保留しません)。読み込みが保留されたとき、または更に入力があったときに 再入力されます。 .El .Ss 制御文字: .Bl -tag -width Fl .It Ar control-character Ar string .Ar string に .Ar control-character を割り当てます。もし string が 1 文字だけなら、その文字に .Ar control-character が割り当てられます。 -string が二文字の "^-" もしくは "undef" の場合は +string が 2 文字の "^-" もしくは "undef" の場合は .Ar control-character は無効にされます (つまり、 .Pf { Dv _POSIX_VDISABLE Ns } になります)。 .Pp 認識される制御文字: .Bd -ragged -offset indent .Bl -column character Subscript .It 制御文字 記号   説明 .It _________ _________ _______________ .It eof Ta Tn VEOF EOF No character .It eol Ta Tn VEOL EOL No character .It eol2 Ta Tn VEOL2 EOL2 No character .It erase Ta Tn VERASE ERASE No character .It werase Ta Tn VWERASE WERASE No character .It intr Ta Tn VINTR INTR No character .It kill Ta Tn VKILL KILL No character .It quit Ta Tn VQUIT QUIT No character .It susp Ta Tn VSUSP SUSP No character .It start Ta Tn VSTART START No character .It stop Ta Tn VSTOP STOP No character .It dsusp Ta Tn VDSUSP DSUSP No character .It lnext Ta Tn VLNEXT LNEXT No character .It reprint Ta Tn VREPRINT REPRINT No character .It status Ta Tn VSTATUS STATUS No character .El .Ed .It Cm min Ar number .It Cm time Ar number min あるいは time の値を .Ar number にします。 .Dv MIN と .Dv TIME は非標準的なモード (-icanon) での入力処理に使われます。 .El .Ss 複合モード: .Pp .Bl -tag -width Fl .It Ar saved settings 現在の端末属性を .Fl g オプションによって保存された属性にする。 .It Cm evenp No or Cm parity parenb と cs7 を有効にし、parodd を無効にします。 .It Cm oddp parenb, cs7, parodd を有効にします。 .It Fl parity , evenp , oddp parenb を無効にして、cs8 をセットします。 .It Cm \&nl Pq Fl \&nl icrnl を有効 (無効) にします。 それに加えて、-nl は inlcr と igncr を解除します。 .It Cm ek .Dv ERASE と .Dv KILL に割り当てられている文字をシステムのデフォルトのものに戻します。 .It Cm sane すべてのモードを対話的な端末利用に妥当な値にリセットします。 .It Cm tty 行制御規則を標準端末の規則 .Dv TTYDISC に設定します。 .It Cm crt Pq Fl crt CRT ディスプレイ用に適合するモードをすべて有効 (無効) にします。 .It Cm kerninfo Pq Fl kerninfo .Dv STATUS 文字 (通常 ^T に設定されています) に結びつけられた システムステータス行の生成を有効 (無効) にします。 このステータス行はシステムの負荷、現在のコマンドの名前、プロセス ID、 プロセスが待っているイベント (あるいはプロセスの状態)、 -ユーザー時間とシステム時間、CPU利用率、現在のメモリ使用状況 +ユーザ時間とシステム時間、CPU 利用率、現在のメモリ使用状況 からなっています。 .It Cm columns Ar number 端末の大きさを .Ar number 列とします。 .It Cm cols Ar number .Cm columns の別名定義です。 .It Cm rows Ar number 端末の大きさを .Ar number 行とします。 .It Cm dec Digital Equipment Corporation systems の端末設定にします。 ( .Dv ERASE , .Dv KILL , .Dv INTR をそれぞれ ^?, ^U, ^Cとし、 .Dv ixany を無効、 .Dv crt を有効にします) .It Cm extproc Pq Fl extproc 設定されると、一部の端末処理が端末機器ないし pty に接続されたリモート側 で行なわれるようになります。 .It Cm raw Pq Fl raw 端末モードを全く入出力処理を行なわないモードにします。 これを無効にすると、端末を入出力処理を行なう普通のモードに戻します。 注意すべきなのは、端末用のドライバは単一の .Dv RAW ビットを持つわけではないので、 .Cm raw モードに設定する前にどのようなフラグが設定してあったのかを知ることがで きないということです。つまり、 .Cm raw モードを解除するだけでは、 .Cm raw モード設定前の状態には戻りません。 端末を raw 状態にして、それを正確に元に戻すためには、以下のような シェルコマンドを使うことを薦めます。 .nf save_state=$(stty -g) stty raw \&... stty "$save_state" .fi .It Cm size -端末の大きさを行、列の順に並べた一行で表示します。 +端末の大きさを行、列の順に並べた 1 行で表示します。 .El .Ss 互換モード: .Pp 以下のモードは旧バージョンの stty コマンドとの互換性保持のために残され ています。 .Bl -tag -width Fl .It Cm all 縦覧式でコントール文字を表示する以外は、 .Cm stty Fl a と同様に端末設定を表示します。 .It Cm everything .Cm all と同じです。 .It Cm cooked .Cm sane と同じです。 .It Cm cbreak .Cm brkint , ixon , imaxbel , opost , .Cm isig , iexten , .Cm Fl icanon を有効にします。 解除した場合は .Cm sane と同じです。 .It Cm new .Cm tty と同じです。 .It Cm old .Cm tty と同じです。 .It Cm newcrt Pq Fl newcrt .Cm crt と同じです。 .It Cm pass8 .Cm parity の反対です。 .It Cm tandem Pq Fl tandem .Cm ixoff と同じです。 .It Cm decctlq Pq Fl decctlq .Cm ixany の反対です。 .It Cm crterase Pq Fl crterase .Cm echoe と同じです。 .It Cm crtbs Pq Fl crtbs .Cm echoe と同じです。 .It Cm crtkill Pq Fl crtkill .Cm echoke と同じです。 .It Cm ctlecho Pq Fl ctlecho .Cm echoctl と同じです。 .It Cm prterase Pq Fl prterase .Cm echoprt と同じです。 .It Cm litout Pq Fl litout .Cm opost の反対です。 .It Cm tabs Pq Fl tabs .Cm oxtabs の反対です。 .It Cm brk Ar value 制御文字 .Cm eol と同じです。 .It Cm flush Ar value 制御文字 .Cm discard と同じです。 .It Cm rprnt Ar value 制御文字 .Cm reprint と同じです。 .El .Pp .Nm は成功した場合は 0 を、エラーが起きた場合は 0 より大きい値を返します。 .Sh 関連項目 .Xr termios 4 .Sh 規格 .Nm は .St -p1003.2 互換です。 .Fl e と .Fl f のフラグは規格を拡張しています。 diff --git a/ja_JP.eucJP/man/man1/tar.1 b/ja_JP.eucJP/man/man1/tar.1 index 8d9b0c17eb..8a1e3bed8b 100644 --- a/ja_JP.eucJP/man/man1/tar.1 +++ b/ja_JP.eucJP/man/man1/tar.1 @@ -1,502 +1,501 @@ .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*- .\" See /usr/src/gnu/COPYING for conditions of redistribution .\" .\" Written by John F. Woods .\" Updated by Robert Eckardt .\" .\" %Id: tar.1,v 1.18.2.1 1999/03/29 11:26:35 obrien Exp % .\" .\" jpman %Id: tar.1,v 1.2 1997/06/24 07:09:44 bobson Stab % .Dd 25 August 1997 .Os FreeBSD .Dt TAR 1 .Sh 名称 .Nm tar .Nd テープアーカイバ; "tar" アーカイブファイルの操作 .Sh 書式 .Nm tar .Op [-] Ns Ar bundled-options .Op Ar gnu-style-flags .Op Ar tarfile .Op Ar blocksize .Op Ar exclude-file .Op Ar filenames .Op Fl C Ar directory-name .Sh 解説 .Nm は、歴史的な理由により .Dq tape archiver を省略して名付けられました。 .Nm プログラムは、 .Ar tarfile と呼ばれる .Dq tar フォーマットのアーカイブファイルを作成し、アーカイブにファイルを追加したり、 またアーカイブからファイルを抽出したりします。 tarfile は通常磁気テープを指しますが、フロッピディスケットや 通常のファイルでも構いません。 .Pp 通常、 .Nm コマンドラインの最初の引数は、機能文字および機能変更文字からなる単語であり、 その前に ダッシュ (-) を付けても付けなくてもいいようになっています。 単語には、次の機能文字のうち丁度 1 つを含んでいる必要があります: .Cm A , .Cm c , .Cm d , .Cm r , .Cm t , .Cm u , .Cm x , これらはそれぞれ、 追加 (append)、作成 (create)、差分 (difference)、置換 (replace)、 リスト表示 (table of contents)、更新 (update)、抽出 (extract) を意味しています (下記に詳細があります)。 これらの他に、以下に詳細を述べる機能変更文字を、コマンド単語に 含めることができます。それらのいくつかは、コマンド単語内と同じ順で -コマンドライン引数を要求します (使用例の節を参照) 。 +コマンドライン引数を要求します (使用例の節を参照)。 機能文字と機能変更文字は、GNU 形式の引数で指定することもできます (2 つのダッシュを最初に付け、1 つのコマンド単語ごとに機能文字か 機能変更文字を 1 つだけ指定する)。 アーカイブへの追加、アーカイブからの抽出、そしてリスト表示のために コマンドライン指定するファイル名には、 シェルのパターンマッチ文字列を使用することができます。 .Sh 機能 以下の機能のいずれか 1 つだけを必ず指定する必要があります。 .Pp .Bl -tag -width "--concatenate" -compact .It Fl A .It Fl -catenate .It Fl "-concatenate" 指定された (tar アーカイブ形式の) ファイルを tar アーカイブの末尾 に追加します。(追加する前の古い end-of-archive ブロックは削除さ れます。) これは、指定されたファイルがアーカイブの中の 1 ファイルとなるので はなく、指定したファイルの中に含まれているファイルを、最初に指定 したアーカイブに追加するという効果を持ちます。 .Em 注: このオプションは tarfile を再書き込みする必要があるため、1/4 インチカートリッジテープでは動作しません。 .It Fl c .It Fl -create 新しいアーカイブを作成して (もしくは古い内容を切り捨てて)、指定 されたファイルをアーカイブに書き込みます。 .It Fl d .It Fl -diff .It Fl -compare アーカイブの中のファイルと、それに相当するファイルシステム内の ファイルとの違いを調査します。 .It Fl -delete 指定されたファイルをアーカイブから削除します。(1/4 インチテープ では動作しません。) .It Fl r .It Fl -append アーカイブの末尾にファイルを追加します。(1/4 インチテープでは 動作しません。) .It Fl t .It Fl -list アーカイブ内容のリスト表示をします。もし引数としてファイル名が 指定されていれば、そのファイルだけがリスト表示されます。そうでなけ れば、アーカイブに含まれるすべてのファイルリストが表示されます。 .It Fl u .It Fl -update 指定したファイルのうち、アーカイブ内のファイルよりもディスク上の ファイルの変更時刻が新しいものだけを追加します。1/4 インチテープ では動作しません。 .It Fl x .It Fl -extract .It Fl -get アーカイブからファイルを抽出します。可能ならば、所有者、 変更時刻、ファイル属性はリストアされます。もし .Ar file 引数が指定されていなければ、アーカイブ内の全ファイルが抽出されます。 もし .Ar filename 引数がテープ上のディレクトリ名にマッチしていれば、そのディレクトリと ディレクトリ内のファイルが抽出されます。(ディレクトリ内の すべてのディレクトリについても同様に抽出されます。) もしアーカイブ内に、相当する同じファイルが複数含まれていれば (上記の .Fl -append コマンドを参照)、最後に含まれているものが他のすべてのファイルを 上書きする形で抽出されます。 .Sh オプション .Nm の他のオプションは、組み合わせて使用することができます。 1 文字オプションは、コマンド単語の中で指定することができます。 引数を与えるべきオプションの場合、オプションに続けて引数を指定し ます。1 文字オプションであれば、これに続くコマンドライン引数を 使用します (以下の .Sx 使用例 を参照してください。) .Pp .Bl -tag -width "--preserve-permissions" -compact .It Fl -help .Nm のすべてのコマンドオプションについて一覧と解説を表示します。 .It Fl -atime-preserve テープに書かれている、ファイルのアクセス時刻をリストアします。 (inode の変更時刻が変更されることに注意してください!) .It Fl b .It Fl -block-size Ar number 読み書きするブロックサイズを .Ar number * 512-byte ブロック に設定します。 .It Fl B .It Fl -read-full-blocks 短い読みだしブロックを、完全なブロックに再組み立てします。 (4.2BSD パイプの読み込み用。) .It Fl C Ar directory .It Fl -directory Ar directory 残りの引数を処理する前に .Ar directory へ移動します。 .It Fl -checkpoint アーカイブを読み書きする間に読み書きしたバッファの数を表示します。 .It Fl f Ar [hostname:]file .It Fl -file Ar [hostname:]file 指定された .Ar file (デフォルトは /dev/rsa0) を読み書きします。 もし .Ar hostname が指定されていれば、 .Nm は .Xr rmt 8 を使って、リモートマシン上の .Ar file を読み書きします。"-" はファイル名として使用されることもありますが、 これは標準入力から読み出したり、標準出力へ書き出したりするために使用されます。 .It Fl -force-local コロンがある時でさえ、アーカイブファイルはローカルのものとします。 .It Fl F Ar file .It Fl -info-script Ar file .It Fl -new-volume-script Ar file それぞれのアーカイブが終ると、スクリプトを実行します (暗黙の .Fl M 指定が行なわれます。) .It Fl -fast-read ワイルドカードで指定されていないすべての抽出ターゲットが アーカイブ内に見つかったら、その時点で終了します。 .It Fl G .It Fl -incremental 古い GNU-format インクリメンタルバックアップファイルを作成/リスト/ 抽出します。 .It Fl g Ar file .It Fl -listed-incremental Ar file 新しい GNU-format インクリメンタルバックアップファイルを作成/リスト/ 抽出します。 .It Fl h .It Fl -dereference シンボリックリンクをシンボリックのまま書き込みません。シンボリックリンクが 指しているデータを書き込みます。 .It Fl i .It Fl -ignore-zeros アーカイブの中のゼロブロック (通常、End-Of-File を意味する) を無視します。 .It Fl -ignore-failed-read ファイルが読めなくても、非 0 のステータスで exit しません。 .It Fl k .It Fl -keep-old-files ディスク上に既にあるファイルを保持します。つまり、アーカイブから 抽出するファイルは、ディスク上のファイルへ上書きしません。 .It Fl K Ar file .It Fl -starting-file Ar file アーカイブの中の .Ar file から (抽出、リストなどを) 始めます。 .It Fl l .It Fl -one-file-system あるファイルシステム内にあるファイルだけでアーカイブを作成します。 (他ファイルシステムへのマウントポイントを跨ぎません。) .It Fl L Ar number .It Fl -tape-length Ar number .Ar number * 1024 バイト書き込んだ後でテープの交換を要求します。 .It Fl m .It Fl -modification-time ファイルの変更時刻を抽出しません。 .It Fl M .It Fl -multi-volume マルチボリュームアーカイブを作成/リスト/抽出します。 .It Fl n .It Fl -norecurse 作成時に再帰的にサブディレクトリを走査しません。 .It Fl -volno-file Ar file ボリューム番号付きのファイル名です。 .It Fl N Ar date .It Fl -after-date Ar date .It Fl -newer Ar date 作成時間が .Ar date より新しいファイルだけを抽出します。 .It Fl -newer-mtime Ar date 変更時間が .Ar date より新しいファイルだけを抽出します。 .It Fl o .It Fl -old-archive .It Fl -portability POSIX フォーマットではなく、V7 フォーマットのアーカイブを作成します。 .It Fl O .It Fl -to-stdout ファイルを標準出力に抽出します。 .It Fl p .It Fl -same-permissions .It Fl -preserve-permissions 保護情報を完全に抽出します。 .It Fl -preserve .Fl p s の指定と同じ効果を持ちます。 .It Fl P .It Fl -absolute-paths ファイル名から先頭の `/' をとりません。 .It Fl R .It Fl -record-number メッセージ中にアーカイブ内のレコード番号を埋め込み表示します。 .It Fl -remove-files アーカイブに追加したファイルを、追加後に削除します。 .It Fl s .It Fl -same-order .It Fl -preserve-order アーカイブ内から抽出するファイルを、指定された順のままにします。 .It Fl -show-omitted-dirs アーカイブ作成中に除外されたディレクトリを表示します。 .It Fl S .It Fl -sparse 「少ない」ファイルを効率的に扱うようにします。 .It Fl T Ar file .It Fl -files-from Ar file .Ar file から抽出もしくは作成するファイル名を得ます。(1 行 1 ファイル名。) .It Fl -null null で終わっている名前を考慮し、 .Fl T の振舞を変更します。 これは .Fl C 指定を無効にします。 .It Fl -totals .Fl -create によって書かれた総バイト数を表示します。 .It Fl v .It Fl -verbose .Fl -create でアーカイブに書くファイルや .Fl -extract でアーカイブから 取り出すファイル名をリスト表示します。 ファイルの保護情報をファイル名とともに表示させるには、 .Fl -list を使います。 .It Fl V Ar volume-name .It Fl -label Ar volume-name 指定された .Ar volume-name を持ったアーカイブを作成します。 .It Fl -version .Nm プログラムのバージョン番号を表示します。 .It Fl w .It Fl -interactive .It Fl -confirmation すべての動作に対して、確認を求めるようになります。 .It Fl W .It Fl -verify アーカイブを書き込んだ後、ベリファイを試みます。 .It Fl -exclude Ar pattern .Ar pattern にマッチするファイルを除外します。 (抽出しません。追加しません。リスト表示しません。) .It Fl X Ar file .It Fl -exclude-from Ar file .Ar file に一覧されているファイルを除外します。 .It Fl y .It Fl -bzip2 .It Fl -bunzip2 アーカイブを .Xr bzip2 1 でフィルタリングします。 .It Fl Z .It Fl -compress .It Fl -uncompress アーカイブを .Xr compress 1 でフィルタリングします。 .It Fl z .It Fl -gzip .It Fl -gunzip アーカイブを .Xr gzip 1 でフィルタリングします。 .It Fl -use-compress-program Ar program アーカイブを .Ar program でフィルタリングします。 (これは、 .Fl d が指定されたときは ``decompress'' を意味しなければなりません。) .It Fl -block-compress テープもしくはフロッピのために、圧縮プログラムの出力をブロック 化します。(そうしないと、ブロック長がおかしくなり、デバイスドライバは そのブロックを拒絶するでしょう。) .It Fl [0-7][lmh] テープドライブと密度を指定します。 .It Fl -unlink ファイルを作成する前に、いったん削除します。 .El .Sh 使用例 "bert" と "ernie" というファイルを含む、 ブロックサイズが 20 ブロックのアーカイブを、 テープドライブ /dev/rsa0 に作るには、 .Pp .Dl tar cfb /dev/rsa0 20 bert ernie .Pp もしくは .Pp .Dl tar\ --create\ --file\ /dev/rsa0\ --block-size\ 20\ bert\ ernie .Pp と入力します。 .Fl f および .Fl b フラグは両方とも引数を必要としていることに注意してください。 この引数は、コマンド単語に書かれているのと同じ順序でコマンドラインから 取得されます。 .Pp /dev/rsa0 はデフォルトのデバイスであり、20 はデフォルトのブロック サイズですので、上記の例は次のように単純化できます。 .Pp .Dl tar c bert ernie .Pp "backup.tar" というアーカイブから、すべての C ソース及びヘッダを 抽出するには、次のようにタイプします。 .Pp .Dl tar xf backup.tar '*.[ch]' .Pp シェルがカレントディレクトリ内のファイル名に展開しないよう、パターンを クォートしなければならないことに注意してください。(当然、 シェルはアーカイブ内のファイル一覧にアクセスすることはできません。) .Pp ファイルを階層構造ごとコピーするには、このようにコマンドを使用してください: .Bd -literal tar cf - -C srcdir . | tar xpf - -C destdir .Ed .Pp ディスケットに、gzip を使った圧縮アーカイブを作成するには、次の ようなコマンドラインを使うといいでしょう。 .Pp .Dl tar --block-compress -z -c -v -f /dev/rfd1a -b 36 tar/ .Pp まとめ指定フラグと -- スタイルのフラグを混在させることができない ことに注意してください。次のようにタイプしなければならないわけで はなく、上記のような書き方で 1 文字フラグを使うことができます。 .Pp -.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar -/ +.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar/ .Pp -上のようにして作成したディスクの内容は、次のようにすればリスト表 -示できます。 +上のようにして作成したディスクの内容は、次のようにすればリスト +表示できます。 .Pp .Dl tar tvfbz /dev/rfd1a 36 .Pp 2 つの tar アーカイブを 1 つのアーカイブにまとめるには、 .Pp .Dl tar Af archive1.tar archive2.tar .Pp を使います。こうすると、archive2.tar に含まれているファイルが archive1.tar の末尾に追加されます。(単純に .Pp .Dl cat archive2.tar >> archive1.tar .Pp とタイプしてもうまくいかないことに注意してください。なぜなら、 tar アーカイブの末尾には end-of-file ブロックがあるからです。) .Pp srcdir ディレクトリから 1997 年 2 月 9 日 13:00 以降に変更をされた 全てのファイルをアーカイブするためには、以下の形式を使って下さい。 .Dl tar\ -c\ -f\ backup.tar\ --newer-mtime\ 'Feb\ 9\ 13:15\ 1997'\ srcdir/ .Pp 他の時間指定形式としては、'02/09/97 13:15', \&'1997-02-09 13:15', '13:15 9 Feb 1997', '9 Feb 1997 13:15', \&'Feb. 9, 1997 1:15pm', '09-Feb', '3 weeks ago', 'May first Sunday' があります。 正しいタイムゾーンを指定するためには、 `13:15 CEST' や `13:15+200' を使用して下さい。 .Sh 環境変数 .Nm プログラムは、以下の環境変数を参照します。 .Bl -tag -width "POSIXLY_CORRECT" .It POSIXLY_CORRECT 通常、 .Nm はファイル指定の中に混ざったフラグを処理します。 この環境変数を設定すると、 .Nm は最初のフラグ以外の引数を見つける とそれ以降の引数に対してフラグ処理を行なわないという、POSIX 仕様 に合わせた動作を行なうようになります。 .It SHELL インタラクティブモードにおいて、サブシェルの起動が要求されたとき、 SHELL 変数が設定されていればそれが、設定されていなければ "/bin/sh" が使用されます。 .It TAPE tar のデフォルトのテープドライブを変更します。(これは、さらに .Fl f フラグによって変更することができます。) .El .Sh 関連ファイル .Bl -tag -width "/dev/rsa0" .It Pa /dev/rsa0 デフォルトのテープドライブ .El .\" This next request is for sections 1, 6, 7 & 8 only .\" (command return values (to shell) and fprintf/stderr type diagnostics) .\" .Sh 診断 .Sh 関連項目 .Xr bzip2 1 , .Xr compress 1 , .Xr gzip 1 , .Xr pax 1 , .Xr ft 8 , .Xr rmt 8 .\" .Sh 規格 .Sh 歴史 .Nm フォーマットは立派な歴史を持っていて、Sixth Edition UNIX に 原点があります。 この .Nm の実装は GNU 実装であり、John Gilmore によって書かれた パブリックドメイン tar が元になっています。 .Sh 作者 次の人を含む、大変多くの人々。[ソースの中の ChangeLog ファイルに記 述されている人々] .An John Gilmore (オリジナルのパブリックドメイン版の作者), .An Jay Fenlason (最初の GNU 作者), .An Joy Kendall , .An Jim Kingdon , .An David J. MacKenzie , .An Michael I Bushnell , .An Noah Friedman そして バグフィックスや追加を貢献してくれた無数の人々。 このマニュアルページは NetBSD 1.0 release から、 .Bx Free グループが 取り込んだものです。 .Sh バグ 特徴的な .Fl C オプションの動作は、伝統的な tar プログラムのそれとは異なるので、 あまり頼りにはできません。 .Pp .Fl A コマンドで任意の数の tar アーカイブを結合できればいいのですが、 それはできません。これをやろうとしても、 2 つ目以降のアーカイブの end-of-archive ブロックが削除されずに残ってしまいます。 diff --git a/ja_JP.eucJP/man/man1/vi.1 b/ja_JP.eucJP/man/man1/vi.1 index 546191c74f..4c1a450b08 100644 --- a/ja_JP.eucJP/man/man1/vi.1 +++ b/ja_JP.eucJP/man/man1/vi.1 @@ -1,1585 +1,1584 @@ .\" Copyright (c) 1994 .\" The Regents of the University of California. All rights reserved. .\" Copyright (c) 1994, 1995, 1996 .\" Keith Bostic. All rights reserved. .\" .\" This document may not be republished without written permission from .\" Keith Bostic. .\" .\" See the LICENSE file for redistribution information. .\" .\" @(#)vi.1 8.51 (Berkeley) 10/10/96 .\" jpman %Id: vi.1,v 1.3 1997/05/19 16:53:25 horikawa Stab % .\" .TH VI 1 "October 10, 1996" .UC .SH 名称 ex, vi, view \- テキストエディタ .SH 書式 .B ex [\c .B -eFGRrSsv\c ] [\c .BI -c " cmd"\c ] [\c .BI -t " tag"\c ] [\c .BI -w " size"\c ] [file ...] .br .B vi [\c .B -eFGlRrSv\c ] [\c .BI -c " cmd"\c ] [\c .BI -t " tag"\c ] [\c .BI -w " size"\c ] [file ...] .br .B view [\c .B -eFGRrSv\c ] [\c .BI -c " cmd"\c ] [\c .BI -t " tag"\c ] [\c .BI -w " size"\c ] [file ...] .SH ライセンス vi プログラムは自由に再配布できます。ライセンスファイルに挙げた条件の -基で、コピー、改変、他者との共有は自由にして下さい。どこかの会社(個人 -ではありません!)で vi が購入を希望するほど十分有用であると認めた場合、 +基で、コピー、改変、他者との共有は自由にして下さい。どこかの会社 +(個人ではありません!) で vi が購入を希望するほど十分有用であると認めた場合、 または会社で再配布を希望する場合、作者へ寄付をいただければ幸いです。 .SH 解説 .I \&vi はスクリーン指向のテキストエディタです。 .I \&ex は行指向のエディタです。 .I \&ex と .I \&vi は同じプログラムで別のインタフェースを提供し、 エディット中に切替えることが可能です。 .I view は -.IR \&vi . +.IR \&vi に .B \-R -(リードオンリー) オプション +(読み込み専用) オプション をつけて実行した場合と同じです。 .PP このマニュアルは .I ex/vi テキストエディタから派生した .I nex/nvi 用として提供されています。 .I nex/nvi は Fourth Berkeley Software Distibution (4BSD) オリジナルの .I \&ex と .I \&vi -のバグ一つ一つの互換性も含めて置き換えたつもりです。 +のバグひとつひとつの互換性も含めて置き換えたつもりです。 このマニュアルでは、以後、伝統的な .IR ex/vi の実装と区別する必要がある時だけ、 .I nex/nvi という表現を使います。 .PP このマニュアルページは、 .IR ex/vi を既に良く知っているユーザのためのものです。それ以外の人は、このマニュアルを 読む前に良いチュートリアルをしっかりと読んでおくべきです。あなたが不慣れな 環境のもとで、否応無く、しかも直ちに仕事を片付けなければならないなら、 -オプションの一覧の後にある、 ``ファースト スタートアップ'' という +オプションの一覧の後にある、``ファーストスタートアップ'' という タイトルのセクションを読んで下さい。 あなたがその仕事をこなすには、おそらくこれで十分でしょう。 .PP 以下のオプションが利用できます: .TP .B \-c エディットセッションがスタートした後ですぐに .B cmd を実行します。特にファイル中の最初の位置を決定するのに非常に役立ちますが、 .B cmd はポジジョニングコマンドに限定されません。これは、伝統的な ``+cmd'' 構文に代わる、POSIX 1003.2 で規定されたインタフェースです。 .I nex/nvi は新旧どちらの構文もサポートしています。 .TP .B \-e コマンド名が .IR \&ex であるかのように、ex モードで編集を開始します。 .TP .B \-F 編集を開始する時にファイル全体のコピーを作成しません (デフォルトでは、あなたの編集作業中に他の誰かがファイルを変更 する場合に備えてコピーを作成します)。 .TP .B \-l lisp オプションと showmatch オプションをセットして編集を始めます。 .TP .B \-G gtagsmode オプションがセットされている時と同じように、 gtags モードで編集を開始します。 .TP .B \-R コマンド名が .IR view , であるかのように、もしくは .B readonly オプション付きで起動されたかのように、 -リードオンリーモードで編集を開始します。 +読み込み専用モードで編集を開始します。 .TP .B \-r 指定したファイルの復旧を行ないます。もしファイルが指定されなかった場合は、 復旧可能なファイルの一覧を表示します。もし、復旧可能なファイルの中に 指定した名前のものがなかった場合は、 .B \-r オプションが指定されなかったかのように、そのファイルの編集を行ないます。 .TP .B \-S 外部プログラムへのすべてのアクセスを許さない .B secure エディットオプションをセットして起動します。 .TP .B \-s バッチモードに入ります。バッチモードは .I \&ex エディットセッションの時しか使えません。バッチモードは .I \&ex スクリプトを実行する時に便利です。このモードでは、プロンプトや、 情報を伝えるメッセージや、その他のユーザ向けのメッセージは出力されず、 スタートアップファイルや環境変数は読み込まれません。これは、伝統的な ``\-'' 引数に代わる、POSIX 1003.2 で規定されたインタフェースです。 .I \&nex/nvi は新旧どちらの構文もサポートしています。 .TP .B \-t 指定したタグの位置でエディットを開始します。 ( .IR ctags (1) 参照) .TP .B \-w 起動時のウィンドウの大きさを指定した行数にします。 .TP .B \-v コマンド名が .I \&vi か .IR view であるかのように、 vi モードでエディットを開始します。 .PP .I ex/vi へのコマンド入力は、標準入力から行なわれます。 .I \&vi のインタフェースは、標準入力が端末でない場合にはエラーになります。 .I \&ex のインタフェースでは、 .I \&ex は、標準入力が端末でなくても、 ちょうど .B \-s オプションが指定されている場合のようにセッションがバッチモード であっても、とにかく読み込みます。 .PP .I ex/vi は成功時に 0 を、エラーが起こった時には 0 より大きな値を返します。 .SH ファーストスタートアップ このセクションは、 .IR \&vi を使って簡単な編集作業を行なうのに必要な最低限のことを教えてくれるでしょう。 あなたが以前に一度もスクリーンエディタを使ったことがないなら、この簡単な紹介 の章でさえも問題になるかも知れません。この場合は、すでに .I \&vi を知っている人を探して、その人と一緒にこのセクションを読むべきです。 .PP .I \&vi はスクリーンエディタです。つまり、 .I \&vi は常に画面全体を使い、ファイルの一部分を画面上の (最終行以外の) それぞれの行に表示します。 画面の最終行は、あなたが .IR \&vi にコマンドを与えたり、 .I \&vi があなたに情報を与えたりするのに使われます。 .PP もうひとつ知っておくべきこととして、 .I \&vi はモードを持ったエディタであることがあります。 つまり、テキストを入力したり、コマンドを実行したりするには、 それぞれの作業を正しいモードで実行しなければなりません。 ファイル編集の最初はコマンドモードになっています。入力モードにする -コマンドが幾つかあります。入力モードから抜けるキーはただ一つで、 +コマンドが幾つかあります。入力モードから抜けるキーはただひとつ、 それは キーです。 (キーの名前は、<,> ではさんで書くことにします。 例えば、 は ``エスケープ'' ``esc'' キーのことを示し、通常キーボードでは、 と表示してあります。) どのモードにいるのかが判らなくなったならば、 .I \&vi が、ビープ音を出すまで、 キーを押し続けて下さい。 (一般的に、 .I \&vi は、許されていないことを何か試みたり、行なったりするとビープ音を鳴らします。 エラーメッセージも表示します。) .PP -ファイルの編集を始めるには、 ``vi file_name'' +ファイルの編集を始めるには、``vi file_name'' という具合に、コマンドを入れます。 編集を始めると、まず直ちに、 ``:set verbose showmode'' とコマンドを入れましょう。 そうすることによって、エディタは、 画面の最終行に詳細なエラーメッセージを出すようになりますし、 現在のモードも表示するようになります。 .PP ファイル内を移動するコマンド : .TP .B h カーソルを 1 文字左へ動かす。 .TP .B j カーソルを 1 行下へ動かす。 .TP .B k カーソルを 1 行上へ動かす。 .TP .B l -カーソルを1文字右へ動かす。 +カーソルを 1 文字右へ動かす。 .TP .B カーソルを矢印が示す方へ動かす。 .TP .B /text ファイル中の ``text'' を検索し、その最初の文字へカーソルを移動します。 .PP 新しく文書入力するコマンド : .TP .B a 入力した文書カーソルの .I 後ろへ 追加します。 .TP .B i 入力した文書カーソルの .I 前に 挿入します。 .TP .B o カーソルの下に新しい行を設けて、文書の入力を開始します。 .TP .B O カーソルの上に行を設けて、文書の入力を開始します。 .TP .B 一旦、 .BR \&a , .BR \&i , .BR \&O ないし .B \&o などのコマンドで入力モードに入ってからは、 文書の入力を終了しコマンドモードへ戻るためには、 .B コマンドを用います。 .PP 文書をコピーするコマンド : .TP .B yy カーソルのある行をコピーします。 .TP .B p カーソルのある行の下にコピーした行を追加します。 .PP 文書を削除するコマンド : .TP .B dd カーソルのある行を削除します。 .TP .B x カーソルのある文字を削除します。 .PP ファイルに書き込むコマンド : .TP .B :w もともと .I \&vi のコマンドラインで指定したファイルに、ファイルの内容を書き戻します。 .TP .B ":w file_name" 指定された ``file_name'' に、ファイルの内容を書き出します。 .PP 編集を終了し、エディタを抜けるコマンド : .TP .B :q エディットを終了し、 vi から抜けます。 (ファイル内容が変更されていてまだ保存されていなければ、 .I \&vi は、終了指示を拒否します) .TP .B :q! 変更した内容を放棄し、終了します。 .PP 最後に注意していただきたいこととして、 通常の文字ではない文字は、画面上で複数カラムを占めることがあります。また、 -長い行は、画面上の1行に収まらないこともあります。 -上記のコマンドは、 ``物理的な'' 行や文字に対して作用します。 +長い行は、画面上の 1 行に収まらないこともあります。 +上記のコマンドは、``物理的な'' 行や文字に対して作用します。 つまり、行関係のコマンドはその行が画面上で 何行になろうと行全体に影響を及ぼしますし、文字関係のコマンドはその文字が 画面上で何カラムを占めていても、その文字全体に影響を及ぼします。 .SH VI コマンド 以下の章では、 .I \&vi のコマンドモードで現れるコマンドについて説明します。 それぞれの記述では、見出し行にコマンドの使用書式を一覧表示します。 .PP .TP .B "[count] " .I count で指定した回数だけ、前方へ現在の単語を検索します。 .TP .B "[count] " .I count で指定した回数だけ、画面を後方へ戻します。 .TP .B "[count] " .I count で指定した行数だけ、画面を前方へスクロールします。 .TP .B "[count] " .I count で指定した行数だけ、画面を前方へスクロールします。 カーソルは現在行から離れますが、可能な場合は元のカラムに留まります。 .TP .B "[count] " .I count で指定した回数だけ、画面を前方へスクロールします。 .TP .B "" ファイル情報を表示します。 .TP .B "" .TP .B "[count] h" .I count で指定した文字数だけ、カーソルを現在行中で戻します。 .TP .B "[count] " .TP .B "[count] " .TP .B "[count] j" .I count で指定した行数だけ、カラム位置を変えずにカーソルを 下へ移動します。 .TP .B "" .TP .B "" 画面を再表示します。 .TP .B "[count] " .TP .B "[count] +" .I count で指定した行数だけ下の行の、 最初の空白以外の文字の位置へカーソルを 移動します。 .TP .B "[count] " .TP .B "[count] k" .I count で指定した行数だけ、 カラム位置を変えずにカーソルを上へ移動します。 .TP .B "" 最近のタグの状態へと戻ります。 .TP .B "" .I count で指定した行数だけ、画面を後方へスクロールします。 .TP .B "" 編集中の次の下位のスクリーンに切り替わります。 編集中の下位のスクリーンが他に無い場合には、最初のスクリーンへ切り替えます。 .TP .B "" .I count で指定した行数だけ、画面を後方にスクロールします。 できるかぎり現在の行、カラムにカーソルを残します。 .TP .B "" 現在の処理を中断 (suspend) します。 .TP .B "" .I \&ex コマンドを実行します。もしくは、実行中のコマンドを部分的にキャンセルします。 .TP .B "" タグ参照の内容をタグスタックへプッシュします。 gtagsmode では、行の最初のカラムにいる時は関数の参照位置を探し、 そうでない時は関数の定義位置を探します。 .TP .B "" 最後に編集したファイルへ切り替えます。 .TP .B "[count] " .TP .B "[count] l" .I count で指定した文字数だけ、カーソルを前方へ行を変えずに移動します。 .TP .B "[count] ! motion shell-argument(s)" シェルコマンドの結果を用いて文書を置き換えます。 .TP .B "[count] # #|+|-" カーソルが指す場所の数を増減します。 .TP .B "[count] $" カーソルを現在の行の末尾に移動します。 .TP .B "%" 対となる文字へカーソルを移動します。 .TP .B "&" 現在行で、前回実行した置換コマンドを再び実行します。 .TP .B "'" .TP .B "`" マークした文字 の場所へ戻ります。 .IR . .TP .B "[count] (" .I count で指定された数だけ、前の文へ戻ります。 .TP .B "[count] )" .I count で指定された数だけ、後ろの文へ移動します。 .TP .B "[count] ," .I count で指定された回数だけ、逆方向へ文字を検索します。 .TP .B "[count] -" .I count で指定された回数だけ、 直前の行で最初に現れる空白でない文字への移動を行ないます。 .TP .B "[count] ." 直前の .I \&vi 編集コマンドを繰り返します。 .TP .B "/RE" .TP .B "/RE/ [offset]" .TP .B "?RE" .TP .B "?RE? [offset]" .TP .B "N" .TP .B "n" 前方/後方に向かって、正規表現による検索を行ないます。 .TP .B "0" 現在行の最初の文字に移動します。 .TP .B ":" ex コマンドを実行します。 .TP .B "[count] ;" 文字検索を .I count で指定された回数だけ繰り返します。 .TP .B "[count] < motion" .TP .B "[count] > motion" 現在行を、左/右にシフトします。 .TP .B "@ buffer" バッファに保存されたコマンドを実行します。 .TP .B "[count] A" 入力モードに入り、文書を行の最後に追加します。 .TP .B "[count] B" .I count -で指定された回数だけ、大単語(bigword)の先頭文字への移動を繰り返します。 +で指定された回数だけ、大単語 (bigword) の先頭文字への移動を繰り返します。 .TP .B "[buffer] [count] C" 現在位置から行末までを変更します。 .TP .B "[buffer] D" 現在位置から行末まで削除します。 .TP .B "[count] E" .I count で指定された回数だけ、大単語の末尾の文字への移動を繰り返します。 .TP .B "[count] F " .I count で指定された回数だけ、行の先頭から逆方向に文字 .IR を検索/移動を繰り返します。 .TP .B "[count] G" ファイルの最初から数えて .IR count 行目へ、もしくは .I count を指定しなかったときはファイルの末尾の行へ、カーソルを移動します。 .TP .B "[count] H" 画面の最初から数えて .I "count - 1" 行目に移動します。 .TP .B "[count] I" 入力モードに入り、行の先頭へ文書を挿入します。 .TP .B "[count] J" 現在行と次の行を結合します。 .TP .B "[count] L" 画面の下から数えて .I "count - 1" 行目に移動します。 .TP .B " M" 画面中央の行へ移動します。 .TP .B "[count] O" 入力モードに入ります。現在行の直前に新しい行を作り、文書を追加します。 .TP .B "[buffer] P" バッファに保存した文書を挿入します。 .TP .B "Q" .I \&vi -(もしくは visual)モードを終了し、 +(もしくは visual) モードを終了し、 .I \&ex モードへ切り替わります。 .TP .B "[count] R" 入力モードに入り、現在行の内容を置き換えます。 .TP .B "[buffer] [count] S" .I count で指定した行数だけ、行を置き換えます。 .TP .B "[count] T " .I count で指定した回数だけ、現在行で逆方向に検索し、指定された文字 .IR の .I 後ろ の文字に移動します。 .TP .B "U" 現在行を、カーソルが最後に入ってきた時の直前の状況に復元します。 .TP .B "[count] W" .I count で指定した回数だけ、大単語単位で移動します。 .TP .B "[buffer] [count] X" .I count で指定した回数だけ、カーソルの前の文字を削除します。 .TP .B "[buffer] [count] Y" -行のコピー、 (もしくは ``ヤンク'') を +行のコピー、(もしくは ``ヤンク'') を .I count で指定した行数だけ、指定したバッファに取り込みます。 .TP .B "ZZ" ファイルに書き込み、 .IR \&vi を終了します。 .TP .B "[count] [[" .I count で指定した回数だけ、後方のセクションの先頭へ移動します。 .TP .B "[count] ]]" .I count で指定した回数だけ、前方のセクションの末尾へ移動します。 .TP .B "\&^" 現在行の空白でない最初の文字へ移動します。 .TP .B "[count] _" .I "count - 1" で指定した行数だけ、下の行の最初の空白でない文字へ移動します。 .TP .B "[count] a" 入力モードに入り、カーソルの後ろに文書を追加します。 .TP .B "[count] b" .I count で指定した回数だけ、後方へ単語単位で移動します。 .TP .B "[buffer] [count] c motion" 範囲指定した文書を変更します。 .TP .B "[buffer] [count] d motion" 範囲指定した文書を削除します。 .TP .B "[count] e" .I count で指定した数だけ前方の単語の終りに移動します。 .TP .B "[count] f" 現在行の中で、行末まで .I count で指定した回数だけ、 .IR を検索します。 .TP .B "[count] i" 入力モードに入り、カーソルの前に文書を挿入します。 .TP .B "m " 現在の状態 (行とカラム) を .IR へ、保存します。 .TP .B "[count] o" 入力モードに入ります。現在行の下に新しい行を作り、文章を追加します。 .TP .B "[buffer] p" バッファから文章を取り出し、追加します。 .TP .B "[count] r " .I count で指定した文字数だけ、文字を置換します。 .TP .B "[buffer] [count] s" 現在行の中で、カーソルのある文字から .I count で指定する回数だけ、文字を入れ換えます。 .TP .B "[count] t " 現在行の中で、前方へ .I count で指定する回数だけ、 .IR を検索し、その文字の .I 直前 へ移動します。 .TP .B "u" ファイルに最後に行なった変更を取り消します。 .TP .B "[count] w" .I count で指定した回数だけ、前方へ単語単位で移動します。 .TP .B "[buffer] [count] x" .I count で指定した回数だけ、文字を削除します。 .TP .B "[buffer] [count] y motion" .I count -と motion で指定された範囲をバッファへコピー(もしくは ``yank'')します。 +と motion で指定された範囲をバッファへコピー (もしくは ``yank'') します。 .TP .B "[count1] z [count2] -|.|+|^|" 画面を再表示します。あわせてカーソル位置や画面のサイズを変更することも できます。 .TP .B "[count] {" .I count で指定した回数だけ、後方へ段落単位で移動します。 .TP .B "[count] |" 現在行の中で .I count で指定した .I column 位置に移動します。 .TP .B "[count] }" .I count で指定した回数だけ、前方へ段落単位で移動します。 .TP .B "[count] ~" .I count -で指定した回数だけ、文字(列)の大文字、小文字を入れ換えます。 +で指定した回数だけ、文字 (列) の大文字、小文字を入れ換えます。 .TP .B "[count] ~ motion" .I count と .IR motion で指定された範囲の文字列の大文字小文字を入れ換えます。 .TP .B "" 現在の作業を中断します。 .SH VI の文書入力コマンド 以下のセクションでは、 .I \&vi エディタの文書入力に用するコマンドに関して記します。 .PP .TP .B "" 直前の入力を繰り返します。 .TP .B "" 直前の .B shiftwidth のカラム境界まで消去します。 .TP .B "^" オートインデント文字を全部消し、インデント状態を解除します。 .TP .B "0" オートインデント文字を全部消します。 .TP .B "" カーソルが .B shiftwidth オプションの偶数倍のカラム数の直後に来るまで、適当な数の .I と .I 文字を挿入します。 .TP .B " .TP .B "" 最後に入力した文字を消します。 .TP .B "" 次の文字を引用します。 .TP .B " 文書を全部ファイルに格納し、コマンドモードへ戻ります。 .TP .B "" 現在行を消します。 .TP .B "" .TP .B "" 最後に入力した単語を消します。 単語の定義は、 .B altwerase と .B ttywerase のオプションに依存します。 .TP .B "[0-9A-Fa-f]+" 指定した 16 進の値を持つ文字を挿入します。 .TP .B "" 文書入力モードを中断し、コマンドモードへと戻ります。 .SH EX コマンド 以下のセクションでは、 .I \&ex エディタで用いられるコマンドに関して記します。 以下のエントリのうち、見出し行にはコマンドの使用書式を記載してあります。 .PP .TP .B "" 画面をスクロールします。 .TP .B "! argument(s)" .TP .B "[range]! argument(s)" シェルコマンドを実行するか、もしくはシェルコマンドを用いて 指定範囲の行にフィルタをかけます。 .TP .B \&" コメントです。 .TP .B "[range] nu[mber] [count] [flags]" .TP .B "[range] # [count] [flags]" 指定行を、その行番号を前に付けて表示します。 .TP .B "@ buffer" .TP .B "* buffer" バッファの中身を実行します。 .TP .B "[line] a[ppend][!]" 指定行の後に、入力文字を追加します。 .TP .B "[range] c[hange][!] [count]" .I range で指定した範囲を入力文字で置き換えます。 .TP .B "cs[cope] add | find | help | kill | reset" cscope コマンドを実行する。 .TP .B "[range] d[elete] [buffer] [count] [flags]" ファイルから行を削除します。 .TP .B "di[splay] b[uffers] | c[onnections] | s[creens] | t[ags]" -バッファ、cscope接続、画面、タグを表示します。 +バッファ、cscope 接続、画面、タグを表示します。 .TP .B "[Ee][dit][!] [+cmd] [file]" .TP .B "[Ee]x[!] [+cmd] [file]" 別のファイルを編集します。 .TP .B "exu[sage] [command]" 指定した .I \&ex コマンドの使い方を表示します。 .TP .B "f[ile] [file]" ファイル名を表示し、指定があればファイル名を変更します。 .TP .B "[Ff]g [name]" .I \&vi モードのみ。 指定した画面をフォアグランドに表示します。 .TP .B "[range] g[lobal] /pattern/ [commands]" .TP .B "[range] v /pattern/ [commands]" -パターンに合致した(しない)行にコマンドを適用します。 +パターンに合致した (しない) 行にコマンドを適用します。 .TP .B "he[lp]" ヘルプメッセージを表示します。 .TP .B "[line] i[nsert][!]" 入力文書を指定した行の前に挿入されます。 .TP .B "[range] j[oin][!] [count] [flags]" 行を結合します。 .TP .B "[range] l[ist] [count] [flags]" 行を曖昧さがないように表示します。 .TP .B "map[!] [lhs rhs]" マップを定義もしくは表示します。( .I \&vi のみ) .TP .B "[line] ma[rk] " .TP .B "[line] k " 行を .IR としてマークします。 .TP .B "[range] m[ove] line" 指定した行を目標行の後ろに移動します。 .TP .B "mk[exrc][!] file" 略語、エディタのオプション、マップを指定したファイルに書き込みます。 .TP .B "[Nn][ext][!] [file ...]" 引数リストで指定した次のファイルの編集に移行します。 .TP .B "[line] o[pen] /pattern/ [flags]" オープンモードに入ります。 .TP .B "pre[serve]" 後で .I \&ex .B \-r オプションを用いてファイルを復元できる形式にして保存します。 .TP .B "[Pp]rev[ious][!]" -引数リストで指定した一つ前のファイルを編集します。 +引数リストで指定した 1 つ前のファイルを編集します。 .TP .B "[range] p[rint] [count] [flags]" 指定した行を表示します。 .TP .B "[line] pu[t] [buffer]" バッファの内容を現在行に追加します。 .TP .B "q[uit][!]" 編集を終了します。 .TP .B "[line] r[ead][!] [file]" ファイルを読み込みます。 .TP .B "rec[over] file" 事前に保存されている場合に、 .I file を復元します。 .TP .B "res[ize] [+|-]size" .I \&vi モードのみ。 現在の画面を大きくするか、もしくは小さくします。 .TP .B "rew[ind][!]" 引数リストを巻き戻し、最初の引数のファイルの編集に移行します。 .TP .B "rta[g][!] tagstring" 指定したタグを参照しているファイルを編集します。(gtagsmode でのみ有効) .TP .B "se[t] [option[=[value]] ...] [nooption ...] [option? ...] [all]" エディタのオプションを表示、もしくは設定します。 .TP .B "sh[ell]" シェルプログラムを実行します。 .TP .B "so[urce] file" ファイルから .I \&ex コマンドを読み込み、実行します。 .TP .B "[range] s[ubstitute] [/pattern/replace/] [options] [count] [flags]" .TP .B "[range] & [options] [count] [flags]" .TP .B "[range] ~ [options] [count] [flags]" 置換を行ないます。 .TP .B "su[spend][!]" .TP .B "st[op][!]" .TP .B 編集を一時中断します。 .TP .B "[Tt]a[g][!] tagstring" 指定のタグを含むファイルを編集します。 .TP .B "tagn[ext][!]" 現在のタグの次のタグを含むファイルを編集します。 .TP .B "tagp[op][!] [file | number]" スタックから指定したタグを取り出します。 .TP .B "tagp[rev][!]" 現在のタグの前のタグを含むファイルを編集します。 .TP .B "unm[ap][!] lhs" 指定した文字列のマップ定義を解除します。 .TP .B "ve[rsion]" .I \&ex/vi のバージョンを表示します。 .TP .B "[line] vi[sual] [type] [count] [flags]" .I \&ex モードのみ。 .IR \&vi モードに入ります。 .TP .B "[Vi]i[sual][!] [+cmd] [file]" .I \&vi モードのみ。 新しいファイルを編集します。 .TP .B "viu[sage] [command]" .I \&vi コマンドの使い方を表示します。 .TP .B "[range] w[rite][!] [>>] [file]" .TP .B "[range] w[rite] [!] [file]" .TP .B "[range] wn[!] [>>] [file]" .TP .B "[range] wq[!] [>>] [file]" ファイルに書き出します。 .TP .B "[range] x[it][!] [file]" 修正されていれば、ファイルに書きだします。 .TP .B "[range] ya[nk] [buffer] [count]" 指定行をバッファにコピーします。 .TP .B "[line] z [type] [count] [flags]" ウィンドウのサイズを調節します。 .SH SET オプション -set (または unset)することによりエディターの動作を変更することができる +set (または unset) することによりエディターの動作を変更することができる オプションが非常にたくさんあります。このセクションでは、 これらのオプションとその短縮形とデフォルト値を説明します。 .PP 以下の各項目では、最初にオプションをフルネームで、 その次に同じ意味を持つ短縮形が続きます。 角括弧の部分は、デフォルト値です。 -ほとんどのオプションは on または off のような bool 値で、 +ほとんどのオプションは on または off のようなブール値で、 関連する値は持ちません。 .PP これらのオプションは、特に断りがない場合は .I \&ex と .I \&vi の両方のモードに適用されます。 .PP .TP .B "altwerase [off]" .I \&vi のみ。 別の単語削除アルゴリズムを選択します。 .TP .B "autoindent, ai [off]" 改行時に自動的にインデントします。 .TP .B "autoprint, ap [off]" .I \&ex のみ。 自動的に現在の行を表示します。 .TP .B "autowrite, aw [off]" 別のファイルに切替える際に、ファイルが変更されているなら自動的にセーブします。 .\" I cannot get a double quote to print between the square brackets .\" to save my life. The ONLY way I've been able to get this to work .\" is with the .tr command. .tr Q" .ds ms backup [QQ] .TP .B "\*(ms" .tr QQ ファイルが上書きされる前にバックアップファイルを作成します。 .TP .B "beautify, bf [off]" コントロール・キャラクタを切り捨てます。 .TP .B "cdpath [環境変数 CDPATH 、またはカレントディレクトリ]" .B cd コマンドのパス接頭子として使われるディレクトリパスです。 .TP .B "cedit [no default]" コロンコマンドライン履歴を編集する文字をセットします。 .TP .B "columns, co [80]" 画面のカラム数をセットします。 .TP .B "comment [off]" .I \&vi のみ。 シェルスクリプト、C、C++言語ファイル先頭のコメントの読み込みをスキップします。 .TP .B "directory, dir [環境変数 TMPDIR 、または /tmp]" テンポラリファイルを作成するディレクトリです。 .TP .B "edcompatible, ed [off]" .B 置換 コマンドの接尾子の ``c'' と ``g'' の値を記憶するようにします。 通常は新しくコマンドを実行するたびに初期化します。 .TP .B "errorbells, eb [off]" .I \&ex のみ。 エラーメッセージをベルとともに知らせます。 .TP .B "exrc, ex [off]" ローカルディレクトリのスタートアップファイルを読み込みます。 .TP .B "extended [off]" 正規表現を .IR egrep (1)\-\c スタイルに拡張します。 .TP .B "filec [no default]" コロンコマンドライン上のファイルパス補間を行なう文字をセットします。 .TP .B "flash [on]" エラー時にビープを鳴らすのではなく、画面をフラッシュします。 .TP .B "gtagsmode, gt [off]" tags の代わりに GTAGS と GRTAGS を使います。 .TP .B "hardtabs, ht [8]" スペースをハードウェアタブ設定に合わせて設定します。 .TP .B "iclower [off]" 検索文字列に大文字が現れなければ、すべての正規表現を大文字小文字の 区別なく行なうようにします。 .TP .B "ignorecase, ic [off]" 正規表現検索で大文字小文字の違いを無視します。 .TP .B "keytime [6]" .I ex/vi は、後に続くキーを先のキーに続けて解釈しキーマッピングを行ないますが、 後に続くキー入力の待ち時間を1/10秒単位で指定します。 .TP .B "leftright [off]" .I \&vi のみ。 左右のスクロールを行ないます。 .TP .B "lines, li [24]" .I \&vi のみ。 画面の行数を設定します。 .TP .B "lisp [off]" .I \&vi のみ。 さまざまなサーチコマンドとオプションの動作を Lisp 言語編集用に 修正します。 .I "このオプションはまだ実装されていません。" .TP .B "list [off]" 行を曖昧でない形式で表示します。 .TP .B "lock [on]" どのファイルの編集、読み込み、書き込みに関しても、排他的ロックをする ように試みます。 .TP .B "magic [on]" ある種の文字を正規表現中で特殊扱いします。 .TP .B "matchtime [7]" .I \&vi のみ。 .B showmatch オプションが設定されている場合、 .I ex/vi -は対になる括弧の上で一時停止しますが、その停止時間を1/10秒単位で指定します。 +は対になる括弧の上で一時停止しますが、その停止時間を 1/10 秒単位で指定します。 .TP .B "mesg [on]" -他のユーザーからのメッセージ着信を許可します。 +他のユーザからのメッセージ着信を許可します。 .TP .B "modelines, modeline [off]" それぞれのファイルの最初と最後の数行を .I ex コマンドとして読み込みます。 .I "このオプションが実装されることは決してありません。" .\" I cannot get a double quote to print between the square brackets .\" to save my life. The ONLY way I've been able to get this to work .\" is with the .tr command. .tr Q" .ds ms noprint [QQ] .TP .B "\*(ms" .tr QQ 表示可能な文字として扱われない文字を指定します。 .TP .B "number, nu [off]" 各行先頭に行番号を付けて表示します。 .TP .B "octal [off]" 表示出来ない文字を 8 進数で表示します。デフォルトでは 16 進表示です。 .TP .B "open [on]" .I \&ex のみ。 このオプションが設定されていなければ、 .B open と .B visual コマンドは許されません。 .TP .B "optimize, opt [on]" .I \&vi のみ。 ダム端末へのテキスト出力速度を最適化します。 .I "このオプションはまだ実装されていません。" .TP .B "paragraphs, para [IPLPPPQPP LIpplpipbp]" .I \&vi のみ。 .B \&{ と .B \&} コマンドで使用する段落境界の定義を追加します。 .TP .B "path []" 編集するファイルを探すディレクトリの追加分を定義します。 -Define additional directories to search for files being edited. .\" I cannot get a double quote to print between the square brackets .\" to save my life. The ONLY way I've been able to get this to work .\" is with the .tr command. .tr Q" .ds ms print [QQ] .TP .B "\*(ms" .tr QQ 常に表示可能な文字として扱われる文字を指定します。 .TP .B "prompt [on]" .I \&ex のみ。 コマンドプロンプトを表示します。 .TP .B "readonly, ro [off]" ファイルとそのセッションを読み込み専用とします。 .TP .B "recdir [/var/tmp/vi.recover]" 復元用のファイルを置くディレクトリです。 .TP .B "redraw, re [off]" .I \&vi のみ。 ダム端末上で、インテリジェント端末をシミュレートします。 .I "このオプションはまだ実装されていません。" .TP .B "remap [on]" 解決されるまで、キーマップを解釈します。 .TP .B "report [5]" 変更ないしヤンクについて、エディタが報告する行数を設定します。 .TP .B "ruler [off]" .I \&vi のみ。 最下行に行/カラムを示す罫を表示します。 .TP .B "scroll, scr [window / 2]" スクロールする行数を設定します。 .TP .B "searchincr [off]" .B \&/ と .B \&? コマンドをインクリメンタルにセットします。 .TP .B "sections, sect [NHSHH HUnhsh]" .I \&vi のみ。 .B \&[[ と .B \&]] コマンドで使用するセクション境界の定義を追加します。 .TP .B "secure [off]" 外部プログラムへのすべてのアクセスを止めます。 .TP .B "shell, sh [環境変数 SHELL 、または /bin/sh]" エディタ上から使われるシェルを選択します。 .\" I cannot get a double quote to print between the square brackets .\" to save my life. The ONLY way I've been able to get this to work .\" is with the .tr command. .tr Q" .ds ms shellmeta [~{[*?$`'Q\e] .TP .B "\*(ms" .tr QQ ファイル名の拡張が必要なとき、その決定をするメタキャラクタを セットします。 .TP .B "shiftwidth, sw [8]" オートインデント、シフトコマンドで用いる幅を設定します。 .TP .B "showmatch, sm [off]" .I \&vi のみ。 -``{'' と ``('' に対し ``}'' and ``)'' の括弧の対応を表示します。 +``{'' と ``('' に対し ``}'' と ``)'' の括弧の対応を表示します。 .TP .B "showmode, smd [off]" .I \&vi のみ。 現在のエディタのモードと ``変更'' フラグを表示します。 .TP .B "sidescroll [16]" .I \&vi のみ。 左右スクロールで動く幅を設定します。 .TP .B "slowopen, slow [off]" 文書を入力中、画面更新を遅らせて表示します。 .I "このオプションはまだ実装されていません。" .TP .B "sourceany [off]" 現在のユーザの所有でないスタートアップファイルを読み込みます。 .I "このオプションが実装されることは決してありません。" .TP .B "tabstop, ts [8]" このオプションは、表示で使用されるタブの幅を設定します。 .TP .B "taglength, tl [0]" タグの名前を判別可能な最大文字数を設定します。 .TP .B "tags, tag [tags /var/db/libc.tags /sys/kern/tags]" タグファイルのリストを設定します。 .TP .B "term, ttytype, tty [環境変数 TERM]" 端末の型を設定します。 .TP .B "terse [off]" このオプションは伝統的にエディタの示すメッセージをより簡潔なものにする ために作られています。 この実装では何の影響も与えません。 .TP .B "tildeop [off]" .B \&~ コマンドが連係動作をするように修正します。 .TP .B "timeout, to [on]" キーをマップする際のタイムアウト。 .TP .B "ttywerase [off]" .I \&vi のみ。 別の削除アルゴリズムを選択します。 .TP .B "verbose [off]" .I \&vi のみ。 エラーが起こる度にエラーメッセージを表示します。 .TP .B "w300 [no default]" .I \&vi のみ。 -転送レートが1200ボー以下の場合に設定するウィンドウサイズ。 +転送レートが 1200 ボー以下の場合に設定するウィンドウサイズ。 .TP .B "w1200 [no default]" .I \&vi のみ。 -転送レートが1200ボーの場合に設定するウィンドウサイズ。 +転送レートが 1200 ボーの場合に設定するウィンドウサイズ。 .TP .B "w9600 [no default]" .I \&vi のみ。 -転送レートが1200ボー以上の場合に設定するウィンドウサイズ。 +転送レートが 1200 ボー以上の場合に設定するウィンドウサイズ。 .TP .B "warn [on]" .I \&ex のみ。 このオプションは、 ファイルが最後に書き込まれた後でファイルが修正されている場合、 .B \&! コマンドが実行される前に端末に警告メッセージ を出すようにします。 .TP .B "window, w, wi [環境変数 LINES]" 画面のウィンドウサイズを設定します。 .TP .B "windowname [off]" アイコン名、ウィンドウ名を、たとえエディタ終了時に戻すことができなく なるとしても、現在作業中のファイル名に変えます。 .TP .B "wraplen, wl [0]" .I \&vi のみ。 左マージンから指定したカラム数で、行を自動的に折り返します。 もし、 .B wraplen と .B wrapmargin の両方の編集オプションがセットされると、 .B wrapmargin の値が使われます。 .TP .B "wrapmargin, wm [0]" .I \&vi のみ。 右マージンから指定したカラム数で、行を折り返します。 .B wraplen と .B wrapmargin 編集オプションの両方が指定されると、 .B wrapmargin の値が使われます。 .TP .B "wrapscan, ws [on]" 検索が、ファイルの最後に達したら最初へと戻ります。 .TP .B "writeany, wa [off]" ファイルの上書きチェックを切り替えます。 .SH 環境変数 .TP .I COLUMNS 画面のカラム数。 この値は、システムや端末固有のどの値をも上書きします。 .I ex/vi の起動時に環境変数 .I COLUMNS が設定されていない場合、または .B columns オプションによりユーザが明示的に値をリセットした場合は、 .I ex/vi は環境変数 .I COLUMNS にこの値を設定します。 .TP .I EXINIT .I \&ex のスタートアップコマンドのリスト。 .I NEXINIT が設定されていない場合に読み込まれます。 .TP .I HOME ユーザのホームディレクトリ。 起動時に ``$\fIHOME\fP/.nexrc'' と ``$\fIHOME\fP/.exrc'' を読み込むための初期ディレクトリパスとして使われます。 この値は、 .I \&vi の .B \&cd コマンドのデフォルトディレクトリとしても使われます。 .TP .I LINES 画面の行数。 この値は、システムや端末固有のどの値をも上書きします。 .I ex/vi 起動時に、環境変数 .I LINES が設定されていないか、 .B lines オプションによりユーザが明示的に値をリセットした場合は、 .I ex/vi は環境変数 .I LINES にこの値を設定します。 .TP .I NEXINIT .I \&ex のスタートアップコマンドのリスト。 .TP .I SHELL ユーザが選んだシェル 。 ( .B shell オプションを参照) .TP .I TERM ユーザの端末の型。デフォルトの型は ``unknown'' です。 .I ex/vi 起動時に環境変数 .I TERM の値が設定されていないか、または、 .B term オプションによりユーザが明示的に値をリセットした場合は、 .I ex/vi は環境変数 .I TERM にこの値を設定します。 .TP .I TMPDIR テンポラリファイルの作成される場所。 ( .B directory オプションを参照) .SH 非同期イベント .TP SIGALRM .I \&vi/ex は、ファイル編集時の定期的なバックアップを行なうためと、 処理に長い時間がかかりそうな時に画面に ``busy'' のメッセージを 表示するために、このシグナルを使います。 .TP SIGHUP .TP SIGTERM 最後にファイル全体を書き込んだ後、現在のバッファを変更した場合、 後に復旧できるように編集中のファイルを保存しようと試みます。 詳細は、 .I \&vi/ex リファレンスマニュアルの ``Recovery'' のセクションを参照して下さい。 .TP SIGINT この割り込みが発生した場合、現在の操作は停止され、コマンドレベルに戻ります。 テキスト入力中にこの割り込みが発生した場合は、テキスト入力を正常に終了させた かのように、ファイルに入力中のテキストを書き込みます。 .TP SIGWINCH スクリーンのサイズ変更を行ないます。 詳しくは、 .I \&vi/ex リファレンスマニュアルの ``Sizing the Screen'' のセクションを参照して下さい。 .TP SIGCONT .TP SIGQUIT .TP SIGTSTP .I \&vi/ex はこれらのシグナルを無視します。 .SH 関連ファイル .TP /bin/sh デフォルトのユーザシェル。 .TP /etc/vi.exrc システム全体における vi のスタートアップファイル。 .TP /tmp テンポラリファイルのディレクトリ。 .TP /var/tmp/vi.recover デフォルトの復元ファイルのディレクトリ。 .TP $HOME/.nexrc ユーザのホームディレクトリにあるスタートアップファイルで、 1 番最初に読まれるファイル。 .TP $HOME/.exrc ユーザのホームディレクトリにあるスタートアップファイルで、 2 番目に読まれるファイル。 .TP \&.nexrc ローカルディレクトリにあるスタートアップファイルで、 1 番最初に読まれるファイル。 .TP \&.exrc ローカルディレクトリにあるスタートアップファイルで、 2 番目に読まれるファイル。 .SH 関連項目 .IR ctags (1), .IR more (3), .IR curses (3), .IR dbopen (3) .sp ``Vi Quick Reference'' カード。 .sp ``An Introduction to Display Editing with Vi'' のセクション。 4.3BSD と 4.4BSD のマニュアルセットの ``UNIX User's Manual Supplementary Documents'' の中で見つかります。 これは、手に入るものの中で .I \&vi スクリーンエディタの入門書にもっとも近いものです。 .sp ``Ex Reference Manual (Version 3.7)'' のセクション。 4.3BSD と 4.4BSD のマニュアルセットの ``UNIX User's Manual Supplementary Documents'' の中で見つかります。 これは、 .I \&ex エディタのドキュメントで、伝統的な 4BSD と System V で配布された 最終的なリファレンスです。 .sp ``Edit: A tutorial'' セクション。 4.3BSD のマニュアルセットの ``UNIX User's Manual Supplementary Documents'' の中で見つかります。 これは、 .I \&ex スクリーンエディタの単純な版の入門用ドキュメントです。 .sp ``Ex/Vi Reference Manual'' セクション。 4.4BSD のマニュアルセットの ``UNIX User's Manual Supplementary Documents'' の中で見つかります。 これは、 .I \&nex/nvi テキストエディタのために 4.4BSD と 4.4BSD-Lite で配布された 最終的なリファレンスです。 .PP .I nex/nvi ドキュメントの .I roff ソース。 これらは .I nex/nvi のソースコードが置かれているディレクトリの .I nvi/USD.doc ディレクトリの中に一緒に配布されています。 .sp .I nex/nvi のソースコードが置かれている .I nvi/docs/internals ディレクトリの -``autowrite'', ``input'', ``quoting'' , ``structures'' +``autowrite'', ``input'', ``quoting'', ``structures'' といったファイル群。 .SH 歴史 .I ex/vi エディタに代わる .I nex/nvi コマンドは、4.4BSD から登場しました。 .SH 規格 .I \&nex/nvi は、IEEE Std1003.2 (``POSIX'') に近いです。 この文書は、幾つかの点で従来の .I ex/vi の実際の動作とは異なります。 .I \&nex/nvi には、両方の面に則って作られたという違いがあります。 diff --git a/ja_JP.eucJP/man/man6/sail.6 b/ja_JP.eucJP/man/man6/sail.6 index f9049da705..63761fcbd5 100644 --- a/ja_JP.eucJP/man/man6/sail.6 +++ b/ja_JP.eucJP/man/man6/sail.6 @@ -1,1044 +1,1048 @@ .\" Copyright (c) 1988, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)sail.6 8.2 (Berkeley) 12/30/93 .\" %Id: sail.6,v 1.4 1997/02/22 14:46:58 peter Exp % .\" .\" jpman %Id: sail.6,v 1.4 1999/01/16 17:11:32 kuma Stab % .\" .\" WORD: wooden ships and iron men 「帆船の戦い」[sail.6] .\" WORD: captain 艦長[sail.6] .\" WORD: weather gage 風上(hold the weather gage...風上を取る)[sail.6] .\" WORD: Version 7 Version 7(固有名詞扱い) .\" WORD: turn ターン(ゲーム用語) .\" WORD: square rigger 横帆船[sail.6] .\" WORD: broadside 片舷/片舷斉射[sail.6] .\" WORD: bow 船首[sail.6] .\" WORD: stern 船尾[sail.6] .\" WORD: rake 縦撃[sail.6] .\" WORD: carronade カロネード砲[sail.6] .\" .TH SAIL 6 "December 30, 1993" .UC 4 .SH 名称 -sail \- マルチユーザー版ゲーム「帆船の戦い」 +sail \- マルチユーザ版ゲーム「帆船の戦い」 .SH 書式 .B sail [ .B \-s [ .B \-l ] ] [ .B \-x ] [ .B \-b ] [ .B num ] .br .fi .SH 解説 -.I Sail +.I sail は、もともとは、S. Craig Taylor によって開発された、アバロンヒル社の戦闘帆船 ボードゲームのコンピュータ版です。 .PP .I Sail のプレイヤーは、旧式の戦艦の指揮をとり他のプレイヤーやコンピュータと 戦います。 プレイヤーは、ゲームの中に記録された数多くの歴史上の海戦の中の一つを再現しても よいし、空想上の戦闘を選ぶこともできます。 .PP -.I Sail +.I sail 海軍の艦長として、プレイヤーは自分の艦の活動については完全な管理ができます。 プレイヤーは全ての操作を命令し、帆装を変更し、そして片舷斉射の恐ろしい破壊力 を解き放つ正しい瞬間を判断しなければなりません。 更に、敵と戦うことに加えて、プレイヤーは、風と海の力を味方につけて -自分のために働かせ -なければなりません。 -帆船時代の多くの海戦の勝敗は、ある一人の艦長の'風上'をとる能力により +自分のために働かせなければなりません。 +帆船時代の多くの海戦の勝敗は、ある一人の艦長の '風上' をとる能力により 決せられました。 .PP フラグは: .TP .B \-s -上位10位までの船員の名前と艦を表示します。 +上位 10 位までの船員の名前と艦を表示します。 .TP .B \-l -ログイン名を表示します。\fB-s\fPとともに指定したときだけ有効です。 +ログイン名を表示します。\fB-s\fP とともに指定したときだけ有効です。 .TP .B \-x どの艦にするかという選択を求められるかわりに、 最初に利用できる艦でプレイします。 .\"X 「を選択して」だと、プレイヤー自身の選択操作が必要に思えるので .TP .B \-b ベルを鳴らしません。 .SH 実装 -.I Sail +.I sail は実は二つのプログラムを一つにまとめたものです。 各プレイヤーは彼自身の船を動作させるプロセスを起動します。 -それに加えて、(最初のプレイヤーによって)起動された +それに加えて、(最初のプレイヤーによって) 起動された .I ドライバ[driver] プロセスが、コンピュータ船を動作させ、 さらに全体にわたる記録計算を引き受けて処理します。 .PP .I ドライバ プロセスは、それが制御している全ての船の動きを計算しなければならないので、 より多くの船をコンピュータがプレイすればするほど、ゲームはよりゆっくり進行 しているように見えるでしょう。 .PP もし、あるプレイヤーが現在進行中のゲームに参加したとすると、 -他のプレイヤーと同期して同じ速度になるでしょう(皆にすれば +他のプレイヤーと同期して同じ速度になるでしょう (皆にすれば 幾分か遅くなります)。 .\"X 一人参加することで、今までプレイしていた人も含めてみんなの状態が .\"X どうなるかを説明しようとしているのでしょう。 そして、その後、彼は他のプレイヤーと同じ速度でプレイするでしょう。 .\"X play along with the rest ... ここで「他のプレイヤーと一緒に」という .\"X 必要はないはず。ならば、「他のプレイヤーと同様に」という意味だろう。 .PP -マルチユーザゲームを Version 7 UNIX\(emこれは -.I Sail -がその上で最初に書かれたオペレーティングシステムでした\(emに実装するためには、 +マルチユーザゲームを Version 7 UNIX \(em これは +.I sail +がその上で最初に書かれたオペレーティングシステムでした \(em +に実装するためには、 通信しているプロセスがメッセージを読み書きする場所として共通の一時ファイル を使う必要がありました。 それに加えて、共有ファイルへの排他的アクセスを保証するため、 ロック機構が供給されなければなりませんでした。 例えば、 .I Sail -はシナリオ21については、/tmp/#sailsink.21という名前の一時ファイルを使います。 +はシナリオ 21 については、 +/tmp/#sailsink.21 という名前の一時ファイルを使います。 そして、他のシナリオに対してはそれに類するファイル名を使用します。 一時ファイルへの排他的アクセスを供給するために、 -.I Sail +.I sail は Jeff Cohen 作の "pubcaves" と呼ばれる古いゲームから盗んだテクニックを 使っています。 -"/tmp/#saillock.??"という名前のファイル -("??" はゲームのシナリオ番号に対応しています)への +"/tmp/#saillock.??" という名前のファイル +("??" はゲームのシナリオ番号に対応しています) への リンクを作成できるまでの間、プロセスが次のようなループ .br .sp .ce 2 for (n = 0; link(sync_file, sync_lock) < 0 && n < 30; n++) sleep(2); .br .sp でビジーウェイトをしています。 UNIX はリンクが唯一つのファイル をポイントするものであることを保証しているので、リンクに成功したプロセスは 一時ファイルへの排他的アクセスを獲得します。 .PP この仕組みが実際に機能するかどうかについては、さらなる考察が必要でしょう。 .\"X is open to speculation ... 「熟慮しないまま放ってある」だと思う。 -それというのも、マシン ucbmiro (=miro.berkeley.edu の BITNET アドレス)が +それというのも、マシン ucbmiro (=miro.berkeley.edu の BITNET アドレス) が 暴走してリブートしたとき、ファイルシステム検査プログラムによって、 -.I Sail +.I sail の一時ファイルとそれがリンクしているファイルの間に、3 個のリンクが発見され ましたから。 .SH プレイヤープロセスとドライバプロセスとを分離した結果 プレイヤー達が移動や発砲などの全体の興味に関わる重要な行動をするときには、 ドライバプロセスはゲーム中の他の船の行動とその行動とを 調整しなければなりません。 例えば、もしあるプレイヤーがある方向に移動したい場合には、彼の 船を移動させることをドライバプロセスに要求するメッセージを、 一時ファイルに書き込まなければ なりません。 ターンのたびに、ドライバプロセスはプレイヤー達から送られたメッセージを 全て読んで、起こったことを決定します。 それから、ドライバプロセスは変数の新しい値などを一時ファイル に書き戻します。 .PP この通信がゲームに及ぼす最も顕著な効果は移動の遅れです。 -もしもプレイヤーが彼の船の移動をタイプして、リターンキイを叩いたとしましょう。 +もしもプレイヤーが彼の船の移動をタイプして、リターンキーを叩いたとしましょう。 次に何が起こるでしょうか? プレイヤープロセスは一時ファイルに書き込むべきメッセージをバッファに 溜込みます。 およそ 7 秒おきに、プレイヤープロセスは一時ファイルへの排他的アクセス を獲得して、そのバッファを一時ファイルに書き出します。 ドライバプロセスは非同期的に動作しています。これは、移動コマンドを 読み込み、そのコマンドを処理し、そしてその結果を書き出さなければなりません。 -これには、一時ファイルへの2回の排他的アクセスを必要とします。 -最後に、プレイヤープロセスがもう1回の更新にやっと取り掛かる頃、 +これには、一時ファイルへの 2 回の排他的アクセスを必要とします。 +最後に、プレイヤープロセスがもう 1 回の更新にやっと取り掛かる頃、 移動の結果がスクリーン上に表示されます。 それゆえ、プレイヤーが自分が行なった移動結果を知るまでに、 移動それぞれにつき、一時ファイルへ排他的アクセス 4 回 -(1回の排他的アクセスに7秒から21秒の間のどれくらいの時間を要するかは、 -非同期性に依存しています)が要求されます。 +(1 回の排他的アクセスに 7 秒から 21 秒の間のどれくらいの時間を要するかは、 +非同期性に依存しています) が要求されます。 .PP 実際は、遅れはそう見えるほどには厄介なものではありません。 移動には、パイプライン処理の余地があります。 プレイヤーは1番めの移動メッセージを書き込んだあと、2番目の移動コマンドを 入力できます。 -1番目のメッセージは、一時ファイルの中でドライバプロセスの読み込みを +1 番目のメッセージは、一時ファイルの中でドライバプロセスの読み込みを 待ちます。そして、 -2番目のメッセージは、ファイルバッファにあってファイルに書き出されるのを待って +2 番目のメッセージは、ファイルバッファにあってファイルに書き出されるのを待って います。 そういうわけで、常に1回だけターンを先行して移動コマンドを打ち込むことで、 プレイヤーはじゅうぶん素早く帆走することができます。 .PP もしプレイヤーが 7 秒間隔の更新 2 回の間に数個の移動コマンドを 打ち込んだとすると、ドライバプロセスに見えるのは最後の移動コマンドだけです。 同じ更新期間中の複数の移動コマンドは、ある意味で互いに上書きし合います。 .SH SAILの歴史 筆者は -.I Sail +.I sail の最初のバージョンを 1980 年の秋に PDP 11/70 の上で書きました。 言うまでもなく、コードは恐ろしいもので、 移植可能とはとうてい言えるものでもなく、そして動きもしませんでした。 プログラムは、全くモジュール化されていない上に、数行おきに fseek() や -fwrite()がありました。 +fwrite() がありました。 トップダウン手法による徹底的な書き換えによって、1981 年までに筆者は最初の 機能するバージョンを仕上げました。 .\"X got .... up の up は「仕上げた」というニュアンスかと。 片舷斉射の発射や方角の発見に関していくつかのやっかいなバグがありました。 ところで、 -.I Sail +.I sail は浮動小数点を使っていません。それで、方角についてのルーチンは、すこし 手が込んだものになっています。 Ed Wangは、1981 年に angle() ルーチンをより間違いのないものに書き換えました。 (しかしながら、それは、まだ完全には機能していません)。 -そして、彼はゲームの始めで(最初に利用可能な船の代わりに)プレイヤーが +そして、彼はゲームの始めで (最初に利用可能な船の代わりに) プレイヤーが 自分の望む船を選べるようなコードを加えました。 .PP -ハッピィ艦長(Craig Leres)が、 -.I Sail +ハッピィ艦長 (Craig Leres) が、 +.I sail を移植可能にすることに初めて責任をもちました。 ちなみに、これはとても難しい仕事でした。2 や 10 といった定数が コードにはとても頻繁に現れます。また、 -.I Sail -の中で「Riggle 記念構造体("Dave Riggle":筆者)」を使ってしまった +.I sail +の中で「Riggle 記念構造体 ("Dave Riggle":筆者)」を使ってしまった ということでも名前を売ってしまったぐらいですし。 筆者の構造体参照の多くはとても長いので、ラインプリンタの印字ページを はみ出してしまいます。もし、笑わないと約束して下さるなら、ここに一例を お見せしましょう。 .br .sp .ce specs[scene[flog.fgamenum].ship[flog.fshipnum].shipnum].pts .br .sp .PP -.I Sail +.I sail には、1983 年の夏と秋に最も徹底的な 4 回目の書き換えがなされました。 Ed Wang はコードを殆ど何もない状態から書き換えモジュール化しました (記念碑的な偉業です)。 彼は、多くの新しいバグを導入したにもかかわらず、最終的な結果は -とても奇麗で、(?)より速いものになりました。彼は、ウィンドウ移動コマンド +とても奇麗で、(?) より速いものになりました。彼は、ウィンドウ移動コマンド と艦船発見コマンドを加えました。 .SH 歴史的情報 -古い横帆船[Square Rigger]は、複雑な帆走が可能で、とても操作しやすい船です。 +古い横帆船 [Square Rigger] は、複雑な帆走が可能で、とても操作しやすい船です。 これら横帆船の唯一つの弱点は、風上にぎりぎりに間切って帆走できない ことです。 木造船の設計は大砲を左舷と右舷の方向に向けることだけを考慮していました。 .\"X 船の設計が考慮するのは大砲ではなく、大砲の狙いの付け方のはず。 -少数の小さな大砲(通常 6 ポンド砲か 9 ポンド砲)だけが前方に狙いをつける +少数の小さな大砲 (通常 6 ポンド砲か 9 ポンド砲) だけが前方に狙いをつける ことができました。しかし、それらの砲は、68 門の 24 ポンド砲か 32 ポンド砲 からなる舷側砲の片舷斉射に比べれば、その効果は小さいものでした。 大砲は大体つぎのような方向に向けられます。 .nf \\ b---------------- ---0 \\ \\ - \\ 10の範囲まで(砲丸[round shot]の場合) + \\ 10の範囲まで (砲丸 [round shot] の場合) \\ \\ \\ .fi 片舷斉射が敵艦の縦方向に打ち抜かれたときには、興味深い現象が起きました。 -砲弾は甲板[こうはん]に沿ってはねまわり数倍の損害を加えがちでした。 -この現象は縦射[rake]と呼ばれました。船の船首[bow]は非常に強固で船尾[stern] -より小さな標的だったので、船尾縦射[stern rake](船尾より船首の方向の着弾) -は船首縦射[bow rake]によるよりも大きな損害を与えました。 +砲弾は甲板 [こうはん] に沿ってはねまわり数倍の損害を加えがちでした。 +この現象は縦射 [rake] と呼ばれました。船の船首 [bow] は非常に強固で船尾 [stern] +より小さな標的だったので、船尾縦射 [stern rake](船尾より船首の方向の着弾) +は船首縦射 [bow rake] によるよりも大きな損害を与えました。 .nf b - 00 ---- 船尾縦射[stern rake]! + 00 ---- 船尾縦射 [stern rake]! a .fi -大抵の船は、カロネード砲[carronade]を装備していました。この大砲は、 +大抵の船は、カロネード砲 [carronade] を装備していました。この大砲は、 非常に大きく、射程距離の短いものでした。 -アメリカの艦船にはフランス革命から 1812 年の戦争(米英戦争)まで、 +アメリカの艦船にはフランス革命から 1812 年の戦争 (米英戦争) まで、 .\"X the revolution はフランス革命でいいと思います。確かフランス革命後の .\"X 英仏対立にアメリカが一口噛んでいたはず。 ほぼすべての艦船に カロネード砲が装備されていました。 .PP -.I Sail +.I sail で扱っている時代は、ほぼ 1770 年代から 1815 年にナポレオンのフランス支配が 終るまでです。 帆船時代に関しては、素晴らしい本が多くあります。筆者の好きな作家は Captain Frederick Marryat です。 もっと現代の作家達の中では、C.S. Forester や Alexander Kent です。 .PP 艦船には、装備された兵器で区別される分類があります。 -どの艦隊でもメインマストをなす艦船は、戦列艦[Ship of the Line]、即ち、 -戦列をなす戦艦[Line of Battle Ship]です。 +どの艦隊でもメインマストをなす艦船は、戦列艦 [Ship of the Line]、即ち、 +戦列をなす戦艦 [Line of Battle Ship] です。 これらの艦船がこのように名付けられた理由は、これらが大きな列 を作って交戦するからです。 彼らは、互いに助け合えるぐらい近くに位置しますが、それでも、 -どの艦もその両舷側の片舷斉射[broadside]を +どの艦もその両舷側の片舷斉射 [broadside] を 発射できるようにします。 -現代の「遠洋定期船[ocean liner]」とか「定期船[liner]」、 -そして「戦艦[battleship]」という言葉は -「戦列艦[Ship of the Line]」から派生したものです。 -最もありふれた分類は、74砲門で2層甲板の戦列艦です。 -2層の砲列甲板には普通18ポンド砲か24ポンド砲が搭載してありました。 +現代の「遠洋定期船 [ocean liner]」とか「定期船 [liner]」、 +そして「戦艦 [battleship]」という言葉は +「戦列艦 [Ship of the Line]」から派生したものです。 +最もありふれた分類は、74 砲門で 2 層甲板の戦列艦です。 +2 層の砲列甲板には普通 18 ポンド砲か 24 ポンド砲が搭載してありました。 .PP -第1に来る分類は、艦隊の誇りとなる船です。 -これらの艦船は、80砲門から136砲門の大砲を搭載した巨大な3層甲板戦列艦です。 -3層の大砲は、普通18ポンド砲、24ポンド砲、そして32ポンド砲でした。 +第 1 に来る分類は、艦隊の誇りとなる船です。 +これらの艦船は、80 砲門から 136 砲門の大砲を搭載した巨大な 3 層甲板戦列艦です。 +3 層の大砲は、普通 18 ポンド砲、24 ポンド砲、そして 32 ポンド砲でした。 これらの大砲は、この順番で上から下に搭載されていました。 .PP 他のさまざまな船が次の分類になります。 -これらの戦艦は殆んど全て「レイジー[razee]」、すなわち、甲板を1層切り落とした +これらの戦艦は殆んど全て「レイジー[razee]」、すなわち、甲板を 1 層切り落とした 戦列艦です。 -これらの戦列艦は、40-64砲門の大砲を搭載した、フリゲート艦[frigate]と戦列艦 +これらの戦列艦は、40-64 砲門の大砲を搭載した、 +フリゲート艦 [frigate] と戦列艦 の貧弱なあいのこです。 .\"X a poor cross ... 粗末なあいのこ?貧弱でどうかな? レイジーには、フリゲート艦のスピードもなければ、戦列艦の火力も ありませんでした。 .PP その次に来る分類が、「艦隊の目」です。 -フリゲート艦[frigate]は32砲門から44砲門の大砲をどこにでも搭載していて +フリゲート艦 [frigate] は 32 砲門から 44 砲門の大砲をどこにでも搭載していて 大きさはさまざまです。 これらは、大変便利な船です。 フリゲート艦は、より大きな船に対しては航行速度でまさり、より小さな船に 対しては火力でまさります。 -フリゲート艦は、ずっと大きな74砲門の戦列艦がやるように戦列を組んで +フリゲート艦は、ずっと大きな 74 砲門の戦列艦がやるように戦列を組んで 戦ったりはしませんでした。 その代わり、これらの船は、敵の背後をおびやかし、傷ついて戦えなくなった船を だ捕しました。 これらの船は、艦隊から離れて行なう任務で、はるかに効果を発揮しました。 例えば、長い航海を短縮するとか、ボートによる戦闘を切り開くとかの任務です。 .\"X boat action ... ??なんか専門用語っポイですな。わからないので .\"X そのままにしときます。 これらは、強力な一撃のあと、ずばやく引くことができました。 .PP -最後に来る分類には、コルベット艦[corvette](平甲板1段砲装の帆装戦艦)、 -スループ帆船[sloop](1本マストの縦帆船)、そして -ブリッグ帆船[brig](2本マストの横帆船)があります。 -これらは、一般的には20砲門以下の大砲を搭載しているより小さな船です。 -コルベット艦は、フリゲート艦よりほんのちょっと小さいだけなので30砲門までの +最後に来る分類には、コルベット艦 [corvette](平甲板 1 段砲装の帆装戦艦)、 +スループ帆船 [sloop](1 本マストの縦帆船)、そして +ブリッグ帆船 [brig](2 本マストの横帆船) があります。 +これらは、一般的には 20 砲門以下の大砲を搭載しているより小さな船です。 +コルベット艦は、フリゲート艦よりほんのちょっと小さいだけなので 30 砲門までの 大砲を載せられたでしょう。 スループ帆船は急送公文書や船客を搬送するのに使われました。 ブリッグ帆船は陸地で囲まれた湖のために建造されたものです。 .\"X you は特定の読者を指すのではなく一般的な人間を指すと思う。 .SH SAIL 固有の詳細 -.I Sail +.I sail では、船は 2 文字で表されます。 -1番目の文字は、船首[bow]を表します。もう1方の文字は、船尾[stern]を表します。 +1 番目の文字は、船首 [bow] を表します。もう 1 方の文字は、 +船尾 [stern] を表します。 .\" WORD: nationarities 船籍(国籍とちゃうか?)[sail.6] 船には、船籍と番号があります。 -ある船籍の最初の船は番号0です。2番目の船は番号1、などなど。 +ある船籍の最初の船は番号 0 です。2 番目の船は番号 1、などなど。 したがって、ゲームの最初の英国船は「b0」と印字されます。 -2番目の英国野郎は「b1」、そして、5番目のスペイン紳士は +2番目の英国野郎は「b1」、そして、5 番目のスペイン紳士は 「s4」となります。 .PP -船は、戦闘帆[Battle Sail]と呼ばれている通常の帆装をつけられます。 -また、それに加えて総帆[Full Sail]と呼ばれる全帆を結びつけられます。 +船は、戦闘帆 [Battle Sail] と呼ばれている通常の帆装をつけられます。 +また、それに加えて総帆 [Full Sail] と呼ばれる全帆を結びつけられます。 .\"X extra canvas ... Battle Sail 状態に加えて帆をつけて Full Sail になる .\"X ということと読んだ> extra 総帆の船は本当に美しい眺めです。 そして、総帆の船は戦闘帆装の船よりずっと速く航行できます。 総帆装についての唯一の問題は、帆と索具に非常に大きな応力がかかるので、 狙い澄ました砲丸は、帆をちりじりに引き裂いてしまうことができるということです。 これにひきかえ、ゆるんだ帆には、砲丸は小さな穴しか開けられません。 -この理由で、総帆装をつけた船では、索具への損傷は2倍になります。 +この理由で、総帆装をつけた船では、索具への損傷は 2 倍になります。 このことで、総帆を使うことを思いとどまらないで下さい。 筆者は、総帆を戦闘たけなわとなるまで維持するのが好きです。 総帆装の船には船籍として大文字を設定します。 例えば、蛙食いのフランス野郎「f0」が総帆であれば、「F0」と印字されます。 .PP -船が、傾いた廃船[listing hulk]になるまで叩き潰されたときは、 +船が、傾いた廃船 [listing hulk] になるまで叩き潰されたときは、 最後まで残っていた者が 「旗を下ろして降伏」します。 この儀式は、船の正式な降伏です。 降伏した船の船籍文字は、「!」として印字されます。 例えば、最後の例のフランス野郎は、すぐに「!0」になるでしょう。 .PP 船が傾いた廃船の段階に至ったときには、 船が出火したり沈没したりする可能性が確率的に生じます。 沈みつつある船は、その船籍として「~」が印字されます。 出火していて、今にも爆発しそうなときには、「#」が印字されます。 .PP だ捕された船はだ捕船回航員の船籍になります。 それゆえ、もしアメリカ船が英国船をだ捕したならば、英国船の船籍として、「a」 が印字されます。 更に、船の番号は最初の番号しだいで「&」,「'」, 「(」, ,「)」, 「*」, 及び 「+」 につけかえられます。 例えば、アメリカ船にだ捕された「b0」は、「a&」となります。 フランス野郎にだ捕された「s4」は「f*」となります。 .PP 究極の例は、もちろん、アメリカ船に捕獲された爆発しそうな イギリス野郎です:「#&」 .SH 移動 多くの人にとって、移動は -.I Sail +.I sail の最も困惑させられる部分でしょう。 -艦船は8方向を向くことができます: +艦船は 8 方向を向くことができます: .nf 0 0 0 b b b0 b b b 0b b 0 0 0 .fi -艦艇が舵を切ると、その船の「船尾[stern]」が動きます。 -「船首[bow]」は、動きません。 +艦艇が舵を切ると、その船の「船尾 [stern]」が動きます。 +「船首 [bow]」は、動きません。 (風が凪いでさえいなければ)、風には関係なく船はいつでも舵を切ることができます。 すべての船は、船足を失ったときには漂流してしまいます。 もし、船が 2 ターンの間に全く前進しなければ、 その船は漂流し始めます。 -もし船が漂流し始めた場合、もし「面舵[right turn]」を切るか、 -「取舵[left turn]」を切る以外のことをしようとしているなら、 +もし船が漂流し始めた場合、もし「面舵 [right turn]」を切るか、 +「取舵 [left turn]」を切る以外のことをしようとしているなら、 舵を切る前にまず前進しなければなりません。 ちなみに、面舵や取舵を切ることはいつでも可能です。 .\"X if it plans ... は、前の move forward before it turns に掛かるの .\"X でしょう。 .PP -.I Sail +.I sail の移動コマンドは、いくつかの前進と旋回からなる文字列です。 例としては、「l3」があります。これは、船に取舵を切らせて、 -3スペース分 +3 スペース分 前進させます。 -上図では、「b0」は7回連続して取舵を切っています。 -.I Sail -が移動入力を催促するときには、データ取り込みのための3文字を印字します。 +上図では、「b0」は 7 回連続して取舵を切っています。 +.I sail +が移動入力を催促するときには、データ取り込みのための 3 文字を印字します。 例えば、 .nf move (7, 4): .fi 最初の数字は、旋回を含めて、移動できる最大数です。 -2番めの数字は、可能な旋回の最大数です。 +2 番めの数字は、可能な旋回の最大数です。 時々、数字の間に引用符号の「'」が印字されます。 もし引用符号があれば、それは、船が漂流していることを意味しています。 このとき、舵を切る前に船足を取り戻すため前進しなければなりません (上の説明を参照のこと)。 上述の例で可能な移動のいくつかは、次のようなものです: .nf move (7, 4): 7 move (7, 4): 1 move (7, 4): d /* 漂流、または 何もしない */ move (7, 4): 6r move (7, 4): 5r1 move (7, 4): 4r1r move (7, 4): l1r1r2 move (7, 4): 1r1r1r1 .fi 横帆船は、風上に向かって帆走することには全く惨めなほど 機能を果たしませんでした。 そのため、移動コマンド列のどこかで風上を向いてしまったら、 移動はそこで止まってしまいます。例えば、 .nf move (7, 4): l1l4 Movement Error; Helm: l1l ------ (Helm = 舵輪、舵の動き) .fi そのうえ、旋回を行なうときにはいつでも、移動の許容限度は最小に -まで低下します(残っているものといえば、新しい態勢で持てるはずのものです)。 +まで低下します (残っているものといえば、新しい態勢で持てるはずのものです)。 要するに、もし風上によりぎりぎりに間切って舵を切れば、 「move」プロンプトに表示される全許容量を帆走することは、 全くできそうにありません。 .PP 昔の帆船の船長たちは、風について常に気を配っていなければなりませんでした。 -.I Sail +.I sail の艦長達も、全く同じです。 船の移動する能力は、風に対する態勢に依存しています。 -可能な角度のうち最善のものは、船尾から45度の方角から風を受けることです。 +可能な角度のうち最善のものは、船尾から 45 度の方角から風を受けることです。 即ち、船尾からちょっとずれた方角からです。 スクリーンの脇に現れる指示によって、風に対する方位全てに対する、その船に 可能な移動を知ることができます。 これは、まず、戦闘帆での速度を示し、 次に、総帆での速度を括弧内に示します。 .nf 0 1(2) \\|/ -^-3(6) /|\\ | 4(7) 3(6) .fi 船の船首(「^」で表します)が上を向いており、風がページの下から上へ 吹いているとしましょう。 -1番下の「3(6)」という数字は、その状況での戦闘帆と総帆での速度を表すでしょう。 -もし、風が(後方)45度から吹いていれば、は「4(7)」移動できます。 -もし、風が帆桁方向から(横風)であれば、「3(6)」です。 +1 番下の「3(6)」という数字は、その状況での戦闘帆と総帆での速度を表すでしょう。 +もし、風が (後方) 45 度から吹いていれば、は「4(7)」移動できます。 +もし、風が帆桁方向から (横風) であれば、「3(6)」です。 もし、風が船首からちょっとずれた方向からであれば、 「1(2)」だけしか移動できません。 風に対面してしまったら、全く移動できません。 風に対面してしまった船は、「枷をかけられた」と言われていました。 .SH 風速と風向き 風速と風向きは画面の脇に小さな風信器として表示されます。 風信器の真中の数字は、風速を表します。 -そして、+から-への向きは、風向きを示します。 -風は+符号(高気圧)から-符号(低気圧)への向きに吹きます。 +そして、+ から - への向きは、風向きを示します。 +風は+符号 (高気圧) から - 符号 (低気圧) への向きに吹きます。 例えば、 .nf | 3 + .fi .PP 風速は、 0 = 静穏 [becalmed]、 1 = 軽風 [light breeze]、 2 = 和風 [moderate breeze]、 3 = 疾風 [fresh breeze]、 4 = 雄風 [strong breeze]、 5 = 疾強風 [gale]、 6 = 全強風 [full gale]、 7 = ぐ風 [hurricane]。 .\" Cf. Beaufort wind scale (Tetsuro Furuya : Translator). ぐ風があらわれたら、全艦船が壊滅してしまいます。 .SH 鈎錨による引っかけと絡まり もし、2隻の船が衝突したら、彼らは互いに絡まってしまう危険を冒しています。 -これは、「絡まり[fouling]」と呼ばれています。 +これは、「絡まり [fouling]」と呼ばれています。 絡まった船は、一緒にくっついてしまい、どちらも動けません。 双方が望む場合、彼らは絡まりを解除することもできます。 乗船乱入団を他の船に送り出せるのは、敵艦を絡めたか鈎錨で引っかけたときに 限られます。 .PP -船は四つ爪錨[grapnel]を他の船の索具[rigging]に投げつけることにより +船は四つ爪錨 [grapnel] を他の船の索具 [rigging] に投げつけることにより 引っかけることができます。 .PP 船が保持している絡まりと鈎錨の引っかけの数は画面の右上に表示されます。 .SH 乗船乱入 乗船乱入は、人命の点からすると非常に費用のかかる冒険でした。 -.I Sail +.I sail では、乗船乱入団が作られるのは次の場合です。 つまり、敵艦に乗船乱入するためか、攻撃に対抗して自分自身の艦を守るため かのいずれかです。 防衛のための乗船乱入団として組織された人々は組織されぬままの人々より2倍も 激しく自艦を守って戦います。 .PP 乗船乱入団の乗船乱入攻撃の強さは、送られる乗員の質と数により決まります。 .SH 乗員の質 英国の船乗りは、彼らの航行能力の優秀さで世界中に盛名を馳せました。 しかし、実は、世界一の船員は、アメリカの船員だったのです。 -何故かといえば、アメリカ海軍は、王立海軍の賃金の2倍を支払ったので、 +何故かといえば、アメリカ海軍は、王立海軍の賃金の 2 倍を支払ったので、 海の好きな英国の船員は数千の単位でアメリカへ逃亡したからです。 .PP -.I Sail -では、乗員の質は、5つのエネルギーレベルに量子化されます。 -「精鋭[Elite]」な乗員は、他の全ての船乗りに対して、 +.I sail +では、乗員の質は、5 つのエネルギーレベルに量子化されます。 +「精鋭 [Elite]」な乗員は、他の全ての船乗りに対して、 射撃能力においても格闘能力においても凌駕できます。 -「一流[Crack]」な乗員が、次に来ます。 -「普通[Mandane]」な乗員は平均的です。 -「未熟[Green]」な乗員と「反抗的[Mutinous]」な乗員は、平均以下です。 +「一流 [Crack]」な乗員が、次に来ます。 +「普通 [Mandane]」な乗員は平均的です。 +「未熟 [Green]」な乗員と「反抗的 [Mutinous]」な乗員は、平均以下です。 上手な目の子勘定としては、「一流」と「精鋭」な乗員は 「普通」な乗員に比して片舷斉射あたり 1 発余分に命中させます。 「未熟」な乗員にはあまり多くを期待しないことです。 .SH 舷側砲[broadsides] -各舷側砲[broadsides]には、次の 4 種類の砲弾を装填できます: -ぶどう弾[grape]、鎖弾[chain]、砲丸[round]、2連発[double]。 -大砲[gun]とカロネード砲[carronade]を、左舷[port]と右舷[starboard]の両砲郭に +各舷側砲 [broadsides] には、次の 4 種類の砲弾を装填できます: +ぶどう弾 [grape]、鎖弾 [chain]、砲丸 [round]、2 連発 [double]。 +大砲 [gun] とカロネード砲 [carronade] を、 +左舷 [port] と右舷 [starboard] の両砲郭に 搭載できます。 -カロネード砲[carronade]は2の射程距離しかありません。 +カロネード砲 [carronade] は 2 の射程距離しかありません。 そのため、カロネード砲を発射できるほど近付かなければなりません。 -他の船の船殻[hull]を砲撃するか、索具[rigging]を砲撃するかを +他の船の船殻 [hull] を砲撃するか、索具 [rigging] を砲撃するかを 選択することができます。 もし船の距離が 6 よりも遠ければ、読者は索具を砲撃できるだけです。 .PP 砲弾の型とその長所は: .SH 砲丸[round] 10 の射程距離。船殻と索具のいずれの砲撃にも適しています。 .SH 2 連発[double] 1 の射程距離。船殻と索具のいずれの砲撃にも非常に適しています。 2 連発は、装填するのに 2 ターンが必要です。 .SH 鎖弾[chain] 3 の射程距離。 索具を粉砕してしまうのに特に優れています。 しかし、船殻や大砲に損害を加えることはできません。 .SH ぶどう弾[grape] 1 の射程距離。 たまに、敵乗員に圧倒的な効果を示します。 .PP スクリーンの脇には、自分の船に関する極めて重要な情報が表示されます: .nf Load D! R! Hull 9 Crew 4 4 2 Guns 4 4 Carr 2 2 Rigg 5 5 5 5 .fi -「Load(装填)」は、左舷と右舷それぞれの砲に +「Load (装填)」は、左舷と右舷それぞれの砲に どのような砲弾が装填されているかを示します。 砲弾の後の「!」はそれが最初の片舷斉射であることを示します。 最初の片舷斉射は、戦闘の前に、そして甲板が血で真っ赤に染まる前に、 注意深く装填されています。 その結果、最初の片舷斉射は、後で装填したときの片舷斉射より若干効果的です。 砲弾の型のあとの「*」は、砲側員がまだその砲弾を装填中で、 まだ発砲できないことを示します。 -「Hull(船殻)」は、どれくらいの船殻が残されているかを示します。 -「Crew(乗員)」は、3つの区画ごとの乗員を示します。 +「Hull (船殻)」は、どれくらいの船殻が残されているかを示します。 +「Crew (乗員)」は、3 つの区画ごとの乗員を示します。 乗員が死ぬにつれて、読者は砲撃力を失なっていきます。 -「Guns(大砲)」と「Carr(カロネード砲)」は、左舷と右舷の +「Guns (大砲)」と「Carr (カロネード砲)」は、左舷と右舷の 大砲を示します。 大砲を失うと、それだけ砲撃力を失います。 -「Rigg(索具)」は、3本マストや4本マストにどれくらいの索具が残って +「Rigg (索具)」は、3 本マストや 4 本マストにどれくらいの索具が残って いるかを示します。 索具が打ち払われるにつれて、機動力が失われてゆきます。 .SH 砲撃の効果 船が雷のような大音響をとどろかせて片舷の砲を発射するときは、とても 劇的です。 しかし、ただ行き当たりばったりに片舷斉射を行なっても、 命中は全く保証されません。 片舷斉射の破壊力には、多くの要素が影響します。 まず第一の、そして、主要な要因は、距離です。 -10の距離にある船を砲撃する方が、すぐ横に並んで波を蹴立てて進んでいる +10 の距離にある船を砲撃する方が、すぐ横に並んで波を蹴立てて進んでいる 船を砲撃するより困難です。 -次は、縦射[rake]です。 +次は、縦射 [rake] です。 以前に記述した通り、縦射砲撃は、10 の距離にある船の帆柱 をときには折り倒すことができます。 その次には、乗員の数と質が片舷斉射による損害に影響します。 発砲する大砲の数もまた、いわば、実を結んで得点になると言えます。 最後に、天候が片舷斉射の正確さに影響します。 -もしも、波が高ければ(5または6)、戦列艦は下側の砲門を開くことさえできず、 +もしも、波が高ければ (5 または 6)、戦列艦は下側の砲門を開くことさえできず、 大砲を出せません。 このことにより、嵐の中では、フリゲート艦や他の平甲板の船は有利になります。 シナリオの .I Pellew vs. The Droits de L'Homme -(ペルー艦長対人権号)は、この特殊な状況を利用しています。 +(ペルー艦長対人権号) は、この特殊な状況を利用しています。 .SH 修理 -船殻、大砲、索具に対して修理を行なうことができます。3ターンにつき -2ポイントの遅い割合で修理が進みます。 -それ以上の修理ができなくなったときには、「修理完了[Repair Completed]」の +船殻、大砲、索具に対して修理を行なうことができます。3 ターンにつき +2 ポイントの遅い割合で修理が進みます。 +それ以上の修理ができなくなったときには、「修理完了 [Repair Completed]」の メッセージが表示されます。 .SH コンピュータ船の特性 -.I Sail +.I sail におけるコンピュータ船は、上述の全ての規則に従いますが、しかし少数の 例外があります。 コンピュータ船は、決して損害を修理しません。 もし、コンピュータ船が修理をしたら、プレイヤー達はコンピュータ船に決して 勝てないでしょう。 しかし、今のままでも既に彼らは、十分良くやっています。 -慰めとして、コンピュータ船はターンごとに2連発の砲撃を行なえます。 +慰めとして、コンピュータ船はターンごとに 2 連発の砲撃を行なえます。 まぐれ当たりもあるので、プレイヤーの船は 近付かないのが、合理的というものでしょう。 .I ドライバプロセス が、コンピュータ船の動きを計算します。 .I ドライバプロセス は、典型的な A.I. の距離関数と縦型検索によってコンピュータ船の動きを 計算することで、 最高「得点」を発見します。 これは、かなりうまく機能しているように見えます。 -しかしながら、このA.I.が完璧でないことは筆者が真っ先に認めましょう。 +しかしながら、この A.I. が完璧でないことは筆者が真っ先に認めましょう。 .SH 遊び方 -.I Sail -にコマンドを与えるには、文字を1文字タイプします。 +.I sail +にコマンドを与えるには、文字を 1 文字タイプします。 そのとき、更に入力するよう催促されます。 コマンドの短い要約を次に示します。 .br .SH コマンドの要約 .nf 'f' 可能なら、片舷斉射を行ないます 'l' 再装填 - 'L' 舷側砲から弾を抜きます(弾薬を交換するため) + 'L' 舷側砲から弾を抜きます (弾薬を交換するため) 'm' 移動 'i' 最寄りの船を表示 'I' 全艦船を表示 - 'F' 特定パターンの船を1隻または数隻探します(例えば、全アメリカ船は「a?」) + 'F' 特定パターンの船を 1 隻または数隻探します (例えば全アメリカ船は「a?」) 's' 艦隊全体にメッセージを送信 'b' 敵艦への乗船乱入の試み 'B' 乗船乱入隊を呼び返します 'c' 帆装を交換 'r' 修理 'u' 絡んだ索具をほどく試み 'g' 鈎錨を引っかける/はずす - 'v' ゲームのバージョンナンバーの表示 + 'v' ゲームのバージョンナンバの表示 '^L' 画面の再描画 'Q' 終了 'C'\ \ \ \ \ 読者の船をウィンドウの真中にします 'U'\ \ \ \ \ ウィンドウを上へ移動 'D','N'\ ウィンドウを下へ移動 'H'\ \ \ \ \ ウィンドウを左へ移動 'J'\ \ \ \ \ ウィンドウを右へ移動 'S'\ \ \ \ \ ウィンドウを自分の船についていかせるか今の位置を保つかを反転 .fi .bg .SH シナリオ 以下に、 -.I Sail +.I sail のシナリオの要約を示します: .br .SH Ranger vs. Drake: .nf 北からの風、疾風。 (a) Ranger 19 砲門 スループ帆船 (一流の乗員) (7 点) (b) Drake 17 砲門 スループ帆船 (一流の乗員) (6 点) .SH The Battle of Flamborough Head: .nf 南からの風、疾風。 .fi これは、ジョン・ポール・ジョーンズの最初の有名な海戦です。 ボノム・リシャールに乗り組んだ彼は、素早くセラピスに乗船乱入したおかげで、 セラピスの優勢な火力を克服できました。 .nf (a) Bonhomme Rich 42 砲門 コルベット艦 (一流の乗員) (11 点) (b) Serapis 44 砲門 フリゲート艦 (一流の乗員) (12 点) .SH Arbuthnot and Des Touches: .nf 北からの風、疾強風。 (b) America 64 砲門 戦列艦 (一流の乗員) (20 点) (b) Befford 74 砲門 戦列艦 (一流の乗員) (26 点) (b) Adamant 50 砲門 戦列艦 (一流の乗員) (17 点) (b) London 98 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (b) Royal Oak 74 砲門 戦列艦 (一流の乗員) (26 点) (f) Neptune 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Duc de Bourgogne 80 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) (f) Conquerant 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Provence 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Romulus 44 砲門 戦列艦 (平均の乗員) (10 点) .SH Suffren and Hughes: .nf 南からの風、疾風。 (b) Monmouth 74 砲門 戦列艦 (平均の乗員) (24 点) (b) Hero 74 砲門 戦列艦 (一流の乗員) (26 点) (b) Isis 50 砲門 戦列艦 (一流の乗員) (17 点) (b) Superb 74 砲門 戦列艦 (一流の乗員) (27 点) (b) Burford 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Flamband 50 砲門 戦列艦 (平均の乗員) (14 点) (f) Annibal 74 砲門 戦列艦 (平均の乗員) (24 点) (f) Severe 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Brilliant 80 砲門 戦列艦 (一流の乗員) (31 点) (f) Sphinx 80 砲門 戦列艦 (平均の乗員) (27 点) .SH Nymphe vs. Cleopatre: .nf 南よりの風、疾風。 (b) Nymphe 36 砲門 フリゲート艦 (一流の乗員) (11 点) (f) Cleopatre 36 砲門 フリゲート艦 (平均の乗員) (10 点) .SH Mars vs. Hercule: 南からの風、疾風。 .nf (b) Mars 74 砲門 戦列艦 (一流の乗員) (26 点) (f) Hercule 74 砲門 戦列艦 (平均の乗員) (23 点) .SH Ambuscade vs. Baionnaise: .nf 北からの風、疾風。 (b) Ambuscade 32 砲門 フリゲート艦 (平均の乗員) (9 点) (f) Baionnaise 24 砲門 コルベット艦 (平均の乗員) (9 点) .SH Constellation vs. Insurgent: .nf 南からの風、疾強風。 (a) Constellation 38 砲門 コルベット艦 (精鋭な乗員) (17 点) (f) Insurgent 36 砲門 コルベット艦 (平均の乗員) (11 点) .SH Constellation vs. Vengeance: .nf 南からの風、疾風。 (a) Constellation 38 砲門 コルベット艦 (精鋭な乗員) (17 点) (f) Vengeance 40 砲門 フリゲート艦 (平均の乗員) (15 点) .SH The Battle of Lissa: .nf 南からの風、疾風。 (b) Amphion 32 砲門 フリゲート艦 (精鋭な乗員) (13 点) (b) Active 38 砲門 フリゲート艦 (精鋭な乗員) (18 点) (b) Volage 22 砲門 フリゲート艦 (精鋭な乗員) (11 点) (b) Cerberus 32 砲門 フリゲート艦 (精鋭な乗員) (13 点) (f) Favorite 40 砲門 フリゲート艦 (平均の乗員) (15 点) (f) Flore 40 砲門 フリゲート艦 (平均の乗員) (15 点) (f) Danae 40 砲門 フリゲート艦 (一流の乗員) (17 点) (f) Bellona 32 砲門 フリゲート艦 (未熟な乗員) (9 点) (f) Corona 40 砲門 フリゲート艦 (未熟な乗員) (12 点) (f) Carolina 32 砲門 フリゲート艦 (未熟な乗員) (7 点) .SH Constitution vs. Guerriere: .nf 南西からの風、疾強風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Guerriere 38 砲門 フリゲート艦 (一流の乗員) (15 点) .SH United States vs. Macedonian: .nf 南からの風、疾風。 (a) United States 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) (b) Macedonian 38 砲門 フリゲート艦 (一流の乗員) (16 点) .SH Constitution vs. Java: .nf 南からの風、疾風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Java 38 砲門 コルベット艦 (一流の乗員) (19 点) .SH Chesapeake vs. Shannon: .nf 南からの風、疾風。 (a) Chesapeake 38 砲門 フリゲート艦 (平均の乗員) (14 点) (b) Shannon 38 砲門 フリゲート艦 (精鋭な乗員) (17 点) .SH The Battle of Lake Erie: .nf 南からの風、軽風。 (a) Lawrence 20 砲門 スループ帆船 (一流の乗員) (9 点) (a) Niagara 20 砲門 スループ帆船 (精鋭な乗員) (12 点) (b) Lady Prevost 13 砲門 ブリッグ帆船 (一流の乗員) (5 点) (b) Detroit 19 砲門 スループ帆船 (一流の乗員) (7 点) (b) Q. Charlotte 17 砲門 スループ帆船 (一流の乗員) (6 点) .SH Wasp vs. Reindeer: .nf 南からの風、軽風。 (a) Wasp 20 砲門 スループ帆船 (精鋭な乗員) (12 点) (b) Reindeer 18 砲門 スループ帆船 (精鋭な乗員) (9 点) .SH Constitution vs. Cyane and Levant: .br .nf 南からの風、和風。 (a) Constitution 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (b) Cyane 24 砲門 スループ帆船 (一流の乗員) (11 点) (b) Levant 20 砲門 スループ帆船 (一流の乗員) (10 点) .br .SH Pellew vs. Droits de L'Homme: .nf 北からの風、疾強風。 (b) Indefatigable 44 砲門 フリゲート艦 (精鋭な乗員) (14 点) (b) Amazon 36 砲門 フリゲート艦 (一流の乗員) (14 点) (f) Droits L'Hom 74 砲門 戦列艦 (平均の乗員) (24 点) .SH Algeciras: .nf 南西からの風、和風。 (b) Caesar \080 砲門 戦列艦 (一流の乗員) (31 点) (b) Pompee \074 砲門 戦列艦 (一流の乗員) (27 点) (b) Spencer \074 砲門 戦列艦 (一流の乗員) (26 点) (b) Hannibal \098 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (s) Real-Carlos 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (s) San Fernando \096 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点) (s) Argonauta \080 砲門 戦列艦 (未熟な乗員) (23 点) (s) San Augustine \074 砲門 戦列艦 (未熟な乗員) (20 点) (f) Indomptable \080 砲門 戦列艦 (平均の乗員) (27 点) (f) Desaix \074 砲門 戦列艦 (平均の乗員) (24 点) .SH Lake Champlain: .nf 北からの風、疾風。 (a) Saratoga 26 砲門 スループ帆船 (一流の乗員) (12 点) (a) Eagle 20 砲門 スループ帆船 (一流の乗員) (11 点) (a) Ticonderoga 17 砲門 スループ帆船 (一流の乗員) (9 点) (a) Preble \07 砲門 ブリッグ帆船 (一流の乗員) (4 点) (b) Confiance 37 砲門 フリゲート艦 (一流の乗員) (14 点) (b) Linnet 16 砲門 スループ帆船 (精鋭な乗員) (10 点) (b) Chubb 11 砲門 ブリッグ帆船 (一流の乗員) (5 点) .SH Last Voyage of the USS President: .nf 北からの風、疾風。 (a) President 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) (b) Endymion 40 砲門 フリゲート艦 (一流の乗員) (17 点) (b) Pomone 44 砲門 フリゲート艦 (一流の乗員) (20 点) (b) Tenedos 38 砲門 フリゲート艦 (一流の乗員) (15 点) .SH Hornblower and the Natividad: .nf 東からの風、疾強風。 .fi ホーニィ・ファンの読者のためのシナリオです。 思い起こしていただきたい事は、 ホーンブロワーは、大きな不利と風に抗してナティビダッドを沈めたことです。 ヒント:ナティビダッドに乗船乱入しようとしないで下さい。 この船の乗員は、未熟ではありますが、ずっと多いのです。 .nf (b) Lydia 36 砲門 フリゲート艦 (精鋭な乗員) (13 点) (s) Natividad 50 砲門 戦列艦 (未熟な乗員) (14 点) .SH Curse of the Flying Dutchman(さまよえるオランダ人の呪い): .nf 南からの風、疾風。 -ちょっとした戯れです。Piece of Cakeの側を取って下さい。 +ちょっとした戯れです。Piece of Cake の側を取って下さい。 (s) Piece of Cake \024 砲門 コルベット艦 (平均の乗員) (9 点) (f) Flying Dutchy 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) .SH The South Pacific: .nf 南からの風、雄風。 (a) USS Scurvy 136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点) (b) HMS Tahiti 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (s) Australian \032 砲門 フリゲート艦 (平均の乗員) (9 点) (f) Bikini Atoll \0\07 砲門 ブリッグ帆船 (一流の乗員) (4 点) .SH Hornblower and the battle of Rosas bay: .nf 東からの風、疾風。 ホーンブロワーが負けた唯一の海戦です。 しかし、彼は1隻の船のマストを折り、他の船達に船尾縦射を撃ちました。 あなたも同じだけの戦果が挙げられるでしょうか。 .nf (b) Sutherland \074 砲門 戦列艦 (一流の乗員) (26 点) (f) Turenne \080 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) (f) Nightmare \074 砲門 戦列艦 (平均の乗員) (24 点) (f) Paris 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (f) Napoleon \074 砲門 戦列艦 (未熟な乗員) (20 点) .SH Cape Horn: .nf 北東からの風、雄風。 (a) Concord \080 砲門 戦列艦 (平均の乗員) (27 点) (a) Berkeley \098 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点) (b) Thames 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (s) Madrid 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (f) Musket \080 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点) .SH New Orleans: .nf 南東からの風、疾風。 -小さなCypressが行ってしまうのに気をつけて下さい! +小さな Cypress が行ってしまうのに気をつけて下さい! (a) Alligator 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (b) Firefly \074 砲門 戦列艦 (一流の乗員) (27 点) (b) Cypress \044 砲門 フリゲート艦 (精鋭な乗員) (14 点) .SH Botany Bay: .nf 北からの風、疾風。 (b) Shark 64 砲門 戦列艦 (平均の乗員) (18 点) (f) Coral Snake 44 砲門 コルベット艦 (精鋭な乗員) (24 点) (f) Sea Lion 44 砲門 フリゲート艦 (精鋭な乗員) (24 点) .SH Voyage to the Bottom of the Sea: .nf 北西からの風、疾風。 このシナリオは、Richard BasehartとDavid Hedisonに捧げるものです。 (a) Seaview 120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点) (a) Flying Sub \040 砲門 フリゲート艦 (一流の乗員) (17 点) (b) Mermaid 136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点) (s) Giant Squid 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) .SH Frigate Action: .nf 東からの風、疾風。 (a) Killdeer 40 砲門 フリゲート艦 (平均の乗員) (15 点) (b) Sandpiper 40 砲門 フリゲート艦 (平均の乗員) (15 点) (s) Curlew 38 砲門 フリゲート艦 (一流の乗員) (16 点) .SH The Battle of Midway: .nf 東からの風、和風。 (a) Enterprise \080 砲門 戦列艦 (一流の乗員) (31 点) (a) Yorktown \080 砲門 戦列艦 (平均の乗員) (27 点) (a) Hornet \074 砲門 戦列艦 (平均の乗員) (24 点) (j) Akagi 112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点) (j) Kaga \096 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点) (j) Soryu \080 砲門 戦列艦 (未熟な乗員) (23 点) .SH Star Trek: .nf 南からの風、疾風。 (a) Enterprise 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Yorktown 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Reliant 450 砲門 戦列艦 (精鋭な乗員) (75 点) (a) Galileo 450 砲門 戦列艦 (精鋭な乗員) (75 点) (k) Kobayashi Maru 450 砲門 戦列艦 (精鋭な乗員) (75 点) (k) Klingon II 450 砲門 戦列艦 (精鋭な乗員) (75 点) (o) Red Orion 450 砲門 戦列艦 (精鋭な乗員) (75 点) (o) Blue Orion 450 砲門 戦列艦 (精鋭な乗員) (75 点) .SH 結語 -.I Sail +.I sail は共同作業の成果です。 .SH 作者 Dave Riggle .SH 共作者 Ed Wang .SH 改訂 Craig Leres .SH 顧問 .nf Chris Guthrie Captain Happy Horatio Nelson そして他の多くの優れた人々... .fi .SH 参考文献 .nf Wooden Ships & Iron Men, by Avalon Hill Game Co. (ボードゲーム) Captain Horatio Hornblower Novels, (13 of them) by C.S. Forester 「海の男/ホーンブロワー・シリーズ」 早川書房、セシル・スコット・フォレスター Captain Richard Bolitho Novels, (12 of them) by Alexander Kent 「海の勇士/ボライソー・シリーズ」 早川書房、アレグザンダー・ケント The Complete Works of Captain Frederick Marryat, (about 20) Captain Frederick Marryat全集, (約20)特に .in +6n Mr. Midshipman Easy Peter Simple Jacob Faithful Japhet in Search of a Father Snarleyyow, or The Dog Fiend Frank Mildmay, or The Naval Officer .in -6n .SH バグ 多分、少しはあると思います。 もし、バグを見つけたらどうか -"riggle@ernie.berkeley.edu"と -"edward@ucbarpa.berkeley.edu"にお知らせ下さい。 +"riggle@ernie.berkeley.edu" と +"edward@ucbarpa.berkeley.edu" にお知らせ下さい。 .\" Translated by Tetsuro FURUYA , on Dec 2, 1998. .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja_JP.eucJP/man/man7/security.7 b/ja_JP.eucJP/man/man7/security.7 index 56233c0056..80cd987d20 100644 --- a/ja_JP.eucJP/man/man7/security.7 +++ b/ja_JP.eucJP/man/man7/security.7 @@ -1,668 +1,668 @@ .\" Copyright (c) 1998, Matthew Dillon. Terms and conditions are those of .\" the BSD Copyright as specified in the file "/usr/src/COPYRIGHT" in .\" the source tree. .\" .\" %Id: security.7,v 1.4.2.1 1999/04/01 02:10:38 ghelmer Exp % .\" .\" jpman %Id: security.7,v 1.3 1999/02/11 11:18:48 vanitas Stab % .Dd December 20, 1998 .Dt SECURITY 7 .Os .Sh 名称 .Nm security .Nd FreeBSD におけるセキュリティ入門 .Sh 解説 .Pp セキュリティは、システム管理者とともに始まり、システム管理者と ともに終る機能です。 .Bx システムは昔からすべてマルチユーザに対応しています。セキュリティの仕組みを 組み込んで維持することで、ユーザを .Sq 正直に し続ける仕事は、システム管理者の最も大きな責務の一つでしょう。マシンは、 管理者が設定しただけのセキュリティしか示しません。セキュリティに関する 問題は、むしろ、便利さを求める人間との競合問題です。一般に、 .Ux システムは莫大な数のプロセスを同時に実行させることができ、 それも、サーバとして動作するものが多いのです。つまり、外部の何者かが 接続してきて、サーバプロセスと会話することができるということなのです。 昨日まで使われていたミニコンピュータやメインフレームは、今日では デスクトップコンピュータが取って代わり、しかも、それらはネットワークで結ばれて インターネットと接続されるようになりました。これにより、セキュリティは 昔と比べてはるかに大きな問題となっています。 .Pp セキュリティに関する問題は、いくつかのカテゴリに分類することができます。 .Bl -enum -offset indent .It サービス不能攻撃 .It ユーザアカウントにかかる危険 .It アクセス可能なサーバを経由した root 権限にかかる危険 .It ユーザアカウントを通した root 権限にかかる危険 .El .Pp サービス不能攻撃とは、マシンから必要な資源を奪う行為です。 サービス不能攻撃は、普通は、そのマシンで実行されるサーバや ネットワークスタックを圧倒して、マシンをクラッシュさせたり、 さもなければマシンを使えなくしたりするような力任せの方法です。 サービス不能攻撃のいくつかは、 ネットワークスタックのバグを利用して、パケット一つでマシンを クラッシュさせようとします。後者は、 カーネルにバグ修正を施すことによってのみ修正することができます。 サーバプロセスに対する攻撃は、サーバのオプションを適切に指定して、 不利な状況にあるシステムにおいて、サーバプロセスが引き起こす負荷に限界を設けることで 修正することができます。これらに比べると、ネットワークへの力任せの攻撃への 対応はずっと難しくなります。たとえば、偽造パケットによる攻撃 .Pq spoof-packet attack は、インターネットからシステムを切り離す以外の方法で防ぐことは ほとんど不可能です。 .Pp ユーザアカウントを危険に晒してしまう問題は、サービス不能攻撃よりもずっとよくある 問題です。このご時勢でも、自分たちのマシンで標準の telnetd, rlogind, rshd, ftpd サーバを実行させているシステム管理者は多いのです。これらの サーバは、デフォルトでは、暗号化されたコネクション上で動作していません。 その結果、抱えているユーザ数が標準くらいであれば、リモートログイン .Po そのシステムにログインするには最も普通で便利な方法です .Pc しているユーザのうち一人以上は、パスワードを覗き見られて しまうでしょう。 システム管理者が注意深い人ならば、たとえログインが成功していたとしても、 リモートアクセスログをときどき解析して、疑わしいソースアドレスを探すものです。 .Pp ひとたび攻撃者がユーザアカウントへのアクセス権を入手すると、攻撃者が root の権限を破る可能性があることを仮定するべきです。しかし、 セキュリティを十分維持し、手入れの行き届いたシステムにおいては、 あるユーザアカウントへのアクセスが可能となっても、攻撃者に必ずしも root へのアクセス権を与えるとは限らないのが現実です。この違いは重要です。 というのは、root へのアクセス権がなければ、一般的に、攻撃者は自分の 侵入の痕跡を隠蔽することができませんし、そのユーザのファイルを消して マシンをクラッシュさせることができるのがせいぜいで、他のユーザの ファイルには手出しできません。 .Pp システム管理者は、あるマシン上で root の権限を破る方法がいくつかあることを 心しておかねばなりません。攻撃者が root のパスワードを知ってしまうかも しれません。攻撃者が root の権限で実行されるサーバのバグを見つけ、 ネットワークからそのサーバへ接続して root の権限を破ることができるかも しれません。ひとたびユーザアカウントを破ると、ユーザアカウントから root の権限を破ることが可能であるというバグを持つ suid-root プログラムの 存在を、攻撃者は知っているかもしれません。 .Pp セキュリティを改善する方法は、常に、 .Sq タマネギの皮剥き のように 複数の層のアプローチで実装されます。これらは次のように分類できます。 .Bl -enum -offset indent .It root とスタッフのアカウントの安全性を高める。 .It root の安全性を高める - root 権限のサーバと suid/sgid バイナリ。 .It ユーザアカウントの安全性を高める。 .It パスワードファイルの安全性を高める。 .It カーネルのコア、raw デバイス、ファイルシステムの安全性を高める。 .It ファイルの完全性のチェック: バイナリ、設定ファイルなど。 .It 偏執狂的方法。 .El .Sh root アカウントとスタッフアカウントの安全性を高める .Pp root のアカウントの安全性を確保しないうちからスタッフのアカウントの安全性を うんぬんしてもしかたがありません。ほとんどのシステムでは、root アカウントに 割り当てたパスワードがひとつあります。まず最初にすべきことは、 このパスワードは .Sq いつでも 危険に晒されていると仮定することです。root アカウントの安全性を確保する ためには、ネットワーク越しに、あるいはどれか一般ユーザのアカウントから、 root のパスワードを使って root アカウントにログインすることが決して できないことを確認することです。正しいパスワードが与えられようが 与えられまいが、telnetd, rlogind, その他ログイン処理を行なうサーバ すべてで root でのログインを拒絶するように設定していないのであれば、 今すぐ必ず設定して下さい。直接 root でログインできるのは、 システムコンソールからだけにして下さい。ここで役に立つのが .Sq /etc/ttys ファイルです。ほとんどのシステムでは、デフォルトで安全ですが、 優れたシステム管理者は、設定がそうなっているか常にチェックを怠らない ものです。 .Pp システム管理者として、自分は root になれるようにしておかねばならないの はもちろんですから、穴をいくつか空けておきます。しかし、それらの穴を 動作させるには、さらに追加のパスワード認証が必要であるようにして おきます。root でアクセス可能とする方法の一つとして、 適切なスタッフアカウントを .Pq Pa /etc/group の wheel グループに加えることがあります。 wheel グループに置かれたスタッフメンバには、 .Sq su を使って root になることが許されます。スタッフメンバに、 パスワードファイルのエントリでそのまま wheel のアクセス権を 与えてはいけません。スタッフは、 .Sq staff かその類のグループに置き、その中で本当に root になる必要がある人 だけを wheel グループに加えるようにします。しかし、残念ながら、wheel の -仕組みだけだと、侵入者は、パスワードファイルを手に入れるとルート権限を +仕組みだけだと、侵入者は、パスワードファイルを手に入れると root 権限を 破ることができてしまいます。攻撃者が破る必要があるのは root のパスワード か、wheel グループにたまたま属するstaff アカウントのパスワードどれかひとつだけだからです。 wheel の仕組みは有益ですが、wheel グループがまったく存在しない状況と比べてそれほど 安全なわけではありません。 .Pp root アカウントの安全性を高める間接的な方法として、別のログインアクセス の方法を用いて、スタッフのアカウントの暗号化パスワードを\ * にして おくことで、スタッフのアカウントの安全性を高めるものがあります。この方法 だと、侵入者がパスワードファイルを盗むことができるかもしれませんが、 スタッフアカウントを破ることはできないでしょう。また、たとえ root が暗号化 パスワードをパスワードファイルに付けていたとしても、間接的には root アカウントも破ることができないでしょう。 スタッフメンバがスタッフアカウントでログインする際には、 .Xr kerberos 1 や .Xr ssh 1 .Po .Pa /usr/ports/security/ssh 参照 .Pc のような、公開鍵 / 秘密鍵の鍵の組を使う 安全性の高いログインの仕組みを使います。kerberos のような仕掛けを使う場合、 一般に、kerberos サーバを実行するマシンと自分のデスクトップ ワークステーションとの安全性を確保しなければなりません。ssh で 公開鍵 / 秘密鍵の組を使う場合、一般に、ログイン元マシン .Pq 通常は自分のワークステーション の安全性を確保しなければなりません。ここで、 .Xr ssh-keygen 1 で公開鍵 / 秘密鍵の組を生成する際、鍵の組をパスワードで防御することにより、 鍵の組への防御層を追加することもできます。スタッフアカウントの パスワードを\ * で外すことができると、管理者自身が設定 した安全性の高い方法でしかスタッフメンバがログインできないことも保証 できます。こうして、多くの侵入者が使う重大なセキュリティの穴 .Pq 安全性の低い無関係なマシンからネットワークを覗き見る方法 を塞ぐようなセッションを提供する、安全性の高い暗号化されたコ ネクションを使うことを、スタッフメンバ全員に強制することができ るのです。 .Pp より間接的なセキュリティの仕組みでは、制限の強いサーバから制限の弱い サーバへログインすることを前提としています。例えば、メインマシンで、 様々な種類のサーバを実行させている場合、ワークステーションではそれらの サーバを実行させてはなりません。ワークステーションを十分に 安全にしておくためには、実行するサーバの数を、一つもサーバ が実行されていないというくらいにまでできる限り減らすべきです。 また、パスワードで保護されたスクリーンセーバを走らせておくべきです。 ワークステーションへの物理的アクセスが与えられたとすると、もちろん 言うまでもなく、攻撃者は管理者が設定したいかなる種類のセキュリティ をもうち破ることができるのです。これは、管理者として必ず考えておか ねばならない問題ですが、システム破りの大多数は、ネットワーク経由で リモートから、ワークステーションやサーバへの物理的アクセス手段を持 たない人々によって行われるという事実もまた、念頭に置いておく必要 があります。 .Pp kerberos のような方法を使うことで、スタッフアカウントのパスワードの変更 もしくは停止を一箇所で行なうことと、スタッフメンバがアカウントを持つ すべてのマシンに即時にその効果を及ぼすことが可能となります。スタッフメンバの アカウントが危険に晒されたときに、すべてのマシンでスタッフメンバのパスワードを 即座に変更する能力を過小評価してはいけません。パスワードが分散されている状況では、 N 台のマシンでパスワードを変更すると、てんやわんやの事態を招く可能性が あります。kerberos を使用すると、パスワードの再発行に制限 .Pq re-passwording restriction を課することもできます。この機能を使うことにより、 ある kerberos チケットをしばらく経つとタイムアウトにすることが できるだけでなく、一定期間 .Pq 例えば、1 ヶ月に 1 回 経つと、ユーザに新しいパスワードを選ぶように要求することもできます。 .Sh root の安全性を高める - root 権限のサーバと suid/sgid バイナリ .Pp 用心深いシステム管理者は、自分に必要なサーバプロセスだけを過不足なく 実行させるものです。第三者製のサーバは、よくバグを持っていがちだと いうことに注意して下さい。例えば、古いバージョンの imapd や popper を実行させておくのは、全世界に共通の root の切符を与えてい るようなものです。 自分で注意深くチェックしていないサーバは、決して実行してはいけません。 root で実行させる必要のあるサーバはほとんどありません。例えば、ntalk, comsat, finger デーモンを、特別の「砂場 .Pq sandbox 」ユーザで実行させることができます。 .\"kuma hellofalot of trouble って何や? .\" hell of a lot of trouble みたいですね。;-) (金ん田 '99.02.11) 管理者が膨大な数の問題に直面していないのなら、この「砂場」は完璧では ありませんが、セキュリティに関するタマネギ的アプローチはここでも 成り立ちます。砂場で実行されているサーバプロセスを経由して侵入を 果たすことができたとしても、攻撃者はさらに砂場から外に脱出しなければ なりません。攻撃者が通過せねばならない層の数が増えれば増えるほど、 それだけ攻撃者が侵入に成功する確率が減ります。root の抜け穴は 歴史的に、基本システムサーバも含め、 root 権限で実行されるほとんどすべてのサーバプロセスで発見されています。 ユーザが sshd 経由でのみログインし、 telnetd, rshd, rlogind 経由でログインすること が決してないマシンを稼働させているのであれば、それらのサービスを停止させて下さい。 .Pp .Bx Free では、今では ntalkd, comsat, finger は砂場で実行させることが デフォルトになっています。次に砂場で実行させるべきプログラムの候補として、 .Xr named 8 があります。デフォルトの rc.conf ファイルには、named を砂場で実行する ために必要な引数がコメントアウトされた形式で含まれています。新しい システムをインストールしているか、それとも既存のシステムを アップグレードして使っているかに依存しますが、砂場として使用する 特別のユーザアカウントがインストールされていないかもしれません。 用心深いシステム管理者であれば、できるだけいつでも研究を怠らず、 サーバに砂場を仕込むものでしょう。 .Pp 通常、砂場で実行しないサーバが他にいくつかあります。sendmail, popper, imapd, ftpd などです。これらのうちいくつかのサーバには代わりとなるも のがありますが、 代わりのものをインストールするには、それだけ多くの仕事が必要になるので、 結局これらを喜んで入れてしまいます .Pq 便利さという要素がまたも勝利を収めるわけです 。 これらのサーバは、root 権限で実行せねばならいかもしれません。また、 これらのサーバ経由で生じる侵入 を検出するためには、他の仕組みに頼らなくてはならないかもしれません。 .Pp システムの root 権限の潜在的な穴で他に大きなものとして、システムに インストールされた suid-root/sgid バイナリがあります。 これらのバイナリは、rloginのように、 .Pa /bin , .Pa /sbin , .Pa /usr/bin , .Pa /usr/sbin に存在するものがほとんどです。 100% 安全なものは存在しないとはいえ、システムデフォルトの siud/sgid バイナリは比較的安全といえます。それでもなお、root の穴が これらのバイナリにときおり発見されています。1998 年に Xlib で見つかった root の穴は、xterm .Pq 普通、suid 設定されています を攻撃可能にしていました。 安全である方がよいので、用心深いシステム管理者は残念に思いながらも、 スタッフのみが実行する必要がある suid バイナリは、スタッフのみが アクセス可能な特別なグループに含めるように制限を加え、 誰も使わない suid バイナリは .Pq chmod 000 を実行して 片付けてしまうでしょう。 ディスプレイを持たないサーバは、一般的に xterm のバイナリを必要としません。 sgid バイナリもほとんど同様の危険な存在になり得ます。 侵入者が kmem に sgid されたバイナリを破ることができた場合、 その侵入者は .Pa /dev/kmem を読み出すことができるようになります。 つまり、暗号化されたパスワードファイルを読み出すことができる ようになるので、パスワードを持つどのアカウントをも、 .Pq 潜在的な 危険に晒すことになります。 tty グループを破った侵入者は、ほとんどすべてのユーザの端末に書き込みが できます。talk-back 機能を持つ端末プログラムやエミュレータをユーザが実行 していると、 .Pq 結局、そのユーザとして実行される コマンドをユーザの端末にエコーさせるデータストリームを 侵入者が生成できる可能性があります。 .Sh ユーザアカウントの安全性を高める .Pp ユーザアカウントは、普通、安全性を高めることが最も困難です。 スタッフに対して、アテナイのドラコのような厳格なアクセス制限を課し、 スタッフのパスワードを\ * で外すことができるとはいえ、管理者が持ちうる 一般ユーザすべてのアカウントに対して同じことはできないかも知れません。 管理者が十分に統率をとることができるなら、管理者は勝利し、ユーザの アカウントの安全を適切に確保できるかもしれません。それが できないならば、よりいっそう気を配って一般ユーザのアカウントを 監視するよりほかありません。一般ユーザアカウントに対し ssh や kerberos を利用することには、いろいろと問題があります。 それでも、暗号化パスワードと比較すると、 はるかに良い解です。 .Sh パスワードファイルの安全性を高める .Pp できるだけ多くのパスワードを\ * で外し、それらのアカウントのアクセスには ssh や kerberos を使うようにすることが、唯一の確実な方法です。たとえ暗号化 パスワードファイル .Pq Pa /etc/spwd.db が root でのみ読み出し可能だとしても、 侵入者がそのファイルの読み出しアクセス権限を得ることは可能かもしれません。たとえ root の書き込み権限が得られないにしてもです。 .Pp セキュリティスクリプトは常にパスワードファイルの変更をチェックし、報告 するようにすべきです .Po 後述の「ファイルの完全性のチェック」を参照して下さい .Pc 。 .Sh カーネルのコア、raw デバイス、ファイルシステムの安全性を高める .Pp root の権限を破ると、攻撃者は何でもできますが、 もっと簡便なこともいくつかあります。例えば、最近のカーネルは、 組み込みのパケット覗き見デバイス .Pq packet sniffing device ドライバを備えているものがほとんどです。 .Bx Free では .Sq bpf デバイスと呼ばれています。侵入者は普通、危険に晒された マシンでパケット覗き見プログラムを実行させようと試みます。侵入者に わざわざそういう機能を提供する必要はないので、ほとんどのシステムで bpf デバイスを組み込むべきではありません。 .Pp bpf デバイスを外し、モジュールローダを無効にしても、 .Pa /dev/mem と .Pa /dev/kmem という悩みの種がまだ残っています。この問題に関しては、侵入者は raw デバイスに書き込むこともできます。 また、 .Xr kldload 8 という、別のカーネル機能があります。 やる気まんまんの侵入者は、KLD モジュールを使って 自分独自の bpf もしくはその他覗き見デバイスを動作中のカーネルに インストールすることができます。 この問題を避けるため、システム管理者は カーネルをより高い安全レベル .Pq securelevel 、少なくとも安全レベル 1 で実行させる必要があります。 sysctl を使って kern.securelevel 変数に安全レベルを設定することが できます。ひとたび安全レベルに 1 を設定すると、 raw デバイスに対する書き込みアクセスは拒否され、例えば .Sq schg のような 特別な chflags フラグが効果を発揮します。これに加えて、 起動時において重要なバイナリ・ディレクトリ・スクリプトファイルなど、 安全レベルが設定されるまでの間に実行されるものすべてに対しても .Sq schg フラグを確実に on にしておく必要があります。この設定をやり過ぎても 構いませんが、より高い安全レベルで動作している場合、システムの アップグレードがはるかに困難になります。システムをより高い安全レベルで 実行させるようにするが、お天道さまの下にあるすべてのシステムファイルと ディレクトリに schg フラグを設定しないという妥協をする方法もあります。 .Sh ファイルの完全性のチェック: バイナリ、設定ファイルなど .Pp ことこの問題に至ると、システム管理者にできることは、 便利さという要素がその醜い頭を上げない程度に、 コアシステムの設定 / 制御ファイルを防御することだけです。 セキュリティのタマネギの最後の層はおそらく最も重要なもの、すなわち探知です。 .Pp システムファイルの完全性をチェックする唯一の正しい方法は、別の、より安全な システム経由で行なう方法だけです。 .Sq 安全 なシステムを準備することは比較的 容易です。単にそのシステム上で、サービスを一切実行しないようにするだけです。 安全なシステム を用いて、ssh 経由で他のシステムの root 空間にアクセスします。これは セキュリティの末端のように見えるかもしれません。しかし、管理者には信頼を どこかに置く必要があります。いきあたりばったりでサーバプロセスを 実行するような馬鹿げたことをしない限りは、安全度の高いマシンを構築する ことは本当に可能です。ここで .Sq 安全 という場合、物理アクセスに対する セキュリティをも含めて仮定していることはもちろんです。他のすべてのマシンに root のアクセス権限を持つ、安全なマシンがあれば、 「安全なマシンの上で」システムの他のマシンをチェックする セキュリティスクリプトを書くことができるようになります。 最も普通のチェック方法は、セキュリティスクリプトで、 まず、find と md5 のバイナリファイルをリモートマシンに .Xr scp 1 してから、 リモートシステムのすべてのファイル .Po もしくは、少なくとも .Pa / , .Pa /var , .Pa /usr パーティション! .Pc に対して md5 を適用するシェルコマンドを ssh を使ってリモートマシンで実行するものです。 安全なマシンは、チェック結果をファイルにコピーし、前回のチェック結果との差分を取り .Pq または、安全なマシン自身が持っているバイナリと比較する 、その差分を 毎日のレポートとしてスタッフメンバひとりひとりにメールで送ります。 .Pp この種のチェックを行うもう一つの方法として、 他のマシンから主なファイルシステムを 安全なマシンにNFS export する方法があります。 このやり方はいくらかネットワークに負荷を掛けることになりますが、 侵入者がチェックを探知したり偽造したりすることは、 事実上不可能になります。 .Pp 優れたセキュリティスクリプトは、一般ユーザやスタッフメンバのアクセス制御 ファイル: .rhosts, .shosts, .ssh/authorized_keys など、MD5 での精細な チェックから洩れそうなファイルの変更もチェックするようにします。 .Pp 優れたセキュリティスクリプトは、すべてのファイルシステム上で suid/sgid バイナリのチェックを行い、前回のチェック結果もしくは何らかの 基準 .Pq 例えば、その基準を週 1 回作成する。 からの差分だけでなく、 それらバイナリの存在そのものを報告するものです。 .Sq nosuid オプションを fstab/mount で指定することで、あるファイルシステム上の suid/sgid バイナリの実行機能をオフにすることができますが、root によるこれら バイナリの実行をオフにすることはできません。さらに、root 権限を破った者は誰でも 自分自身で用意したバイナリをインストールすることだってできます。 しかしながら、ユーザのディスク空間を大量に持つ場合、 ユーザパーティション上で suid されたバイナリとデバイスを不許可に しておき .Po .Pq nodev オプション .Pc 、 そのパーティションをスキャンしないで済ませることも有益かもしれません。 それでも私ならば、ともかく、少なくとも週に 1 回はスキャンする でしょう。というのは、タマネギのこの層の目的は侵入を検知すること だからです。 .Pp プロセスアカウンティング .Po .Xr accton 1 参照 .Pc は、比較的オーバヘッドの低いオペレーティングシステムの機能で、 マシンに侵入されてしまった後の評価の仕組みとして使用することをお勧め します。 侵入を受けた後でも当該ファイルが無傷である場合に、 侵入者が実際にどのようにしてシステムの root を破ったかを 追跡するのに特に有益です。 .Pp 最後に、セキュリティスクリプトはログファイルを処理するようにし、 ログファイル自体もできるだけ安全性の高い方法で .Sq リモート syslog は極めて有益になり得ます 生成するようにすべきです。侵入者は自分の侵入の痕跡を覆い隠そう としますし、また、ログファイルはシステム管理者が最初の侵入の時 刻と方法を追跡してゆくために極めて重要です。 .Sh 偏執狂的方法 .Pp 多少偏執狂的になっても決して悪いことにはなりません。原則的に、 システム管理者は、便利さに影響を与えない範囲でいくつでもセキュリティ 機能を追加することができます。また、いくらか考慮した結果、便利さに 影響を与えるセキュリティ機能を追加することもできます。 .Sh サービス不能攻撃 (D.O.S. attack) についての特記事項 .Pp このセクションではサービス不能攻撃を扱います。サービス不能攻撃は、普通は、 パケット攻撃です。ネットワークを飽和させる最先端の偽造パケット .Pq spoofed packet 攻撃に対してシステム管理者が打てる手はそれほど多く ありませんが、一般的に、その種の攻撃によってサーバがダウン しないことを確実にすることで、被害をある限度に食い止める ことはできます。 .Bl -enum -offset indent .It サーバの fork の制限 .It 踏み台攻撃の制限 .Pq ICMP 応答攻撃、ping broadcast など .It カーネルの経路情報のキャッシュ .El .Pp 普通に見られるサービス不能攻撃に、fork するサーバプロセスに対する ものがあります。これは、サーバにプロセス・ファイル記述子・メモリを 食い尽くさせて、マシンを殺そうとするものです。 inetd .Po .Xr inetd 8 参照 .Pc には、この種の攻撃を制限するオプションがいくつかあります。マシンが ダウンすることを防止することは可能ですが、この種の攻撃によりサービスが 崩壊することを防止することは一般的に言ってできないことに注意する必要が あります。inetd のマニュアルページを注意深く読んで下さい。特に、 .Fl c , .Fl C , .Fl R オプションに注意して下さい。IP 偽造攻撃 .Pq spoofed-IP attack は inetd の .Fl C オプションの裏をかけるので、一般にオプションを 組み合わせて使用するべきであることに注意して下さい。スタンドアロンサーバ の中には、自分自身で fork を制限するパラメータを持っているものがあります。 .Pp sendmail には、 .Fl OMaxDaemonChildren オプションがあります。負荷には遅れがあるので、 sendmail の負荷に限界を設けるオプションを使うよりも、 このオプションを使う方がまともに動作する可能性ははるかに高いです。 sendmail の実行を開始する際に、 .Cm MaxDaemonChildren パラメータを設定するべきです。その値は、 通常見込まれる負荷を扱える程度に十分高いが、 それだけの数の sendmail を操作しようとすると マシンが卒倒してしまうほどには高くないような値に設定するべきです。 sendmail をキュー処理モード .Pq Fl ODeliveryMode=queued で実行することや、 sendmail デーモン .Pq Cm sendmail -bd をキュー処理用プロセス .Pq Cm sendmail -q15m と別に実行することも、用心深いことと言えます。それでもなおリアルタイムでの 配送を望むのであれば、 .Fl q1m のようにすることで、キュー処理をはるかに短い時間間隔で 行うことができます。いずれにしても、 .Cm MaxDaemonChildren オプションに 合理的な値を確実に指定して、sendmail がなだれをうって失敗することが ないようにして下さい。 .Pp syslogd は直接攻撃される可能性があるので、可能ならばいつでも .Fl s オプションを用いることを強く推奨します。これができないなら、 .Fl a オプションを使って下さい。 .Pp tcpwrapper の逆 identd などの接続返し .Pq connect-back を行うサービスに ついては十分注意を払うようにするべきです。これらは直接攻撃を受ける可能性が あります。こういう事情があるので、tcpwrapper の逆 ident 機能を使おうとは 思わないのが一般的です。 .Pp 境界ルータのところでファイアウォールを設けて、外部からのアクセスに対して 内部サービスを防御するという考えは実によいものです。この考えは、LAN の外部 からの飽和攻撃を防ぐことにあり、root ネットワークベースの root 権限への攻撃から内部サービスを防御することには、あまり考慮を払って いません。ファイアウォールは常に排他的に設定して下さい。つまり、 「ポート A, B, C, D と M から Z まで .Eo * 以外 .Ec * のすべてに防火壁を設ける」というふうにです。 このようにすることで、named .Pq ゾーンのプライマリである場合 , ntalkd, sendmail など、インターネットにアクセスを提供するサービス として特に指定するもの以外の、小さい番号のポートすべてをファイアウォールで 防御することができます。ファイアウォールをこの他のやり方、つまり 包含的もしくは受容的なファイアウォールとして設定しようとする場合、 .Sq close することを忘れてしまうサービスがいくつか出てきたり、新しい内部サービスを 追加したのにファイアウォールの更新を忘れたりする可能性がよく出てきます。 ファイアウォール上の大きい番号のポートを開けておいて、小さい番号のポートを 危険に晒すことなく受容的な動作を許すことができます。 .Bx Free では、net.inet.ip.portrange への sysctl .Pq sysctl -a \&| fgrep portrange をいろいろ使用することで、 動的バインドに使用されるポート番号の範囲を制御できることを記憶にとどめて おいて下さい。これによりファイアウォールの設定の複雑性を緩和できます。 私は、ファイアウォールに通常のfirst/last の範囲として、 4000 から 5000 を、 高位ポートの範囲として、49152 から 65535 を使用しています。そして、 .Po いくつかのインターネットアクセス可能なポートを ブロックから除外するのはもちろんですが .Pc 4000 より下のすべてをブロックしています。 .Pp また別のありふれたサービス不能攻撃として、踏み台攻撃 .Pq springboard attack と呼ばれるものがあります。これは、サーバが自分自身、ローカルネットワーク、 そして他のマシンを過負荷に追い込むような応答を生成させる方法でサーバを 攻撃します。この種の攻撃の中で最もありふれたものは、ICMP PING BROADCAST 攻撃があります。攻撃者は、実際に攻撃したいマシンのアドレスをソース アドレスに設定した ping パケットを偽造して、対象の LAN の ブロードキャストアドレスに向けてパケットを送信します。境界にあるルータが ブロードキャストアドレスに対する ping パケットを握り潰すように設定されていない 場合、LANは、詐称されたソースアドレスに向けて応答パケットを生成するはめになり、犠牲となるマシンが飽和するところまで行ってしまいます。攻撃者が同じトリックを 異なるネットワーク上のいくつものブロードキャスト アドレスに対して同時に使用した場合、とくにひどいことになります。 これまでに、120 メガビット以上のブロードキャスト攻撃が観測されています。 2 番目の踏み台攻撃は、ICMP エラー報告の仕掛けを狙うものです。ICMP エラー 応答を生成するパケットを生成することにより、攻撃者はサーバの 受信ネットワークを飽和させることができ、同時に、サーバが送信 ネットワークを ICMP 応答で飽和させるようにすることができます。 mbuf を消費し尽くさせることにより、この種の攻撃でサーバを クラッシュさせることも可能です。サーバの ICMP 応答生成が速過ぎて、 ICMP 応答の送信が追い付かない場合、とくにひどいことになります。 .Bx Free カーネルには、この種の攻撃の効果を抑制する ICMP_BANDLIM と 呼ばれる新しいコンパイルオプションがあります。 3つめの主要なクラスに属す踏み台攻撃は、udp echo サービスのような、 ある種の内部 inetd サービスに関連するものです。攻撃者は、単に ソースアドレスがサーバ A の echo ポートであり、ディスティネーション アドレスがサーバ B の echo ポートであるかのように UDP パケットを 偽造します。ここでサーバ A, B はともに自分の LAN に接続されています。 この 2 つのサーバは、この一つのパケットを両者の間で互いに相手に対して 打ち返しあいます。このようにしてパケットをいくつか注入するだけで、 攻撃者は両方のサーバと LAN を過負荷状態にすることができます。 同様の問題が内部 chargen ポートにも存在します。有能なシステム管理者は この手の inetd 内部テストサービスのすべてを無効にしておくものです。 .Pp 偽造パケット攻撃は、カーネルの経路情報キャッシュに過負荷を生じさせるために 用いられることもあります。net.inet.ip.rtexpire, rtminexpire, rtmaxcache の sysctl パラメータを参照して下さい。でたらめなソース IP を用いた この偽造パケット攻撃により、カーネルは、一時的なキャッシュ経路を 経路情報テーブルに生成します。これは .Sq netstat -rna \&| fgrep W3 で見ることができます。これらの経路は、普通は 1600 秒程度でタイムアウトに なります。カーネルがキャッシュ経路テーブルが大きくなり過ぎたことを 検知すると、カーネルは動的に rtexpire を減らしますが、rtminexpire より 小さくなるようには決して減らしません。ここに問題が 2 つあります。 (1) 負荷の軽いサーバが突然攻撃された場合、カーネルが十分素早く反応 できないこと。(2) カーネルが攻撃に耐え生き延びられるほど十分 rtminexpire が低く設定されていないこと。の2つです。 自分のサーバが T3 もしくはそれより 良質の回線でインターネットに接続されている場合、 .Xr sysctl 8 を用いて rtexpire と rtminexpire とを手動で上書きしておくことが思慮深いこと といえます。 .Pq 自分のマシンをクラッシュさせたくないのであれば :-) どちらか一方でも 0 に は決してしないで下さい。両パラメータを 2 秒に設定すれば、 攻撃から経路情報テーブルを守るには十分でしょう。 .Sh 関連項目 .Pp .Xr accton 1 , .Xr chflags 1 , .Xr find 1 , .Xr kerberos 1 , .Xr md5 1 , .Xr ssh 1 , .Xr sshd 1 , .Xr syslogd 1 , .Xr xdm 1 , .Xr sysctl 8 .Sh 歴史 .Nm マニュアルページは、もともと .An Matthew Dillon によって書かれました。 最初に現れたのは、 .Fx 3.1 で 1998 年 12 月のことです。 .\" translated by Norihiro Kumagai, 98-12-29 diff --git a/ja_JP.eucJP/man/man8/Makefile b/ja_JP.eucJP/man/man8/Makefile index a39fab5714..e6767cce64 100644 --- a/ja_JP.eucJP/man/man8/Makefile +++ b/ja_JP.eucJP/man/man8/Makefile @@ -1,274 +1,275 @@ MAN8 = IPXrouted.8\ MAKEDEV.8\ ac.8\ accton.8\ adding_user.8\ adduser.8\ adjkerntz.8\ amd.8\ amq.8\ apm.8\ apmconf.8\ arp.8\ atm.8\ atmarpd.8\ atrun.8\ bad144.8\ badsect.8\ boot_i386.8\ bootparamd.8\ bootpd.8\ bootpef.8\ bootptest.8\ btxld.8\ camcontrol.8\ ccdconfig.8\ chat.8\ chkgrp.8\ chkprintcap.8\ chown.8\ chroot.8\ clri.8\ comcontrol.8\ comsat.8\ config.8\ crash.8\ cron.8\ cvsbug.8\ dev_mkdb.8\ disklabel.8\ diskless.8\ diskpart.8\ dm.8\ dmesg.8\ dump.8\ dumpfs.8\ dumpon.8\ edquota.8\ fdcontrol.8\ fdisk.8\ fingerd.8\ fixmount.8\ fore_dnld.8\ fsck.8\ fsdb.8\ fsinfo.8\ fsirand.8\ ft.8\ ftpd.8\ getty.8\ hlfsd.8\ ibcs2.8\ ifconfig.8\ ilmid.8\ inetd.8\ init.8\ intro.8\ iostat.8\ ipfstat.8\ ipfw.8\ ipmon.8\ isdnd.8\ isdndebug.8\ isdndecode.8\ isdnmonitor.8\ isdntel.8\ isdntelctl.8\ isdntrace.8\ ispcvt.8\ joy.8\ kernbb.8\ keyadmin.8\ keyserv.8\ kgmon.8\ kldload.8\ kldstat.8\ kldunload.8\ kvm_mkdb.8\ kzip.8\ ldconfig.8\ linux.8\ locate.updatedb.8\ lpc.8\ lpd.8\ lptcontrol.8\ mail.local.8\ mailstats.8\ makekey.8\ makemap.8\ makewhatis.local.8\ manctl.8\ map-mbone.8\ mixer.8\ mk-amd-map.8\ mknetid.8\ mknod.8\ modload.8\ modstat.8\ modunload.8\ mount.8\ mount_cd9660.8\ mount_ext2fs.8\ mount_msdos.8\ mount_nfs.8\ mount_null.8\ mount_portal.8\ mount_std.8\ mount_umap.8\ mount_union.8\ mountd.8\ moused.8\ mrinfo.8\ mrouted.8\ mtest.8\ mtrace.8\ mtree.8\ named-xfer.8\ named.8\ named.reload.8\ named.restart.8\ natd.8\ ndc.8\ newfs.8\ newfs_msdos.8\ newkey.8\ newsyslog.8\ nextboot.8\ nfsd.8\ nfsiod.8\ nologin.8\ nslookup.8\ nos-tun.8\ ntpdate.8\ ntpq.8\ ntptrace.8\ pac.8\ pam.8\ pccardd.8\ pciconf.8\ periodic.8\ ping.8\ pnpinfo.8\ portmap.8\ ppp.8\ pppctl.8\ pppd.8\ pppstats.8\ praliases.8\ procctl.8\ pstat.8\ pw.8\ pwd_mkdb.8\ quot.8\ quotacheck.8\ quotaon.8\ rarpd.8\ rbootd.8\ rc.8\ reboot.8\ renice.8\ repquota.8\ restore.8\ revnetgroup.8\ rexecd.8\ rlogind.8\ rmail.8\ rmt.8\ rmuser.8\ rndcontrol.8\ route.8\ routed.8\ rpc.lockd.8\ rpc.rquotad.8\ rpc.rstatd.8\ rpc.rusersd.8\ rpc.rwalld.8\ rpc.sprayd.8\ rpc.statd.8\ rpc.yppasswdd.8\ rpc.ypxfrd.8\ rpcinfo.8\ rshd.8\ rstat_svc.8\ rtquery.8\ rwhod.8\ sa.8\ savecore.8\ scspd.8\ sendmail.8\ showmount.8\ shutdown.8\ sicontrol.8\ slattach.8\ sliplogin.8\ slstat.8\ smrsh.8\ spkrtest.8\ + spppcontrol.8\ spray.8\ sticky.8\ stlload.8\ stlstats.8\ strfile.8\ swapon.8\ sync.8\ sysctl.8\ syslogd.8\ talkd.8\ telnetd.8\ tftpd.8\ timed.8\ timedc.8\ traceroute.8\ trpt.8\ tunefs.8\ tzsetup.8\ umount.8\ usbd.8\ usbdevs.8\ uuchk.8\ uucico.8\ uucpd.8\ uusched.8\ uuxqt.8\ vinum.8\ vipw.8\ vmstat.8\ vnconfig.8\ watch.8\ wire-test.8\ wlconfig.8\ wormcontrol.8\ xntpd.8\ xntpdc.8\ xtend.8\ yp_mkdb.8\ ypbind.8\ ypinit.8\ yppoll.8\ yppush.8\ ypserv.8\ ypset.8\ ypxfr.8\ zdump.8\ zic.8 MLINKS+= strfile.8 unstr.8 MLINKS+= makewhatis.local.8 catman.local.8 MLINKS+= bootpd.8 bootpgw.8 MLINKS+=dump.8 rdump.8 MLINKS+= mount_std.8 mount_devfs.8 mount_std.8 mount_fdesc.8 \ mount_std.8 mount_kernfs.8 mount_std.8 mount_procfs.8 MLINKS+= newfs.8 mount_mfs.8 newfs.8 mfs.8 newfs.8 tmpfs.8 MLINKS+= reboot.8 halt.8 reboot.8 fastboot.8 reboot.8 fasthalt.8 MLINKS+= boot_i386.8 boot.8 MLINKS+=restore.8 rrestore.8 MLINKS+= slattach.8 slip.8 MLINKS+= locate.updatedb.8 updatedb.8 MLINKS+= apm.8 zzz.8 MLINKS+= pstat.8 swapinfo.8 MLINKS+= quotaon.8 quotaoff.8 MLINKS+= vnconfig.8 swapfile.8 MLINKS+= inetd.8 inetd.conf.5 MLINKS+= pam.8 pam.conf.5 pam.8 pam.d.5 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man8/lpc.8 b/ja_JP.eucJP/man/man8/lpc.8 index dfdb80fca4..2ed5edf890 100644 --- a/ja_JP.eucJP/man/man8/lpc.8 +++ b/ja_JP.eucJP/man/man8/lpc.8 @@ -1,176 +1,176 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)lpc.8 8.5 (Berkeley) 4/28/95 .\" jpman %Id: lpc.8,v 1.2 1997/05/23 00:47:48 mutoh Stab % .\" .Dd April 28, 1995 .Dt LPC 8 .Os BSD 4.2 .Sh 名称 .Nm lpc .Nd ラインプリンタの制御を行う .Sh 書式 .Nm lpc .Oo .Ar command .Op Ar argument ... .Oc .Sh 解説 .Nm は、システム管理者がラインプリンタの動作を制御するために使われます。 -各ラインプリンタのコンフィギュレーションは +各ラインプリンタの設定は .Pa /etc/printcap で行います。 .Nm は以下の目的で利用します。 .Bl -bullet -offset indent .It プリンタの利用可能/不可能の設定を行う .It スプールキューへのジョブ投入可能/不可能の設定を行う .It スプールキュー内のジョブの順番を並べ直す .It プリンタ、スプールのキュー、およびプリンタデーモンのステータスを調べる .El .Pp 引数なしの場合、 .Nm は標準入力からコマンドを読むためにプロンプトを出します。 引数をつけた場合、第 1 引数をコマンドとし、残りの引数を そのコマンドのパラメータと解釈します。 標準入力をリダイレクトして、 .Nm にファイルからコマンドを読み込ませることもできます。 コマンドは略して書くことができます。 利用可能なコマンドを以下に列挙します。 .Pp .Bl -tag -width Ds -compact .It Ic \&? No [ command ... ] .It Ic help No [ command ... ] 引数で指定したコマンドの簡単な説明を表示します。引数がないときはコマンド の一覧を表示します。 .Pp .It Ic abort No {\ all\ |\ printer\ } ローカルホスト上の動作中のスプールデーモンをただちに終了させ、指定した -プリンタをプリントアウトできないように( +プリンタをプリントアウトできないように ( .Xr lpr 1 -が新しいデーモンをスタートさせないように)します。 +が新しいデーモンをスタートさせないように) します。 .Pp .It Ic clean No {\ all\ |\ printer\ } -ローカルマシン上の指定したプリンタのキューから、出力できない(すなわち、 -完全なプリンタジョブの形になっていない)テンポラリファイル、データファイル、 +ローカルマシン上の指定したプリンタのキューから、出力できない (すなわち、 +完全なプリンタジョブの形になっていない) テンポラリファイル、データファイル、 コントロールファイルをすべて削除します。 .Pp .It Ic disable No {\ all\ |\ printer\ } 指定したプリンタのキューをオフにします。これにより、 .Xr lpr 1 によって新しいプリンタジョブがキューに入らないようになります。 .Pp .It Ic down No {\ all\ |\ printer\ } message ... 指定したプリンタのキューをオフにし、プリントアウトできないようにし、 プリンタのステータスファイルに .Em message を書きます。メッセージは引用符で囲む必要はなく、残りの引数は .Xr echo 1 と同様に扱われます。通常、この コマンドはプリンタをダウンさせ、ユーザに対しそのダウンの理由を .Xr lpq 1 によって説明させるために使われます。 .Pp .It Ic enable No {\ all\ |\ printer\ } 指定したプリンタ用のキューのスプーリングを行うようにします。これは、 .Xr lpr 1 で新しいプリンタジョブをスプールキューに挿入することができるよ うにします。 .Pp .It Ic exit .It Ic quit lpc を終了させます。 .\" ne 1i .Pp .It Ic restart No {\ all\ |\ printer\ } 新しいプリンタデーモンの再スタートを試みます。このコマンドは、異常な 状態になって突然デーモンが死に、キュー内にジョブが残ったままになった場合に 有効です。この状態が起きたときには、 .Xr lpq 1 は現在デーモンが動いていないことを報告します。 もしあなたがスーパユーザなら、現在動いているデーモンを先に殺してください (つまり、動かなくなったデーモンを殺してから再スタートさせるわけです)。 .Pp .It Ic start No {\ all\ |\ printer\ } 指定したプリンタを出力可能にしてスプールデーモンをスタートさせます。 .Pp .It Ic status No {\ all\ |\ printer\ } ローカルマシン上のデーモンとキューの状態を表示します。 .Pp .It Ic stop No {\ all\ |\ printer\ } 現行のジョブが終了したあとでデーモンのスプーリングをストップさせ、 プリントアウトできないようにします。 .Pp .It Ic topq No printer\ [\ jobnum\ ...\ ]\ [\ user\ ...\ ] 引数に並べた順番で、ジョブをキューの先頭に移動させます。 .Pp .It Ic up No {\ all\ |\ printer\ } すべての状態を可能状態(enable)にし、新しいプリンタデーモンをスタートさせます。 .Ic down の逆です。 .Sh 関連ファイル .Bl -tag -width /var/spool/*/lockx -compact .It Pa /etc/printcap プリンタの設定を記述するファイル .It Pa /var/spool/* スプールディレクトリ .It Pa /var/spool/*/lock プリンタキューの制御を行うためのロックファイル .El .Sh 関連項目 .Xr lpq 1 , .Xr lpr 1 , .Xr lprm 1 , .Xr printcap 5 , .Xr lpd 8 .Sh 診断 .Bl -tag -width Ds .It Sy "?Ambiguous command" コマンド指定が省略し過ぎのため、複数のコマンドにマッチしています。 .It Sy "?Invalid command" マッチするコマンドがありません。 .It Sy "?Privileged command" -"operator" グループのメンバーかルートでなければこのコマンドは +"operator" グループのメンバか root でなければこのコマンドは 実行できません。 .El .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/mountd.8 b/ja_JP.eucJP/man/man8/mountd.8 index 7d6df815f1..934df6da59 100644 --- a/ja_JP.eucJP/man/man8/mountd.8 +++ b/ja_JP.eucJP/man/man8/mountd.8 @@ -1,157 +1,157 @@ .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mountd.8 8.4 (Berkeley) 4/28/95 .\" %Id: mountd.8,v 1.14.2.1 1999/04/08 14:04:30 ghelmer Exp % .\" .\" jpman %Id: mountd.8,v 1.3 1997/05/19 17:06:05 horikawa Stab % .\" .Dd April 28, 1995 .Dt MOUNTD 8 .Os .Sh 名称 .Nm mountd .Nd リモートの .Tn NFS マウント要求に対するサービスを行うデーモン .Sh 書式 .Nm mountd .Op Fl 2dlnr .Op Ar exportsfile .Sh 解説 .Nm は、他のクライアントマシンからの .Tn NFS マウント要求のためのサーバです。 .Nm は、 .Tn NFS サーバの仕様で示されているポート 番号でサービス要求を待ちます。詳細は RFC1094 .%T "Network File System Protocol Specification" の Appendix A と .%T "NFS: Network File System Version 3 Protocol Specification" の Appendix I を参照してください。 .Pp .Nm では、以下のオプションや引数を指定できます: .Bl -tag -width indent このサーバからファイルシステムをマウントするクライアントに対し、 管理者はバージョン 2 .Tn NFS プロトコルのみの使用を強制できます。 .It Fl d デバッグ情報を出力します。 .It Fl l 成功した .Nm 要求を記録します。 .It Fl n -非ルートからのマウント要求を許可します。 +非 root からのマウント要求を許可します。 このオプションは、 クライアントが PC であるなど、それがどうしても必要な 場合にのみ使うようにしてください。 その場合、自動的に vfs.nfs.nfs_privport sysctl フラグがクリアされます。 このフラグはカーネルが NFS 要求を受け付けるのが、 予約されたポートからのみか否かを制御します。 .It Fl r 通常ファイルに対するマウント RPC 要求を許可します。 これは、マウントプロトコルの仕様によると危険なようですが、 いくつかのディスクレスワークステーションは、スワップファイルをマウント しようとしますし、それが通常ファイルであることを期待しています。 通常ファイルは .Pa /etc/exports で指定できないので、スワップが置かれようとしているファイルシステム全体 が、 .Fl alldirs フラグとともに公開されていなければなりません。 .It Ar exportsfile exports ファイルの置き場所を指定します。 .El .Pp 起動されると、 .Nm は .Xr mount 2 システムコールによって、公開するホストアドレスとオプションを カーネル内にロードします。 公開設定ファイルを変更した場合は、 .Nm に対して回線切断シグナルを送って 公開設定情報を再ロードする必要があります。 .Dv SIGHUP を送ったあと(例: kill \-s HUP `cat /var/run/mountd.pid` )、exports ファイルにエラーがあるかどうか、 .Nm の出力をチェックしてください。 .Pp 動作中のカーネルは .Tn NFS を組み込んでいないものであると判明した場合、 .Nm は、 .Xr vfsload 3 を用いる .Xr kldload 8 コマンドを使って、 .Tn NFS を含むローダブルカーネルモジュールのロードを試みます。 これが失敗するか、 .Tn NFS KLD が使用できない場合は、 .Nm はエラー終了します。 .Sh 関連ファイル .Bl -tag -width /var/run/mountd.pid -compact .It Pa /etc/exports -公開設定ファイル(エキスポートファイル) +公開設定ファイル (エクスポートファイル) .It Pa /var/run/mountd.pid 現在実行中の .Nm のプロセス id .Tn ID .It Pa /var/db/mountdtab 現在マウントされているリモートファイルシステムのリスト .El .Sh 関連項目 .Xr nfsstat 1 , .Xr exports 5 , .Xr kldload 8 , .Xr nfsd 8 , .Xr portmap 8 , .Xr showmount 8 .Sh 歴史 .Nm ユーティリティは .Bx 4.4 から登場しています。 diff --git a/ja_JP.eucJP/man/man8/ppp.8 b/ja_JP.eucJP/man/man8/ppp.8 index f546a5e6f1..e9a8bb447a 100644 --- a/ja_JP.eucJP/man/man8/ppp.8 +++ b/ja_JP.eucJP/man/man8/ppp.8 @@ -1,4686 +1,4686 @@ .\" %Id: ppp.8,v 1.142.2.3 1999/03/24 18:03:12 brian Exp % .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .\" WORD: expect string 受信待ち文字列 (chat.8) .\" WORD: negotiation 交渉 .Dd 20 September 1995 .nr XX \w'\fC00' .Os FreeBSD .Dt PPP 8 .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Oo .Fl auto | .Fl background | .Fl ddial | .Fl direct | .Fl dedicated .Oc .Op Fl alias .Op Ar system Ns .No ... .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 それに対し、この実装ではトンネルデバイスドライバ (tun) を利用して、 ユーザプロセスで .Em PPP を実現しています。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の切断を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイヤルをサポート 対話モードでは、直接モデムと通信できるように .Dq term コマンドが用意されています。 モデムがリモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイヤル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイヤルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイヤルを行って接続を確立します。 .Fl ddial モード (直接ダイヤルモード) でも ほぼ同様に、自動ダイヤルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイヤルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用線モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用線モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再交渉を強要し、 .Dv SIGTERM は終了を強要します。 .It クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It パケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP (rfc 1994) による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice -が、中央データベースまたは分散データベースに、 -ユーザごとの形式で様々な接続特性とともに認証情報を格納可能とします。 +は、集中データベースまたは分散データベースに、 +ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Pa libradius が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP をサポート デバイス名が .Em host Ns No : Ns Em port 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、データ転送のための TCP 接続を開きます。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを 交渉することができます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 次のコマンドラインスイッチを .Nm ppp は理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクにデスクリプタ 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm はコマンドラインで指定されたシステムをロードし、対話プロンプトを提供します。 .It Fl alias このフラグは .Nm のモードを制御しません。 .Dq enable alias yes と等価です。さらに、 .Fl auto もまた指定されている場合、暗黙的に .Dq enable iface-alias が実行されます。 詳細については後述しているものを参照してください。 .Pp IP エイリアシングを有効にすると、 .Nm は、内部 LAN 上の全マシンに対する NAT もしくはマスカレーディングエンジンとして動作します。詳細は .Xr libalias 3 を参照してください。 .El .Pp さらに、1 つ以上の system をコマンドライン上に指定可能です。 .Sq system は .Pa /etc/ppp/ppp.conf の設定エントリです。起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Pp .Fl auto , .Fl background , .Fl ddial , .Fl direct , .Fl dedicated , .Fl interactive のいずれか 1 つのスイッチのみ指定可能です。 .Nm の .Sq モード は、 .Dq set mode コマンド (後述) を使用することで後で変更可能です。 .Pp 以降、対話モードの使用方法について説明します。 .Pp 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていなければ なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。 もし含まれていない場合や複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.*/var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは .Pq Xr named 8 を用いて ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq name-server 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm ppp のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 .Pq set to Dq none されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のモデム設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show modem Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接モデムと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらの開始交渉を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、交渉開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先との交渉に成功しなかったことをを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show modem * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時に交渉する場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、最初の桁に空白かタブを含む必要があります。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少なくとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 つ以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm ppp を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent PPP ON awfulhak> load MyISP .Ed .Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP \&... ppp ON awfulhak> dial Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェースに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルの交渉に成功し、使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 .Po たとえば、 .Dq set server +3000 mypasswd とすると .Pc 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar maxinc は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar maxinc のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 .It Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイヤルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒の間隔を置いて .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .Dq set redial コマンドにて、リダイヤル期間の後に、 再接続回数を指定します。 リダイヤル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、次のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、次の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0) 、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの 交渉を有効にすることが可能です。 下記の記述を参照してください。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm ppp で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap .Pq もしくはその両方 を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号交渉時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669 .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバと交渉できないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 add 10.0.1.0/24 10.0.4.2 .Ed .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには次の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、次のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp .Ar MyAuthPasswd が .Pq Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in set dial set timeout 30 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0/24 10.0.4.1 .Ed .Pp PAP を有効にしようとしている場合、次の設定も必要です: .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「経路」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「経路」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下位レベルの TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下位レベルの TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Sh パケットエイリアシング .Fl alias コマンドラインオプションにより、 パケットエイリアシングが有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのようにエイリアスされ、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるようにエイリアスが戻されます。 パケットエイリアシングにより、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にパケットエイリアシングを禁止して行います。 次に .Fl alias オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Oo .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Oo Ar proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Oc .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 19 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny のいずれかです。 もし、あるパケットがルールに一致した場合、 結びつけられた action が直ちに実行されます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .It .Ar proto は .Sq icmp , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It パケットにマッチするルールが無い場合は、パケットは破棄 (ブロック) されます。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 .Pp 3 分 です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Pq 接続相手が両方のプロトコルをサポートしていると仮定しています。 .Pp デフォルトでは、DEFLATE について交渉するときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を 交渉に使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE 交渉を成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .Em PPP の実装には、接続交渉のために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、経路表には影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Pp .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It 経路表のネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、経路表のエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Pp .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、次のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります。 .Pq Dq \&: : .Bd -literal -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイヤルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイヤルしてみます。 ダイヤルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイヤルもしくはログインスクリプトに失敗したとき *のみ* です。 このダイヤルの後、3456789 が使用されます。 4567890 は 345689 でダイヤルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみであり両方の使用はないでしょう)。 次の番号へのリダイヤルまでのタイムアウトは、すべての番号にて使用されます。 リストが終了すると、 通常のリダイヤル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以降を参照してください)。 .It リダイヤルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 次のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイヤルを行う前に 10 秒待って、 4 回までダイヤルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、次のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は次の通りです。 .Bl -bullet .It \&"BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう 1 度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上記の電話番号リストの中の、次にダイヤルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイヤルスクリプトと同じスタイルで書かれますが、 パスワードが記録されないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は次の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It "login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It "awfulhak" を送信します。 .It "word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It "ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It "PPP" を送信します。 .It "HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey コマンドのログは特別な方法でとられます。 .Ar command または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** Ns が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp FreeBSD では cuaa0 が 1 つめのシリアルポートになります。 OpenBSD で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以降を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Pp .Ed ローカル DNS を走らせている場合には、これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合には記録されません。 .Sh シグナルハンドリング .Nm は次のシグナルを扱います: .Bl -tag -width XX .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 .El .Pp .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname .Pq と Sq authkey について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続の交渉を行います。 .Pp デフォルトでは .Po .Sq deflink と呼ばれる .Pc ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 link deflink remove .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードで交渉をすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードの交渉を行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width XX .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手と交渉するかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width XX .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は非常に良く似たフィールドを持ちますので、 簡単に圧縮可能です。 .It chap Ns Op \&05 デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみ交渉可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、MS-CHAP 認証を要求することは 決してありません。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についての交渉には問題があります。 .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮の交渉を行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd と交渉する能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとの交渉を許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS 交渉を許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、ppp は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注釈: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみ交渉可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) の交渉を行うために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードの交渉時に .Pq 12 ビットの 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手と交渉しません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティック経路 リストは依然として保守されます。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq modem のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl alias が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 IP エイリアシングが有効な場合のみ .Pq Dq alias enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを IP エイリアスエンジン .Pq Xr libalias 5 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq alias enable off として IP エイリアシングを disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op \&! .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add! コマンド .Po .Dq \&! に注意 .Pc 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR もしくは .Dq MYADDR を含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR もしくは .Dv MYADDR の値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 ユーザレベルでのアクセスは可能であり、 設定ファイルのラベルと .Nm の実行モードに依存します。 例えば、ユーザ .Sq fred のみがラベル .Sq fredlabel に .Fl background モードでアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width XX .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドが指定されると、 .Dq allow users が記載されているセクションに列挙されているユーザのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。後続する .Dq allow users コマンドは、先行するコマンドに優先します。 あるラベル以外のすべてにアクセスを許すことが可能であり、 そのためにはデフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをこのあるラベルに指定します。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It alias Ar command Op Ar args このコマンドは .Nm 組込みのエイリアシング (マスカレーディング) 機能を 制御するために使用します。 あなたのシステムでエイリアシングが有効になると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width XX .It alias enable Op yes|no エイリアシングを有効もしくは無効にします。 .Fl alias コマンドラインフラグは .Dq alias enable yes と同じ意味です。 .It alias addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It alias deny_incoming Op yes|no yes に設定すると、 ファイアウォールとほぼ同様にパケットを落とすことにより、 このコマンドは全入力接続を拒否します。 .It alias help|? このコマンドは、使用可能な alias コマンドのまとめを表示します。 .It alias log Op yes|no このオプションは、alias の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 .It alias port Xo .Op Ar proto .Ar targetIP Ns No \&: Ns Ar targetPORT .Op Ar aliasIP Ns No \&: Ns .Ar aliasPORT .Xc このコマンドにより、 マシン .Ar aliasIP の .Ar aliasPORT へ到着する接続を、 .Ar targetIP の .Ar targetPORT へリダイレクトします。 .Ar aliasIP のデフォルトは、現在のインタフェースアドレスです。 .Ar proto は .Sq tcp もしくは .Sq udp のいずれかで、指定したプロトコルの接続のみマッチします。 あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 .It "alias pptp" Op Ar addr すべての .Em G Ns No eneral .Em R Ns No outing .Em E Ns No encapsulated .Pq Dv IPPROTO_GRE パケットを、ローカルインタフェースアドレスではなく .Ar addr を使用することにより、 .Nm にエイリアスさせます。 これは、マシンの内部ネットワーク上で .Em P Ns No oint to .Em P Ns No oint .Em T Ns No unneling .Em P Ns No rotocol の使用を許します。 .Pp .Ar addr を指定しないと、 .Dv PPTP エイリアスは無効になります。 .It "alias proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It alias same_ports Op yes|no 有効になると、 エイリアスライブラリが出力パケットのポート番号を変更しようとすることを 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It alias use_sockets Op yes|no 有効になると、 エイリアスライブラリにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It alias unregistered_only Op yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.alias ファイル中でも議論されています。 .Pp .It Op \&! Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear modem|ipcp Op current|overall|peak... .Dq modem もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op \&! 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term .Pq 後述 を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq \&! が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP 交渉を開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op \&! .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete! コマンドが使用された場合 .Po 最後の .Dq \&! に注意 .Pc 、存在しない経路について .Nm は文句を言わなくなります。 .It dial|call Op Ar label 引数なしで使用された場合、このコマンドは .Dq open コマンドと同一です。 .Ar label が 1 つ以上指定された場合、最初に .Dq load が実行されます。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、モデムはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op \&! .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op \&! .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm ppp が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width XX .It iface add[!] Ar addr[[/bits| mask] peer] 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です .Pq addr との間に空白を入れてはなりません 。指定したアドレスが既に存在する場合、 .Dq \&! を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP 交渉されたアドレス以外の全アドレスがインタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op \&! Ns .No |rm Ns Op \&! .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq \&! が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 .Dq open コマンドを引数なしで用いることは .Dq dial を引数なしで用いることと同一です。 すなわちすべての閉じられたリンクが、現在の設定を用いて起動されます ( .Dq set autoload コマンドに基づいた自動リンクの中には起動されないものもあります)。 .Pp LCP 層がすでにオープンされているときに .Dq lcp を指定すると、LCP は再度交渉されます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度交渉された後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度交渉されます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度交渉され、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It save このオプションは (まだ) 実装されていません。 .It set Ns Xo .No Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width XX .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手と交渉され、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP の交渉で使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\P シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq \& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp .Dq \&! を無視し、前述の .Dq !bg コマンドと同様に特殊な名前を同様に置換しながら、 .Ar value は実行すべきプログラムとしてパーズされます。 プログラムを実行すると、 .Nm はこのプログラムに対して 3 行の入力を与えます。 各行は改行文字で終了しています: .Bl -bullet .It CHAP チャレンジに含めて送られるホスト名。 .It CHAP チャレンジに含めて送られるチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp 2 行の出力が期待されています: .Bl -bullet .It CHAP 応答と共に送るべき .Dq authname 。 .It チャレンジと要求 ID で暗号化した .Dq authkey であり、応答は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることが期待されます。 指定されたチャレンジに対する適切な秘密情報を、 暗号化デバイスまたは Secure ID カードが計算することが求められています。 .It set authname Ar id クライアントモードでの PAP または CHAP の交渉で使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar max-duration max-load Op Ar min-duration min-load .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はすべて 0 です。 1 つ以上の .Ar demand-dial .Po .Fl auto としても知られる .Pc モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクは、 .Ar max-duration 秒の間、送出キューに .Ar max-load 以上のパケットが存在した場合にのみ開かれます。 両方のデフォルト値が 0 であるため、 .Ar demand-dial リンクはデフォルトでは 1 つだけオープンされます。 .Pp 複数のリンクが開かれていて、少なくともその内の 1 つが .Ar demand-dial リンクである場合、 .Ar min-duration 秒の間、送出キューに最大 .Ar min-packets 未満のパケットしか存在しなかったときに閉じられます。 .Ar min-duration が 0 の場合には、タイマは無効になります。 デフォルトでは両方の値が 0 であるため、 .Ar demand-dial リンクはバンドルされたアイドルタイマが期限切れになるまで アクティブであり続けます。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードで、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、これを指定する必要があります。 .El .Pp .It set cbcp Oo Xo .No *| Ns Ar number Ns No .Oo .No , Ns Ar number Ns .Oc .No ... .Op Ar delay Op Ar retry .Oc .Xc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Ar seconds Ns Op \&! 通常、ログインスクリプト完了の 1 秒後に、 .Nm はキャリアの存在をチェックします。 キャリアが設定されていないと、 デバイスがキャリアをサポートしていない (ほとんどのヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実を記録して、キャリアのチェックを止めます。 しかし、モデムによってはキャリアのアサートに時間がかかるものがあるので、 リンクが落ちたときを .Nm ppp は検知できなくなります。 .Ar seconds は、ログインスクリプトが完了してから最初のキャリアチェックを行う前に、 .Nm が待つべき秒数を指定します。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq \&! がある場合、 .Nm はキャリアを .Em 要求 します。 最初のチェックでキャリアを検知しないと、リンクは切断されているとみなされます。 .Pp リンクが tty でない場合、キャリアの .Em 必要性 は無視されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 20 パケット (マルチリンクモードでは .Em 20 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 全シリアルデバイス名は .Pa /dev/ から始まることが仮定されています。 .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq \&! から始めるか、 .Dq host:port の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .Dq host:port の組が与えられる場合、 .Nm は、指定された .Dq host の指定された .Dq port と接続しようとします。 詳細は上述の .Em PPP オーバ TCP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -unfilled -offset indent .It \\\\\\\\\\\\\\\\c .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \\\\\\\\\\\\\\\\d チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \\\\\\\\\\\\\\\\p チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \\\\\\\\\\\\\\\\n 改行文字と置き換えられます。 .It \\\\\\\\\\\\\\\\r 復改文字と置き換えられます。 .It \\\\\\\\\\\\\\\\s 空白文字と置き換えられます。 .It \\\\\\\\\\\\\\\\t タブ文字と置き換えられます。 .It \\\\\\\\\\\\\\\\T 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \\\\\\\\\\\\\\\\P 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \\\\\\\\\\\\\\\\U 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .Ed .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、 受信待ち文字列または送信文字列の最初の文字をエクスクラメーションマーク .Pq Dq \&! にします。 コマンドが実行されると、標準入力と標準出力がモデムデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行されている場合、ファイルデスクリプタ 3 は .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\\\\\-c \\\\\\"echo \\\\\\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は次のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq \&! 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイルデスクリプタ 2 (stderr) にリダイレクトして .Nm 自身に送信および記録させ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP 交渉の前に設定されると、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bd -unfilled -offset indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前に交渉されますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .Ed .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny .Oo Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc Oo tcp|udp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Oc .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングは、 エイリアスエンジンが行う IP 変更の前に適用されます。 デフォルトでは、全フィルタセットが全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script モデムを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp .Ar hisaddr に IP 番号の範囲として .Bd -literal -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc No ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP 接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP 交渉で使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装と交渉するときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP 交渉で使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp .Po PAP か CHAP が .Dq enable である場合 .Pc クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手との交渉を避けるために、 どのような交渉セッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注釈: コマンド .Dq set mode auto を発行し、IP エイリアシングが enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP 交渉を有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Op Ar value デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 引数が指定されないと、1500 が仮定されます。 .It set mtu Op Ar value デフォルトの MTU は 1500 です。 交渉時に、(296 バイト未満でなければ) 相手が望むいかなる MRU および MRRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU/MRRU の値を受け付けなくなります。 交渉が完了すると、相手がより大きな MRU/MRRU を要求していたとしても、 インタフェースに対して MTU が割り当てられます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP の交渉を開始します。 相手が交渉を開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってから交渉を開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark 回線のパリティを設定できます。デフォルト値は .Ar none です。 .It set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP 交渉で合意された相手の MRU より小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP 交渉において .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar maxinc 回だけです。 .Ar maxinc のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq \&! を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set server|socket Ar TcpPort|LocalName|none password Op Ar mask このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定する必要があります。 .Sq 0 から始まる 4 桁 8 進数で指定します。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd コマンドを使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed Ar value シリアルデバイスの速度を指定します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮を交渉するか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手と交渉をします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 20 .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 .Po Dq iface show と同じです .Pc を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show modem 現在の下位レベルリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はモデムに送られます。 モデムから読んだ文字はスクリーンに表示されます。 モデムの相手側に .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq alias ? , .Dq enable ? , .Dq set ? , .Dq show ? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It http://www.FreeBSD.org/FAQ/userppp.html .It http://www.FreeBSD.org/handbook/userppp.html .El .Pp .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width XX .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワークレベルの接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じる時にチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslogd.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr libalias 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr route 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、 FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。 .Pp 1997 年中に Brian Somers (brian@Awfulhak.org) が本格的な修正をし、 11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを Brian Somers が書き直しました。 diff --git a/ja_JP.eucJP/man/man8/reboot.8 b/ja_JP.eucJP/man/man8/reboot.8 index fb75a5487f..de2fc62bff 100644 --- a/ja_JP.eucJP/man/man8/reboot.8 +++ b/ja_JP.eucJP/man/man8/reboot.8 @@ -1,111 +1,111 @@ .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)reboot.8 8.1 (Berkeley) 6/9/93 .\" %Id: reboot.8,v 1.5 1998/07/15 06:51:37 charnier Exp % .\" jpman %Id: reboot.8,v 1.3 1997/06/06 11:35:27 bobson Stab % .\" .Dd June 9, 1993 .Dt REBOOT 8 .Os .Sh 名称 .Nm reboot , .Nm halt .Nd システムを停止し、再起動する .Sh 書式 .Nm halt .Op Fl nqp .Nm reboot .Op Fl nqp .Nm fasthalt .Op Fl nqp .Nm fastboot .Op Fl nqp .Sh 解説 .Nm halt と .Nm は、ファイルシステムのキャッシュをディスクへ書き出し、 すべての実行中のプロセスに SIGTERM を (そして、それに続いて SIGKILL を) 送ります。 -そして、システムを停止( +そして、システムを停止 ( .Nm halt ) したり、再起動 ( .Nm ) したりします。 -その動作はログインのアカウンティング・ファイルに記入されます。 -それはログインのアカウンティング・ファイルへのシャットダウン記録の書き出し +その動作はログインのアカウンティングファイルに記入されます。 +それはログインのアカウンティングファイルへのシャットダウン記録の書き出し を含んでいます。 .Pp オプションとしては以下のものがあります。 .Bl -tag -width indent .It Fl n システムのキャッシュがディスクへ書き出されません。 このオプションは使用すべきではありません。 .It Fl q システムは、とにかく速く停止されたり、 再起動されたりします。そしてシステムのキャッシュの破棄だけが行われます。 このオプションは使用すべきではありません。 .It Fl p システムは可能であれば電源を切ります。 これは、もちろん .Nm でも、 .Nm halt と同じように振る舞うということです。 .El .Pp .Nm fasthalt と .Nm fastboot は、それぞれ .Nm halt と .Nm の単なる別名にすぎません。 .Pp -通常、システムの停止や、再起動を要する場合には、ユーザーに事前警告を与える +通常、システムの停止や、再起動を要する場合には、ユーザに事前警告を与える .Xr shutdown 8 を使用します。 .Xr shutdown 8 -は、ログインしているユーザーにシステム停止の警告を与えます。 +は、ログインしているユーザにシステム停止の警告を与えます。 .Pp .Sh 関連項目 .Xr utmp 5 , .Xr boot 8 , .Xr shutdown 8 , .Xr sync 8 .Sh 歴史 .Nm コマンドは .At v6 で追加されました。 diff --git a/ja_JP.eucJP/man/man8/repquota.8 b/ja_JP.eucJP/man/man8/repquota.8 index 17b4a4b601..b1396f8818 100644 --- a/ja_JP.eucJP/man/man8/repquota.8 +++ b/ja_JP.eucJP/man/man8/repquota.8 @@ -1,106 +1,108 @@ .\" Copyright (c) 1983, 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Robert Elz at The University of Melbourne. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)repquota.8 8.1 (Berkeley) 6/6/93 .\" jpman %Id: repquota.8,v 1.2 1997/05/22 07:39:12 mitchy Stab % .\" .Dd June 6, 1993 .Dt REPQUOTA 8 .Os BSD 4.2 .Sh 名称 .Nm repquota .Nd ファイルシステムの割り当て制限状況を表示する .Sh 書式 .Nm repquota .Op Fl g .Op Fl u .Op Fl v .Ar filesystem Ar ... .Nm repquota .Op Fl g .Op Fl u .Op Fl v .Fl a .Sh 解説 .Nm repquota -は、指定されたファイルシステムのディスク使用状況と、割り当て制 -限状況を表示します。 +は、指定されたファイルシステムのディスク使用状況と、 +割り当て制限状況を表示します。 .Pp オプションは以下のとおりです: .Bl -tag -width indent .It Fl a .Pa /etc/fstab に記述された全ファイルシステムに関する情報を表示します。 .It Fl g -グループ割り当て制限のみを表示します(デフォルトでは、グループ、ユーザ -両方の割り当て制限を表示します)。 +グループ割り当て制限のみを表示します +(デフォルトでは、グループ、ユーザ両方の割り当て制限を表示します)。 .It Fl u -ユーザ割り当て制限のみを表示します(デフォルトでは、グループ、ユーザ +ユーザ割り当て制限のみを表示します (デフォルトでは、グループ、ユーザ 両方の割り当て制限を表示します)。 .It Fl v -個々のファイルシステムの割り当て(クォータ)を表示する前に、ヘッダ行を出 +個々のファイルシステムの割り当て (クォータ) を表示する前に、ヘッダ行を出 力します。 .El .Pp -各ユーザやグループに関する現在の、ファイル数、サイズ(キロバイト単位)、 +各ユーザやグループに関する現在の、ファイル数、サイズ (キロバイト単位)、 および割り当て制限 ( .Xr edquota 8 により設定される)が表示されます。 .Pp operator グループに所属するユーザかスーパユーザのみが、このコマンドを 実行できます。 .Sh 関連ファイル .Bl -tag -width quota.group -compact .It Pa quota.user -ユーザの割り当て制限に関するデータ(ファイルシステムのルートディレクトリに配置される) +ユーザの割り当て制限に関するデータ +(ファイルシステムのルートディレクトリに配置される) .It Pa quota.group -グループの割り当て制限に関するデータ(ファイルシステムのルートディレクトリに配置される) +グループの割り当て制限に関するデータ +(ファイルシステムのルートディレクトリに配置される) .It Pa /etc/fstab ファイルシステムの名前と位置を読み取る .El .Sh 関連項目 .Xr quota 1 , .Xr quotactl 2 , .Xr fstab 5 , .Xr edquota 8 , .Xr quotacheck 8 , .Xr quotaon 8 .Sh 診断 アクセス不可能なファイルに関する様々なメッセージが出力されます。 .Sh 歴史 .Nm は .Bx 4.2 で追加されました。 diff --git a/ja_JP.eucJP/man/man8/vinum.8 b/ja_JP.eucJP/man/man8/vinum.8 index c02c1b8072..7b4d37d153 100644 --- a/ja_JP.eucJP/man/man8/vinum.8 +++ b/ja_JP.eucJP/man/man8/vinum.8 @@ -1,2132 +1,2132 @@ .\" Hey, Emacs, edit this file in -*- nroff-fill -*- mode .\"- .\" Copyright (c) 1997, 1998 .\" Nan Yang Computer Services Limited. All rights reserved. .\" .\" This software is distributed under the so-called ``Berkeley .\" License'': .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Nan Yang Computer .\" Services Limited. .\" 4. Neither the name of the Company nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" This software is provided ``as is'', and any express or implied .\" warranties, including, but not limited to, the implied warranties of .\" merchantability and fitness for a particular purpose are disclaimed. .\" In no event shall the company or contributors be liable for any .\" direct, indirect, incidental, special, exemplary, or consequential .\" damages (including, but not limited to, procurement of substitute .\" goods or services; loss of use, data, or profits; or business .\" interruption) however caused and on any theory of liability, whether .\" in contract, strict liability, or tort (including negligence or .\" otherwise) arising in any way out of the use of this software, even if .\" advised of the possibility of such damage. .\" -.\" $Id: vinum.8,v 1.6 1999-04-26 14:34:52 kuriyama Exp $ +.\" %Id: vinum.8,v 1.5.2.3 1999/04/06 08:59:36 grog Exp % .\" .\" jpman %Id: vinum.8,v 1.3 1999/01/05 15:15:53 horikawa Stab % .\" WORD: attach 結合 (する) .Dd 28 March 1999 .Dt vinum 8 .Sh 名称 .Nm vinum .Nd 論理ボリュームマネージャの制御プログラム .Sh 書式 .Nm .Op command .Op Fl options .Sh コマンド .Cd create .Fl f .Ar description-file .in +1i .Ar description-file の記述に従ってボリュームを作成します。 .in .\" XXX remove this .Cd attach Ar plex Ar volume .Op Nm rename .Cd attach Ar subdisk Ar plex Ar [offset] .Op Nm rename .in +1i プレックスをボリュームに、またはサブディスクをプレックスに結合します。 .in .\" XXX remove this .Cd debug .in +1i ボリュームマネージャをカーネルデバッガに移行させます。 .in .Cd debug .Ar flags .in +1i デバッグフラグを設定します。 .in .Cd detach .Op Ar plex | subdisk .in +1i 結合されていたボリュームやプレックスから、プレックスやサブディスクを分離します。 .in .Cd info .Op Fl v .in +1i ボリュームマネージャの状態を表示します。 .in .Cd init .Op Fl v .in +1i .\" XXX 下位の全サブディスクに 0 を書き込んでそのプレックスを初期化します。 .in .Cd label .Ar volume .in +1i ボリュームラベルを作成します。 .in .Cd list .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume | plex | subdisk .in +1i 指定したオブジェクトの情報を表示します。 .in .Cd l .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume | plex | subdisk .in +1i 指定したオブジェクトの情報を表示します ( .Cd list コマンドの別形式)。 .in .Cd ld .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume .in +1i ドライブの情報を表示します。 .in .Cd ls .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op subdisk .in +1i サブディスクの情報を表示します。 .in .Cd lp .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op plex .in +1i プレックスの情報を表示します。 .in .Cd lv .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume .in +1i ボリュームの情報を表示します。 .in .Cd printconfig .Pa file .in +1i 現在の設定のコピーを .Pa file へ書き込みます。 .in .Cd makedev .in +1i .Ar /dev/vinum にデバイスノードを再作成します。 .in .Cd quit .in +1i 対話モード時に、 .Nm プログラムを終了します。通常 .Ar EOF 文字を入力することにより実現できます。 .in .Cd read .Ar disk Op disk... .in +1i 指定したディスクから .Nm の設定を読み出します。 .in .Cd rename Op Fl r .Ar [ drive | subdisk | plex | volume ] .Ar newname .in +1i 指定したオブジェクトの名前を変更します。 .ig .XXX .in .Cd replace .Ar [ subdisk | plex ] .Ar newobject .in +1i オブジェクトを同一の他のオブジェクトと入れ換えます。XXX まだ実装されていません。 .. .in .Cd resetconfig .in +1i すべての .Nm の設定をリセットします。 .in .Cd resetstats .Op Fl r .Op volume | plex | subdisk .in +1i 指定したオブジェクトの統計情報をリセットします。指定がない場合はすべての オブジェクトが対象です。 .in .Cd rm .Op Fl f .Op Fl r .Ar volume | plex | subdisk .in +1i オブジェクトを削除します。 .in .Cd saveconfig .in +1i .Nm の設定をディスクへ保存します。 .in .ig XXX .Cd set .Op Fl f .Ar state .Ar volume | plex | subdisk | disk .in +1i オブジェクトの状態を \fIstate\fP\| に設定します。 .in .. .Cd setdaemon .Op value .in +1i デーモンの設定を与えます。 .in .Cd start .Op volume | plex | subdisk .in +1i システムがオブジェクトへアクセスできるようにします。 .in .Cd stop .Op Fl f .Op volume | plex | subdisk .in +1i オブジェクトへのアクセスを終了させます。 パラメータを指定しないと、 .Nm を停止させます。 .in .Sh 解説 .Nm は \fBVinum\fP\| 論理ボリュームマネージャと通信するための ユーティリティプログラムです。 ボリュームマネージャの詳細については .Xr vinum 4 を参照してください。 .Xr vinum 8 は対話形式と、単独のコマンドを実行する形式のいずれも実行可能になっています。 コマンドを伴わずに .Nm を起動すると対話形式になる一方、引数としてコマンドを指定するとそのコマンド だけを実行します。 対話モードでは、 .Nm はコマンドラインヒストリを保持します。 .Ss オプション .Nm のコマンドにはオプションを付加することができます。どのコマンドにも 下記オプションのどれでも指定することができますが、指定しても変化がない場合も あります。 その場合にはそのオプションは無視されます。例えば、 .Nm stop コマンドは .Fl v オプションと .Fl V オプションを無視します。 .Bl -hang .It Cd -v .Nm -v オプションはどのコマンドにも使えて、より詳細な情報を引き出します。 .It Cd -V .Nm -V オプションはどのコマンドにも使えて、 .Nm -v オプションが表示するものよりさらに詳細な情報を引き出します。 .It Cd -f .Nm -f オプションは安全性の確認を無効にします。細心の注意を払って 使用して下さい。 このオプションは緊急時にのみ使用するものです。例えば、 コマンド .Bd -unfilled -offset indent rm -f myvolume .Ed .Pp は .Nm myvolume がオープンされていたとしても削除します。以降、このボリュームに アクセスすると、ほぼ確実にパニックを起こします。 .It Cd -r .Nm -r .if t (``recursive: 再帰的'') .if n ("recursive: 再帰的") オプションは表示系のコマンドで使い、 指示したオブジェクト だけでなく、下位のオブジェクトの情報も表示します。 例えば、 .Nm lv コマンドとともに使われる場合、 .Nm -r オプションは対象のボリュームに属するプレックスとサブディスクの情報も表示します。 .It Cd -s .Nm -s オプションは表示系のコマンドで統計情報を表示するために使います。 .El .Pp .Ss コマンドの詳細 .Pp .Nm コマンドは以下の機能を実行します。 .Bl -hang .It Nm attach Ar plex Ar volume .Op Nm rename .if n .sp -1v .if t .sp -.6v .It Nm attach Ar subdisk Ar plex Ar [offset] .Op Nm rename .sp .Nm .Ar attach は指定されたプレックスやサブディスクをそれぞれボリュームやプレックスに 組み込みます。サブディスクに ついては、プレックス中の始点 (オフセット) を指定することができます。 指定がない場合、 サブディスクは有効な最初の位置に結合されます。空でないボリュームにプレックスが 結合されると、 .Nm はそのプレックスを再統合します。 .Pp .Nm rename キーワードが指定されると、 .Nm はオブジェクトの (プレックスの場合には下位のサブディスクの) 名前を変更して デフォルトの .Nm 命名規則に合わせます。 .Pp サブディスク結合に際しては、いくつか考慮すべきことがあります: .Bl -bullet .It サブディスクの結合対象は、通常、コンカチネート化プレックスのみです。 .It ストライプ化プレックスおよび RAID-5 プレックスにおいて サブディスクが失われた場合 (例えばドライブの故障後など)、 当該サブディスクを置き換えられるのは同じ大きさのサブディスクだけです。 別のサブディスクを結合することは、現在許されていません。 .It コンカチネート化プレックスに対しては、 .Ar offset パラメータが、プレックスの先頭からのブロック単位のオフセットを指定します。 ストライプ化プレックスおよび RAID-5 プレックスに対しては、 本パラメータは、サブディスクの最初のブロックのオフセットを指定します。 別の表現をするなら、オフセットは、 サブディスクの数値指定による位置とストライプの大きさとの積になります。 例えば、ブロックの大きさが 256k のプレックスでは、 最初のサブディスクはオフセット 0 に、2 番目のオフセットは 256k に、 3 番目は 512k に、などとなります。 この計算では、RAID-5 プレックスのパリティブロックは無視されます。 .El .It Nm create Fl f Ar description-file .sp .Nm .Ar create はどのオブジェクトの作成にも使われます。相互の関連性が比較的複雑で .Nm オブジェクトの作成には潜在的に危険があることを考慮して、この機能には対話的な インタフェースはありません。詳細は後述の設定ファイルの節を参照して下さい。 .Pp .Nm の .Ar create 機能は加法的であることに注意してください: 複数回実行すると、名前付けしていない全オブジェクトのコピーを、 複数生成することになります。 .Pp 通常 .Nm create は既存の .Nm ドライブの名前を変更しません。これは、誤って消去してしまうのを避けるためです。 不要な .Nm ドライブを破棄する正しい方法は、 .Nm resetconfig コマンドで設定をリセットすることです。 しかし、起動できない .Nm ドライブ上に新規データを生成する必要がある場合があります。 この場合、 .Nm create Fl f を使用してください。 .It Nm debug .Pp .Nm .Ar debug はリモートカーネルデバッガに入るために使用します。これは .Nm が .Ar VINUMDEBUG オプション付きで作成されている場合にのみ実行可能です。 このオプションはカーネルデバッガから抜け出るまでオペレーティング システムの実行を停止させます。 リモートデバッグが設定されており、 カーネルデバッガへのリモートコネクションがないと、 デバッガから抜け出るためにはシステムをリセットしてリブート することが必要になります。 .It Nm debug .Ar flags .Pp 内部デバッグフラグのビットマスクを設定します。 本製品が改良されるにつれ、このビットマスクは警告無しに変更されるでしょう。 確認のために、ヘッダファイル .Pa sys/dev/vinumvar.h を見てください。 ビットマスクは次の値から構成されます: .Bl -hang .It DEBUG_ADDRESSES (1) .br リクエスト中のバッファ情報を表示します。 .It DEBUG_NUMOUTPUT (2) .br .Dv vp->v_numoutput の値を表示します。 .It DEBUG_RESID (4) .br .Fd complete_rqe においてデバッガに移行します。 .It DEBUG_LASTREQS (8) .br 最新のリクエストのリングバッファを保存します。 .It DEBUG_REVIVECONFLICT (16) .br 再生における衝突に関する情報を表示します。 .It DEBUG_EOFINFO (32) .br ストライププレックスで EOF を返すとき、内部状態の情報を表示します。 .It DEBUG_MEMFREE (64) .br 最後にメモリアロケータが解放したメモリ領域に関する循環リストを管理します。 .It DEBUG_REMOTEGDB (256) .br .Nm debug コマンドが発行されたときに、リモート .Ic gdb に移行します。 .El .It Nm detach Op Fl f .Ar plex .if n .sp -1v .if t .sp -.6v .It Nm detach Op Fl f .Ar subdisk .sp .Nm .Ar detach は指定されたプレックスやサブディスクを、 結合されているボリュームやプレックスから 分離します。分離するとボリュームのデータが欠ける可能性のある 場合、この操作は .Fl f オプションを指定しない限り実行されません。 オブジェクトが上位のオブジェクトに従った名前になっている場合 (例えば、プレックス vol1.p7 に結合されているサブディスク vol1.p7.s0 の場合)、 その名前は頭に .if t ``ex-'' .if n "ex-" がついたものに変更されます (例えば ex-vol1.p7.s0 に変更されます)。 その後の処理で必要であれば、その名前から頭の部分が外されます。 .Pp ストライプ化プレックスおよび RAID-5 プレックスにおいては、 .Nm detach はサブディスク数を減らしません。 その代わり、サブディスクには存在しないという印が付けられ、後で .Nm attach コマンドを使用して交換可能となります。 .It Nm info .br .Nm .Ar info は .Nm のメモリ使用に関する情報を表示します。これは主にデバッグのためのものです。 .Fl v オプションを付けると、使用中のメモリ領域についての詳細な情報を表示します。 .Pp .Fl V オプションを付けると、 .Nm ドライバが扱った最大 64 個までの最近の I/O リクエストに関する情報を、 .Ar info は表示します。 この情報は、デバッグフラグ 8 が設定されているときのみ収集されます。 書式は次のようになります: .Pp .Bd -literal vinum -> info -V Flags: 0x200 1 opens Total of 38 blocks malloced, total memory: 16460 Maximum allocs: 56, malloc table at 0xf0f72dbc Time Event Buf Dev Offset Bytes SD SDoff Doffset Goffset 14:40:00.637758 1VS Write 0xf2361f40 0x5b03 0x10 16384 14:40:00.639280 2LR Write 0xf2361f40 0x5b03 0x10 16384 14:40:00.639294 3RQ Read 0xf2361f40 0x427 0x104109 8192 19 0 0 0 14:40:00.639455 3RQ Read 0xf2361f40 0x417 0xd2109 8192 17 0 0 0 14:40:00.639529 3RQ Read 0xf2361f40 0x40f 0x6e109 8192 16 0 0 0 14:40:00.652978 4DN Read 0xf2361f40 0x427 0x104109 8192 19 0 0 0 14:40:00.667040 4DN Read 0xf2361f40 0x40f 0x6e109 8192 16 0 0 0 14:40:00.668556 4DN Read 0xf2361f40 0x417 0xd2109 8192 17 0 0 0 14:40:00.669777 6RP Write 0xf2361f40 0x427 0x104109 8192 19 0 0 0 14:40:00.685547 4DN Write 0xf2361f40 0x427 0x104109 8192 19 0 0 0 .Ed .Pp .Ar Buf フィールドは、ユーザバッファヘッダのアドレスを常に含みます。 ユーザリクエストに関連付けられるリクエスト (複数可) を識別するために 使用できますが、100% 信頼できるものというわけではありません: 理論的には、シーケンス中の 2 個のリクエストが同じバッファヘッダを使い得ますが、 これは一般的ではありません。 リクエストの先頭は、イベント .Ar 1VS で識別可能です。 前記の例では、複数のリクエストが単一のユーザリクエストに含まれています。 .Pp .Ar Event フィールドは、 リクエストチェーン中のイベントシーケンスに関連する情報を含みます。 .Ar 1 から .Ar 6 までの数字はイベントの大まかなシーケンスを示し、 2 文字の省略形は位置のニーモニックです。 .Bl -hang .It 1VS (vinum の strategy) .Fd vinumstrategy の入口にある、ユーザリクエストに関する情報を表示します。 デバイス番号は .Nm デバイスであり、オフセットと長さはユーザパラメータです。 本ニーモニックは、常にリクエストシーケンスの先頭になります。 .It 2LR (リクエスト発行) 関数 .Fd launch_requests において低レベル .Nm リクエストを発行する直前の、ユーザリクエストを表示します。 パラメータは .Ar 1VS の情報と同じはずです。 .Pp ここから後のリクエストでは、利用可能である場合、 .Ar Dev は関連付けられたディスクパーティションのデバイス番号であり、 .Ar Offset はパーティションの先頭からのオフセットであり、 .Ar SD は .Dv vinum_conf 中のサブディスクインデックスであり。 .Ar SDoff はサブディスクの先頭からのオフセットであり、 .Ar Doffset は関連付けられたデータリクエストのオフセットであり、 .Ar Goffset は関連付けられたグループリクエストのオフセットです。 .It 3RQ (リクエスト) 高レベルのリクエストを満たすために発行される、 いくつかありうる低レベル .Nm リクエストのうちのひとつを表示します。 この情報は、 .Fd launch_requests においても記録されます。 .It 4DN (完了) .Fd complete_rqe から呼ばれ、リクエストの完了を表示します。 この完了は、ステージ .Ar 4DN において .Fd launch_requests から発行されたリクエストか、またはステージ .Ar 5RD か .Ar 6RP の .Fd complete_raid5_write から発行されたリクエストにマッチするはずです。 .It 5RD (RAID-5 データ) .Fd complete_raid5_write から呼ばれ、 パリティ計算後に RAID-5 データストライプへ書き込まれたデータを表現します。 .It 6RP (RAID-5 パリティ) .Fd complete_raid5_write から呼ばれ、 パリティ計算後に RAID-5 パリティストライプへ書き込まれたデータを表現します。 .El .\" XXX .It Nm init Ar plex .Pp .Nm .Ar init は指定したプレックスのすべてのサブディスクに 0 を書き込んでプレックスを初期化 します。これはプレックス中のデータに矛盾のないことを確実にする唯一の方法です。 RAID-5 プレックスの使用前には、この初期化が必要です。 他の新規プレックスに対しても、この初期化を推奨します。 .Pp .Nm はプレックス中のすべてのサブディスクを並行して初期化します。 この操作には長い時間が かかるため、バックグラウンドで実行されます。 .Nm は初期化が完了するとコンソールメッセージを出力します。 .It Nm label .Ar volume .Pp .Nm label コマンドは、ボリュームに .Ar ufs 形式のボリュームラベルを書き込みます。これは適切に .Ar disklabel を呼び出すことに対しての、単純な代替方法です。 いくつかの .Ar ufs コマンドはラベルを入手するために正規の .Ar ioctl コールを使わず、依然としてラベルを捜してディスクの読み込みを行う ため、このコマンドは必要になります。 .Nm はボリュームのデータとは別にボリュームラベルを保持しているため、この コマンドは .Ar newfs 用には必要ありません。 このコマンドの価値は低下しています。 .Pp .It Nm list .Op Fl r .Op Fl V .Op volume | plex | subdisk .if n .sp -1v .if t .sp -.6v .It Nm l .Op Fl r .Op Fl V .Op volume | plex | subdisk .if n .sp -1v .if t .sp -.6v .It Nm ld .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume .if n .sp -1v .if t .sp -.6v .It Nm ls .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op subdisk .if n .sp -1v .if t .sp -.6v .It Nm lp .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op plex .if n .sp -1v .if t .sp -.6v .It Nm lv .Op Fl r .Op Fl s .Op Fl v .Op Fl V .Op volume .Pp .Ar list は指定したオブジェクトの情報を表示するために使われます。引数が省略されると .Nm が認識しているすべてのオブジェクトについての情報が表示されます。 .Ar l コマンドは .Ar list と同じものです。 .Pp .Fl r オプションはボリュームとプレックスに関連します。 指定されると、そのオブジェクト下位のサブディスクと (ボリュームに対しては) プレックスの情報を再帰的に表示します。 .Ar lv , .Ar lp , .Ar ls , .Ar ld のコマンドは、それぞれボリューム、プレックス、サブディスク、そしてドライブの 情報だけを表示します。これはパラメータを指定しないで使う場合に特に有用です。 .Pp .Fl s オプションで .Nm は装置の統計情報を出力するようになり、 .Op Fl v (verbose: 饒舌な) オプションはいくらかの付加情報を出力させ、 そして .Op Fl V は数多くの付加情報を出力させます。 .It Nm makedev .br .Nm makedev コマンドは、ディレクトリ /dev/vinum を除去した上で、 現在の設定を反映するようなデバイスノードと共にこのディレクトリを再作成します。 本コマンドは、通常の場合に使用されることを意図していません。 非常時にのみ使用するために提供しています。 .Pp .It Nm quit 対話モードで実行中のときに、 .Nm プログラムを終了します。通常は、文字 .Ar EOF を入力することで実現できます。 .It Nm printconfig Pa file 現在の設定のコピーを、 .Nm 設定を再生成可能な書式で、 .Pa file に書き込みます。 ディスク上に保存された設定とは違い、ドライブの定義を含みます。 .It Nm read .Ar disk Op disk... .Pp .Nm read コマンドは、指定したディスクを走査し、作成済の設定情報を含む .Nm パーティションを探します。 そして、最近更新されたものから過去に更新されたものの順番で、 設定を読み込みます。 .Nm は最新のすべての設定情報を各ディスクパーティションに保持しています。 このコマンドの パラメータとして、設定の中の全スライスを指定する必要があります。 .Pp .Nm read コマンドは、他の .Nm パーティションを持つシステム上で、 .Nm 設定を選択的にロードすることを意図しています。 システム上の全パーティションを起動したい場合、 .Nm start コマンドを使用する方が簡単です。 .Pp 本コマンド実行時に .Nm がエラーになると、 ディスク上のコピーが壊れないようにするため、自動的な設定更新を無効にします。 これは、ディスク上の設定が、設定エラーを示す (例えば、有効な空間指定を持たないサブディスク) 場合にも同様です。 再度更新をオンにするには、 .Nm setdaemon と .Nm saveconfig のコマンドを使用してください。 デーモンオプションマスクのビット 4 をリセットして、 設定保存を再度有効にしてください。 .It Nm rename .Op Fl r .Ar [ drive | subdisk | plex | volume ] .Ar newname .Pp 指定したオブジェクトの名前を変更します。 .Fl r オプションが指定されると、下位のオブジェクトがデフォルトの規則に従って命名され ます。プレックスの名前はボリューム名に .p\f(BInumber\fP を付加して作られ、 サブディスクの名前はプレックス名に .s\f(BInumber\fP を付加して作られます。 .It Nm replace .Ar [ subdisk | plex ] .Ar newobject .Pp 指定したオブジェクトを同一の他のオブジェクトで置き換えます。このコマンドはまだ 実装されていません。 .It Nm resetconfig .Pp .Nm resetconfig コマンドはシステム内の .Nm 設定を完全に削除します。設定を完全に消去したい場合にだけ使って下さい。 .Nm は確認を求めます。NO FUTURE (前途なし) という語句を以下の通りに入力する必要が あります。 .Bd -unfilled -offset indent # \f(CBvinum resetconfig\f(CW WARNING! This command will completely wipe out your vinum configuration. All data will be lost. If you really want to do this, enter the text NO FUTURE Enter text -> \f(BINO FUTURE\fP Vinum configuration obliterated (訳注: ここから上記テキストの翻訳です) 警告! このコマンドはあなたの vinum 設定を完全に消し去ります。 全データは失われます。本当にこれを実行したい場合は、語句 NO FUTURE を入力して下さい。 入力してください -> \f(BINO FUTURE\fP vinum の設定は削除されました。 (訳注: ここまで上記テキストの翻訳です) .Ed .ft R .Pp メッセージが示すように、どたん場のコマンドです。 既存の設定をもう見たくもないとき以外は、このコマンドを使わないでください。 .It Nm resetstats .Op Fl r .Op volume | plex | subdisk .Pp .Nm は各オブジェクトについて多数の統計カウンタを保持しています。詳細は ヘッダファイル .Fi vinumvar.h を参照して下さい。 .\" XXX 仕上がったらここに入れる これらのカウンタをリセットするためには .Nm resetstats コマンドを使って下さい。 .Fl r オプションも共に指定すると、 .Nm は下位のオブジェクトのカウンタもリセットします。 .It Nm rm .Op Fl f .Op Fl r .Ar volume | plex | subdisk .Pp .Nm rm はオブジェクトを .Nm 設定から消去します。ひとたびオブジェクトが消去されるとそれを復旧する方法は ありません。通常 .Nm はオブジェクトを消去する前に数多くの一貫性確認を行います。 .Fl f オプションを指定すると、 .Nm はこの確認を省略し、オブジェクトを無条件に消去します。このオプションは細心の 注意を払って使用して下さい。ボリューム上のすべてのデータを失うことも あり得ます。 .Pp 通常、 .Nm は下位にプレックスを持つボリュームや、下位にサブディスクを持つプレックスを 消去することを拒否します。 .Fl f フラグを指定すると、 .Nm は無条件にオブジェクトを消去します。または .Fl r (recursive: 再帰的) フラグを使うことで、同様に下位のオブジェクトを 消去することができます。 .Fl r フラグを付けてボリュームを消去すると、プレックスとそれに属するサブディスクも 消去します。 .It Nm saveconfig .Pp 現在の設定をディスクに保存します。 本コマンドの第一義は整備用です。 例えば、起動時にエラーが発生した場合、更新は無効化されます。 再度有効化しても、設定は自動的にはディスクへ保存されません。 このコマンドを使用して設定を保存してください。 .ig .It Nm set .Op Fl f .Ar state .Ar volume | plex | subdisk | disk .Nm set は指定したオブジェクトに、妥当な状態 (下記「オブジェクト状態」参照) のひとつを セットします。 通常、 .Nm は変更を加える前に非常に多くの一貫性の調査を実行します。 .Fl f オプションを指定すると、 .Nm はこの調査を省略し、無条件に変更を行います。このオプションは大いに注意して 使って下さい。ボリューム上のすべてのデータを失うこともあり得ます。 .\"XXX .Nm このコマンドはまだ実装されていません。 .. .It Nm setdaemon .Op value .Pp .Nm setdaemon は .Nm デーモンの変数ビットマスクを設定します。 本コマンドは一時的なものであり、将来置き換えられます。 現在、ビットマスクにはビット 1 (全アクションを syslog へ記録する) と ビット 4 (設定を更新しない) があります。 オプションビット 4 はエラー回復時に有用かもしれません。 .It Nm start .Op volume | plex | subdisk .Pp .Nm start は 1 つまたはそれ以上の .Nm オブジェクトを起動します ( .Ar up 状態に移行させます)。 .Pp オブジェクト名を指定しないと、システムが .Nm ドライブであると知っているディスクを、 .Nm は走査します。その後、 .Nm read コマンドのところに書いてあるように、設定を読み込みます。 .Nm ドライブにはそのドライブ中のデータについてのすべての情報を持つヘッダが 入っており、その情報としてはプレックスとボリュームを表現するために必要な 他のドライブの名前を含んでいます。 .Pp 本コマンド実行時に .Nm がエラーになると、 ディスク上のコピーが壊れないようにするため、自動的な設定更新を無効にします。 これは、ディスク上の設定が、設定エラーを示す (例えば、有効な空間指定を持たないサブディスク) 場合にも同様です。 再度更新をオンにするには、 .Nm setdaemon と .Nm saveconfig のコマンドを使用してください。 デーモンオプションマスクのビット 4 をリセットして、 設定保存を再度有効にしてください。 .Pp オブジェクト名が指定されると、 .Nm はそれらを起動します。 通常、この操作はサブディスクに対してのみ行います。 動作はオブジェクトの現在の状態に依存します: .Bl -bullet .It オブジェクトが既に .Ar up 状態の場合、 .Nm はなにもしません。 .It オブジェクトがサブディスクであり、 .Ar down または .Ar reborn の状態の場合、 .Nm は .Ar up 状態に変更します。 .It オブジェクトがサブディスクであり、 .Ar empty 状態の場合、変更はサブディスクに依存します。 サブディスクがプレックスの一部であり このプレックスが他のプレックスを含むボリュームの一部である場合、 .Nm はサブディスクを .Ar reviving 状態にし、データをボリュームからコピーしようとします。 操作完了時に、サブディスクは .Ar up 状態に設定されます。 サブディスクがプレックスの一部であり このプレックスが他のプレックスを含まないボリュームの一部である場合、 またはサブディスクがプレックスの一部ではない場合、 .Nm は即時にサブディスクを .Ar up 状態にします。 .It オブジェクトがサブディスクであり、 .Ar reviving 状態である場合、 .Nm は .Ar revive 操作をオフラインにて継続します。 操作完了時に、サブディスクは .Ar up 状態に設定されます。 .El .Pp サブディスクが .Ar up 状態になると、 .Nm は自動的に、 サブディスクが属す可能性のあるプレックスとボリュームの状態をチェックし、 これらの状態を適切に更新します。 .Pp オブジェクトがボリュームまたはプレックスの場合、 .Nm start は現在のところ効果がありません: 下位のサブディスクの (ボリュームの場合にはこれに加えてプレックスの) 状態を チェックし、これに従ってオブジェクトの状態を設定します。 将来のバージョンでは、本操作はサブディスクに影響を与えるようになります。 .Pp マルチプレックスボリュームの中の 1 つのプレックスを起動するには、 ボリューム中の他のプレックスからデータをコピーする必要があります。 これにはしばしば長い時間がかかるため、バックグラウンドで実行されます。 .It Nm stop .Op Fl f .Op volume | plex | subdisk .Pp パラメータを指定しないと、 .Nm stop は .Nm kld を削除し、 .Xr vinum 8 を停止します。 活動状態のオブジェクトが存在しない場合のみ、行うことが可能です。 特に、 .Fl f フラグはこの要求に優先しません。 このコマンドが動作するのは、 .Nm が kld としてロードされている場合のみです。 静的に構成されたドライバをアンロードすることはできないからです。 .Nm が静的に構成されている場合、 .Nm .Nm stop は失敗します。 .Pp オブジェクト名が指定されると、 .Nm stop はそのオブジェクトへのアクセスを無効化します。 オブジェクトに下位オブジェクトがある場合、 それらのサブオブジェクトは既に非活動状態 (stop また error) となっているか、 .Fl r と .Fl f のフラグが指定されていることが必要です。 このコマンドは、オブジェクトを設定から取り除きません。 .Nm start コマンドの後で再度アクセスができるようになります。 .Pp デフォルトでは .Nm は動作中のオブジェクトは停止しません。例えば、動作中のボリュームに結合 されているプレックスは停止できないし、オープン中のボリュームは停止できません。 .Fl f オプションは .Nm にこの確認を省略して無条件に削除するよう指示します。このオプションは 大いに注意し、よく理解した上で使って下さい。もし間違って使うとひどい データ破壊を起こすことがあります。 .El .Ss 設定ファイル .Nm では、 .Nm create コマンドに渡すすべての引数は設定ファイルに入っている必要があります。 設定ファイルのエントリは、ボリュームやプレックスやサブディスクを定義します。 エントリは 1 行に 1 つということ以外には決まった書式はありません。 .Pp 設定ファイルのいくつかの引数では、大きさ (長さ、ストライプ長) を指定します。 これらの長さは、バイト単位でも、512バイトのセクタ数 (\f(CWb\fRを後ろにつける) でも、キロバイト単位 (\f(CWk\fRをつける) でも、メガバイト単位(\f(CWm\fRを つける)でも、またはギガバイト単位 (\f(CWg\fRをつける) でも指定することが できます。これらの数はそれぞれ 2**10、2**20、2**30を表しています。例えば、 \f(CW16777216\fR バイトという値は \f(CW16m\fR とも \f(CW16384k\fR とも \f(CW32768b\fR とも記述することができます。 .Pp 設定ファイルには以下のエントリを記述することができます。 .Pp .Bl -hang -width 4n .It Nm volume .Ar name .Op options .Pp .Ar name という名前でボリュームを定義します。 .Pp オプションには次のものがあります。 .Pp .Bl -hang -width 18n .It Nm plex Ar plexname 指定したプレックスをボリュームに追加します。 .Ar plexname が .Ar * として指定されると、 .Nm は設定ファイル中のボリューム定義の後で、次の妥当なエントリとなり得るプレックス の定義を捜します。 .It Nm readpol Ar policy ボリュームの .Ar read policy (読み込み方針) を定義します。 .Ar policy は .Nm round か .Nm prefer Ar plexname のどちらかです。 .Nm は読み込み要求を、ただ 1 つのプレックスによって満たします。 .Ar round 読み込み方針は、読み込みを別々のプレックスから \fIラウンドロビン\fR\| 方式で 行うように指定します。 .Ar prefer 読み込み方針では、指定したプレックスから毎回読み込みを行います。 .It Nm setupstate .Pp マルチプレックスボリュームを作成する際に、すべてのプレックスの内容に一貫性が あると仮定します。通常こうなることはないため、正式には .Nm init コマンドを使って、最初に一貫性のある状態にする必要があります。しかし ストライプ化プレックスとコンカチネート化プレックスの場合には、普通は一貫性が ないままでも問題にはなりません。ボリュームをファイルシステムや スワップパーティションとして使う場合にはディスク上の以前の内容は どうでもよいため、それは無視されます。この危険を受け入れる場合には、 このキーワードを使って下さい。 設定ファイル中でボリュームの直後で定義されるプレックスに対してのみ 適用されます。 後でプレックスをボリュームに追加する場合には、 これらのプレックスを統合する必要があります。 .Pp RAID-5 プレックスには .Nm init を使うことが \fI必要\fP\| なことに注意して下さい。さもないと 1 つのサブディスクに障害が起きた時、大きくデータが破壊されます。 .fi .El .It Nm plex Op options .Pp プレックスを定義します。ボリュームとは違い、名前は不要です。 オプションには次のものを指定可能です: .Pp .Bl -hang -width 18n .It Nm name Ar plexname プレックスの名前を指定します。プレックスやサブディスクに名前をつける場合には .Ar name キーワードが必要になることに注意して下さい。 .sp .It Nm org Ar organization Op stripesize .Pp プレックスの編成を指定します。 .Ar organization は .Ar concat か .Ar striped か .Ar raid5 のいずれかです。 .Ar striped と .Ar raid5 のプレックスに対しては .Ar stripesize 引数を指定する必要がありますが、 .Ar concat のプレックスに対しては省略する必要があります。 .Ar striped タイプについては各ストライプの幅を指定します。 .Ar raid5 については、グループの大きさを指定します。 グループとはプレックスの一部分であり、 同じサブディスクに入っているすべてのデータのパリティが入っています。 それはプレックスの大きさの約数である必要があり (つまり、プレックスの大きさをストライプの大きさで割ったものは 整数である必要があり)、 ディスクセクタ長 (512バイト) の倍数である必要があります。 .sp 最適な性能のためには、ストライプの大きさは少なくとも 128kB であるべきです。 これより小さくすると、 個々のリクエストが複数のディスクに対して割り当てられることにより、 I/O のアクティビティが非常に増加します。 本マッピングによる並行転送数増加に起因する性能向上は、 レイテンシ増加に起因する性能劣化を引き起しません。 ストライプの大きさの目安は、256 kB から 512 kB の間です。 .Pp ストライプ化プレックスは最低 2 つのサブディスクを持つ必要がありますし (そうでないとコンカチネート化プレックスになります)、 それぞれは同じ大きさである必要があります。 RAID-5 プレックスは最低 3 つのサブディスクを持つ必要があり、 それぞれは同じ大きさである必要があります。 実際には RAID-5 プレックスは最低 5 つのサブディスクから構成されるべきです。 .Pp .It Nm volume Ar volume プレックスを、指定したボリュームに追加します。 .Nm volume キーワードが指定されないと、プレックスは設定ファイル中の最後に記述された ボリュームに追加されます。 .sp .It Nm sd Ar sdname Ar offset 指定したサブディスクをプレックスの .Ar offset の位置に追加します。 .br .fi .El .It Nm subdisk Op options .Pp サブディスクを定義します。オプションには次のものを指定可能です: .Pp .Bl -hang -width 18n .nf .sp .It Nm name Ar name サブディスクの名前を指定します。これは必ずしも指定する必要は ありません\(em 上記の「オブジェクトの命名」を参照してください。 サブディスクに名前をつける場合には .Ar name キーワードを指定する必要があることに注意して下さい。 .sp .It Nm plexoffset Ar offset プレックス内のサブディスクの始点を指定します。指定がないと、 .Nm はすでにサブディスクがあればその直後の領域を割り当て、なければ プレックスの先頭から割り当てます。 .sp .It Nm driveoffset Ar offset ドライブ内のサブディスクの始点を指定します。指定がないと、 .Nm はドライブ中で最初の .Ar length バイト連続の空き領域を割り当てます。 .sp .It Nm length Ar length サブディスクの大きさを指定します。このキーワードは必須です。 デフォルト値はありません。 値 0 を指定すると、 .if t ``ドライブ上で最大限利用可能な連続空き領域を使用'' .if n "ドライブ上で最大限利用可能な連続空き領域を使用" という意味になります。 ドライブが空の場合、サブディスクとしてドライブ全体を使用することを意味します。 .Nm length は .Nm len と短縮することもできます。 .sp .It Nm plex Ar plex サブディスクが属すプレックスを指定します。デフォルトでは、サブディスクは 最後に記述されたプレックスに属します。 .sp .It Nm drive Ar drive サブディスクが乗るドライブを指定します。デフォルトでは最後に記述された ドライブ上に位置します。 .br .fi .El .It Nm drive Ar name Op options .Pp ドライブを定義します。オプションには次のものを指定可能です: .Pp .Bl -hang -width 18n .It Nm device Ar devicename ドライブが乗るデバイスを指定します。 .El .El .Sh 設定ファイル例 .Bd -literal # vinum 設定ファイル例 # # ドライブ drive drive1 device /dev/da1h drive drive2 device /dev/da2h drive drive3 device /dev/da3h drive drive4 device /dev/da4h drive drive5 device /dev/da5h drive drive6 device /dev/da6h # 1 つのストライプ化プレックスをもつボリューム volume tinyvol plex org striped 512b sd length 64m drive drive2 sd length 64m drive drive4 volume stripe plex org striped 512b sd length 512m drive drive2 sd length 512m drive drive4 # 2 つのプレックス volume concat plex org concat sd length 100m drive drive2 sd length 50m drive drive4 plex org concat sd length 150m drive drive4 # 1 つのストライプ化プレックスと 1 つのコンカチネート化プレックスを持つボリューム volume strcon plex org striped 512b sd length 100m drive drive2 sd length 100m drive drive4 plex org concat sd length 150m drive drive2 sd length 50m drive drive4 # 1 つの RAID-5 プレックスと 1 つのストライプ化プレックスを持つボリューム # RAID-5 ボリュームの方が 1 つのサブディスク分だけ大きいことに注意 volume vol5 plex org striped 64k sd length 1000m drive drive2 sd length 1000m drive drive4 plex org raid5 32k sd length 500m drive drive1 sd length 500m drive drive2 sd length 500m drive drive3 sd length 500m drive drive4 sd length 500m drive drive5 .Ed .Ss ドライブレイアウト上の考慮点 現在、 .Nm ドライブは BSD ディスクパーティションです。それは ファイルシステムの上書きを避けるために .Ar vinum タイプである必要があります。 互換性のために、現在の .Nm はパーティションタイプ .Ar unused を受け付けますが、次のリリースではこの種類のパーティションは許しません。 タイプ .Ar unused であるパーティションから設定を読み出すと、 .Nm は警告メッセージを表示します。 .Nm disklabel .Ar -e を使用して、パーティションタイプ定義を編集してください。 次の表示は、 .Nm disklabel が示す典型的なパーティションレイアウトです: .Bd -literal 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 81920 344064 4.2BSD 0 0 0 # (Cyl. 240*- 297*) b: 262144 81920 swap # (Cyl. 57*- 240*) c: 4226725 0 unused 0 0 # (Cyl. 0 - 2955*) e: 81920 0 4.2BSD 0 0 0 # (Cyl. 0 - 57*) f: 1900000 425984 4.2BSD 0 0 0 # (Cyl. 297*- 1626*) g: 1900741 2325984 vinum 0 0 0 # (Cyl. 1626*- 2955*) .Ed .sp この例では、パーティション .Nm g を .Nm パーティションとして使用可能です。パーティション .Nm a , .Nm e , .Nm f は、 .Nm UFS ファイルシステムまたは .Nm ccd パーティションとして使用可能です。パーティション .Nm b はスワップパーティションであり、パーティション .Nm c はディスク全体を表現するため他の用途に使用できません。 .Pp .Nm は各パーティションの先頭から 265 セクタを設定情報に使用するため、 サブディスクの最大の大きさはドライブよりも 265 セクタ小さくなります。 .Sh VINUM 設定法 本節では、 .Nm システムの実装方法に関する、現実的なアドバイスを行います。 .Ss データを何処に置くか まず決定が必要な選択は、データを何処に置くかです。 .Nm 専用のディスクパーティションが必要です。 前述した、ドライブレイアウト上の考慮点にある使用例を参照してください。 .Xr disklabel 8 がパーティションタイプ .Nm を理解しないバージョンである場合を除き、パーティションタイプ .Nm を選択してください。 .Xr disklabel 8 が理解しない場合には、これを更新するまで、パーティションタイプ .Nm unused を使用する必要があります。 真のパーティション名 (例えば .Pa /dev/da0s1g ) ではなく、互換パーティション名 (例えば .Pa /dev/da0g ) を使用してください。 現在のところ、 .Nm start コマンドには互換パーティションのみを .Nm は使用しますので、問題を避けることが可能となっています。 .Ss ボリュームのデザイン .Nm ボリュームの設定方法は、あなたの意図に依存します。 次のように多くの可能性があります: .Bl -enum .It 多くの小さなディスクを結合して、 適切な大きさのファイルシステムを作成したいと考えるかもしれません。 例えば、小さなディスクを 5 個持っていて、 全空間を単一ボリュームとして使用したい場合、次のような設定ファイルを書きます: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e drive d5 device /dev/da6e volume bigger plex org concat sd length 0 drive d1 sd length 0 drive d2 sd length 0 drive d3 sd length 0 drive d4 sd length 0 drive d5 .Ed .Pp この場合、サブディスクの長さを 0 と指定します。 これは、 .if t ``ドライブ上にある空き空間のうち、最大領域を使用する'' .if n "ドライブ上にある空き空間のうち、最大領域を使用する" ことを意味します。 指定するサブディスクが、ドライブ上の唯一のサブディスクである場合、 このサブディスクは使用可能な空間全体を使用します。 .It ディスク故障に対する追加の回復力 (レジリエンス; resilience) を .Nm に与えたい場合を考えます。 選択肢としては、 .if t ``ミラーリング'' .if n "ミラーリング" とも呼ばれる RAID-1 か、 .if t ``パリティ'' .if n "パリティ" とも呼ばれる RAID-5 があります。 .Pp ミラーリングの設定のためには、 単一ボリュームの中に複数のプレックスを作成する必要があります。 例えば、 2 GB のミラー化ボリュームを作成するには、 次のような設定ファイルを作成します: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e volume mirror plex org concat sd length 2g drive d1 plex org concat sd length 2g drive d2 .Ed .Pp ミラー化ドライブを作成するときには、 各プレックスからのデータが、 違う物理ディスク上にあることを保証することが重要です。 これにより、単一ドライブ故障においても、 .Nm はボリュームの完全なアドレス空間にアクセス可能となります。 各プレックスが、 完全なボリュームと同じだけのデータを必要とすることに注意してください: この例では、ボリュームは 2 GB の大きさですが、各プレックス (と各サブディスク) は 2 GB を必要としますので、全体のディスクストレージ要求は 4 GB となります。 .Pp RAID-5 の設定をするには、タイプ .Ar raid5 の単一プレックスを作成します。 例えば、回復力を持つ 2 GB に相当するボリュームを作成するには、 次のような設定ファイルを使用します: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e drive d5 device /dev/da6e volume raid plex org raid5 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 sd length 512m drive d5 .Ed .Pp RAID-5 プレックスは、最低 3 個のサブディスクを必要とします。 これらのうち 1 個には、パリティ情報を格納するので、 データストレージとしては使用しません。 より多くのディスクを使用すると、 より多くの割合のディスクストレージを、 データストレージとして使用可能となります。 この例では、総ストレージ使用量は 2.5 GB です。 これに対し、ミラー設定での総ストレージ使用量は 4 GB です。 最小の 3 個のディスクだけを使用する場合、 情報格納のために次のように 3 GB を必要とします: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e volume raid plex org raid5 512k sd length 1g drive d1 sd length 1g drive d2 sd length 1g drive d3 .Ed .Pp ミラー化ドライブを作成するときには、 各サブディスクからのデータが、 違う物理ディスク上にあることを保証することが重要です。 これにより、単一ドライブ故障においても、 .Nm はボリュームの完全なアドレス空間にアクセス可能となります。 .It また、 .Nm の設定により、 ファイルシステムへのアクセスの並行性を増したいと考えるかもしれません。 多くの場合、単一のファイルシステムへのアクセスは、 ディスク速度により制限されます。 ボリュームを複数のディスクに分散することにより、 複数アクセス環境でのスループットを増すことが可能です。 この技術は、単一アクセス環境では、 ほとんど効果がないかまったく効果がありません。 .Nm は .if t ``ストライピング'' .if n "ストライピング" または RAID-0 とも呼ばれる技術を使用し、アクセスの並行性を増します。 RAID-0 という名称は誤解を生じさせるものです: なぜなら、ストライピングは冗長性も更なる信頼性も提供しないからです。 実際、信頼性は低下します。 なぜなら、単一ディスクの故障はボリュームを使用不可とし、 多くのディスクを使うほどこれらのうち 1 個が故障する確率は増加するからです。 .Pp ストライピングの実装のためには、 .Ar striped (ストライプ化) プレックスを使用します: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e volume raid plex org striped 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 .Ed .Pp ストライプ化プレックスの最低サブディスク数は 2 個です。 多くのディスクを使用するほど、性能が向上します。 .It 両方の最良点を得ることにより、回復力と性能の両方を得ることを考えます。 これは、RAID-10 (RAID-1 と RAID-0 の組み合わせ) と呼ばれることがあります。 この名称もまた誤解を生じさせるものです。 .Nm では、次のような設定ファイルを使用可能です: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e volume raid plex org striped 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 plex org striped 512k sd length 512m drive d4 sd length 512m drive d3 sd length 512m drive d2 sd length 512m drive d1 .Ed .Pp ここでは、プレックスはストライプ化され、性能を向上しています。 そして、このようなプレックスが 2 個あり、回復力を向上しています。 この例で、2 番目のプレックスのサブディスクの順番が、 1 番目のプレックスの逆になっていることに注意してください。 これは性能のためであり、後で議論します。 .El .Ss ボリュームの作成 ひとたび設定ファイルを作成した後は、 .Nm を起動し、ボリュームを作成します。 この例では、設定ファイルは .Pa configfile です: .Bd -literal # vinum create -v configfile 1: drive d1 device /dev/da2e 2: drive d2 device /dev/da3e 3: volume mirror 4: plex org concat 5: sd length 2g drive d1 6: plex org concat 7: sd length 2g drive d2 Configuration summary Drives: 2 (4 configured) Volumes: 1 (4 configured) Plexes: 2 (8 configured) Subdisks: 2 (16 configured) Drive d1: Device /dev/da2e Created on vinum.lemis.com at Tue Mar 23 12:30:31 1999 Config last updated Tue Mar 23 14:30:32 1999 Size: 60105216000 bytes (57320 MB) Used: 2147619328 bytes (2048 MB) Available: 57957596672 bytes (55272 MB) State: up Last error: none Drive d2: Device /dev/da3e Created on vinum.lemis.com at Tue Mar 23 12:30:32 1999 Config last updated Tue Mar 23 14:30:33 1999 Size: 60105216000 bytes (57320 MB) Used: 2147619328 bytes (2048 MB) Available: 57957596672 bytes (55272 MB) State: up Last error: none Volume mirror: Size: 2147483648 bytes (2048 MB) State: up Flags: 2 plexes Read policy: round robin Plex mirror.p0: Size: 2147483648 bytes (2048 MB) Subdisks: 1 State: up Organization: concat Part of volume mirror Plex mirror.p1: Size: 2147483648 bytes (2048 MB) Subdisks: 1 State: up Organization: concat Part of volume mirror Subdisk mirror.p0.s0: Size: 2147483648 bytes (2048 MB) State: up Plex mirror.p0 at offset 0 Subdisk mirror.p1.s0: Size: 2147483648 bytes (2048 MB) State: up Plex mirror.p1 at offset 0 .Ed .Pp .Fl v フラグは、設定に従ってファイルをリストするよう、 .Nm に指示します。その後、 .Nm list Fl v コマンドと同じ書式で、現在の設定をリストします。 .Ss より多くのボリュームを作成する ひとたび .Nm ボリュームを作成した後は、 .Nm はこれらの情報を内部の設定ファイルにて管理します。 再度作成する必要はありません。 特に、 .Nm create コマンドを再実行すると、追加のオブジェクトを作ることになります: .Bd -literal .if t .ps -2 # vinum create sampleconfig Configuration summary Drives: 2 (4 configured) Volumes: 1 (4 configured) Plexes: 4 (8 configured) Subdisks: 4 (16 configured) D d1 State: up Device /dev/da2e Avail: 53224/57320 MB (92%) D d2 State: up Device /dev/da3e Avail: 53224/57320 MB (92%) V mirror State: up Plexes: 4 Size: 2048 MB P mirror.p0 C State: up Subdisks: 1 Size: 2048 MB P mirror.p1 C State: up Subdisks: 1 Size: 2048 MB P mirror.p2 C State: up Subdisks: 1 Size: 2048 MB P mirror.p3 C State: up Subdisks: 1 Size: 2048 MB S mirror.p0.s0 State: up PO: 0 B Size: 2048 MB S mirror.p1.s0 State: up PO: 0 B Size: 2048 MB S mirror.p2.s0 State: up PO: 0 B Size: 2048 MB S mirror.p3.s0 State: up PO: 0 B Size: 2048 MB .if t .ps .Ed .Pp この例では (今回は .Fl f フラグを付けています)、 .Nm create の再実行により 4 個の新規プレックスを作成し、 それぞれが新規サブディスクを持ちます。 他のボリュームを追加したい場合、これらのための新規設定ファイルを作成します。 .Nm が既に知っているドライブを参照する必要はありません。 例えば、ボリューム .Pa raid を 4 個のディスク .Pa /dev/da1e , .Pa /dev/da2e , .Pa /dev/da3e , .Pa /dev/da4e 上に作成するには、他の 2 個についてのみ記述するだけで良いです: .Bd -literal drive d3 device /dev/da1e drive d4 device /dev/da4e volume raid plex org raid5 512k sd size 2g drive d1 sd size 2g drive d2 sd size 2g drive d3 sd size 2g drive d4 .Ed .Pp この設定ファイルでは、次のようになります: .Bd -literal # vinum create newconfig Configuration summary Drives: 4 (4 configured) Volumes: 2 (4 configured) Plexes: 5 (8 configured) Subdisks: 8 (16 configured) D d1 State: up Device /dev/da2e Avail: 51176/57320 MB (89%) D d2 State: up Device /dev/da3e Avail: 53220/57320 MB (89%) D d3 State: up Device /dev/da1e Avail: 53224/57320 MB (92%) D d4 State: up Device /dev/da4e Avail: 53224/57320 MB (92%) V mirror State: down Plexes: 4 Size: 2048 MB V raid State: down Plexes: 1 Size: 6144 MB P mirror.p0 C State: init Subdisks: 1 Size: 2048 MB P mirror.p1 C State: init Subdisks: 1 Size: 2048 MB P mirror.p2 C State: init Subdisks: 1 Size: 2048 MB P mirror.p3 C State: init Subdisks: 1 Size: 2048 MB P raid.p0 R5 State: init Subdisks: 4 Size: 6144 MB S mirror.p0.s0 State: up PO: 0 B Size: 2048 MB S mirror.p1.s0 State: up PO: 0 B Size: 2048 MB S mirror.p2.s0 State: up PO: 0 B Size: 2048 MB S mirror.p3.s0 State: up PO: 0 B Size: 2048 MB S raid.p0.s0 State: empty PO: 0 B Size: 2048 MB S raid.p0.s1 State: empty PO: 512 kB Size: 2048 MB S raid.p0.s2 State: empty PO: 1024 kB Size: 2048 MB S raid.p0.s3 State: empty PO: 1536 kB Size: 2048 MB .Ed .Pp RAID-5 プレックスの大きさに注意してください: 6 GB しかありませんが、 これを構成するためにディスク空間を 8 GB 使用しています。 これは、サブディスク 1 個分相当をパリティデータ格納に使用しているからです。 .Ss Vinum の再起動 システムのリブート時に、 .Nm start コマンドで .Nm を起動します: .Bd -literal # vinum start .Ed .Pp これにより、システム中の全 .Nm ドライブが起動します。 なんらかの理由で一部のドライブのみを起動したい場合、 .Nm read コマンドを使用してください。 .Ss 性能関連 最高性能の RAID アレイ設定に関する、多くの誤った考えが存在しています。 特に、ほとんどのシステムで使用しているストライプの大きさは、小さ過ぎます。 以降の議論は、 .Nm vinum だけでなく、全 RAID システムにあてはまります。 .Pp FreeBSD のブロック I/O システムは、.5 kB から 60 kB までの要求を発行します; .\" mix = workload mix ? 典型的なミックスでは、ほぼ 8 kB です。 どんなストライピングシステムにおいても、 ある要求が 2 個の物理要求に分割されることを避けることはできませんし、 より悪くするならばより多くに分割されてしまいます。 これにより、甚大な性能劣化となります: ディスクあたりの転送時間の削減は、 より大きなオーダで増加するレイテンシによって相殺されてしまいます。 .Pp 最近のディスクの大きさと FreeBSD のブロック I/O システムでは、 ストライプの大きさを 256 kB から 512 kB にすると、 適度に少数な要求に分割されることを期待できます; 正しい RAID の実装では、 大きなディスクでのストライプの大きさを 2 または 4 MB に増さない 明確な理由はありません。 .Pp 複数アクセスシステムでの転送のインパクトを考えるためのもっとも容易な方法は、 潜在的なボトルネック、すなわちディスクサブシステムの観点から見ることです: つまり、転送に要するディスク時間の総計はいくらか?です。 ほとんどすべてがキャッシュされているので、 要求と完了との時間的な関係はそれほど重要ではありません: 重要なパラメータは、要求がディスクを活動状態にする総時間であり、 この間ディスクは他の転送ができなくなります。 この結果、転送が同時に発生しても違う時に発生しても、 実際には問題とはなりません。 実際的には、我々が見ている時間は、レイテンシの総和 (位置決定時間と回転遅延、 言い替えるとデータがディスクヘッド下に来るまでの時間) と総転送時間です。 同じ速度のディスクへの転送においては、 転送時間は転送の大きさの合計のみに依存します。 .Pp 24 kB の典型的なニュースの記事やウェブページを考えると、 これは 1 回の I/O で読み込めます。 ディスクが転送レート 6 MB/s で平均位置決定時間 8 ms であり、 ファイルシステムを 4 kB ブロックであるとします。 24 kB ですから、断片化を考慮する必要はなく、 ファイルは 4 kB 境界から開始します。 必要な転送回数はブロック開始位置に依存します: 式は (S + F - 1) / S となり、 S はファイルシステムブロック数でのストライプの大きさ、 F はファイルシステムブロック数でのファイルの大きさです。 .Pp .Bl -enum .It ストライプの大きさは 4 kB。転送回数は 6 回。 サブシステムの負荷: レイテンシ 48 ms、転送 2 ms、合計 50 ms。 .It ストライプの大きさは 8 kB。転送回数は 3.5 回。 サブシステムの負荷: レイテンシ 28 ms、転送 2 ms、合計 30 ms。 .It ストライプの大きさは 16 kB。転送回数は 2.25 回。 サブシステムの負荷: レイテンシ 18 ms、転送 2 ms、合計 20 ms。 .It ストライプの大きさは 256 kB。平均転送回数は 1.08 回。 サブシステムの負荷: レイテンシ 8.6 ms、転送 2 ms、合計 10.6 ms。 .It ストライプの大きさは 4 MB。平均転送回数は 1.0009 回。 サブシステムの負荷: レイテンシ 8.01 ms、転送 2 ms、合計 10.01 ms。 .El .Pp ハードウェア RAID システムによっては、 大きなストライプでは問題があるものがあるようです: このようなシステムでは完全なストライプを常にディスクとの間で転送するようで、 大きなストライプは性能に逆効果となります。 .Nm ではこの問題の被害を受けません: すべてのディスク転送を最適化し、不要なデータを転送しないからです。 .Pp 良く知られたベンチマークプログラムで真の複数アクセス状態 (100 を越える同時ユーザ) をテストするものはないので、 この主張の正しさを証明することは困難であることに注意してください。 .Pp これらのことを考えると、次の事項が .Nm ボリュームの性能に影響します: .Bl -bullet .It ストライピングは、複数アクセスのみの性能を向上します。 各要求が違うディスク上にある確率が増加するからです。 .It 複数ドライブにまたがるコンカチネート化 UFS ファイルシステムもまた、 複数ファイルアクセスの性能を向上します。 UFS は、ファイルシステムをシリンダグループに分割し、 ファイルを単一のシリンダグループに置こうとするからです。 一般的に、ストライピングほどは効果がありません。 .It ミラーリングは、読み込み複数アクセスの性能を向上可能です。 デフォルトでは .Nm は、連続する複数の読み込みを、 連続する複数のプレックスに対して発行するからです。 .It ミラーリングは、複数アクセスか単一アクセスかに関わらず、 すべての書き込みの性能を劣化させます。 両方のプレックスに対し、データを書き込む必要があるからです。 これが、前述のミラーリング設定におけるサブディスクのレイアウトの説明です: 各プレックス中の対応するサブディスクが別の物理ディスクにある場合、 書き込みコマンドは並列に発行可能です。 しかし、同じ物理ディスクにある場合、逐次的に実行されてしまいます。 .It RAID-5 の読み込みは、 ストライプ化の読み込みと本質的に同じ考慮すべき点があります。 ただし、ストライプ化プレックスがミラー化ボリュームの一部である場合を除きます。 この場合、ミラー化ボリュームの方が性能が良くなります。 .It RAID-5 の書き込みは、ストライプ化の書き込みの約 25% の速度です: 書き込みを行うには、 .Nm はまずデータブロックと対応するパリティブロックを読み込み、 いくばくかの計算を行い、 パリティブロックとデータブロックを書き戻す必要がありますので、 ストライプ化プレックスに対する書き込みの 4 倍の転送回数となります。 一方、これはミラーリングのコストにより相殺されますので、 単一 RAID-5 プレックスのボリュームへの書き込みは、 2 個のストライプ化プレックスからなる正しく設定されたボリュームへの 書き込み速度の半分となります。 .It .Nm の設定が変わると (例えば、オブジェクトの追加や削除、またはオブジェクトの状態変更)、 .Nm は 128 kB までの更新された設定を各ドライブに書き込みます。 ドライブ数が増加すると、この時間が長くなります。 .El .Ss Vinum ボリューム上にファイルシステムを作成する .Nm ボリューム上にファイルシステムを作成する前に .Nm disklabel を実行する必要はありません。 raw デバイスに対して .Nm newfs だけを実行してください。 .Fl v オプションを使用して、 デバイスがパーティションに分割されないようにしてください。 例えば、ボリューム .Pa mirror 上にファイルシステムを作成するには、次のコマンドを入力します: .Bd -literal -offset 4n # newfs -v /dev/vinum/rmirror .Ed .Pp .Pa rmirror という名前が raw デバイスを参照していることに注意してください。 .Sh その他のことがら .Nm の設定に関係する数個のその他のことがらがあります: .Bl -bullet .It 複数のドライブを単一ディスク上に作成しても、利益はありません。 各ドライブは 131.5 kB のデータをラベルと設定情報に使用し、 設定変更時に性能が劣化します。 適切な大きさのサブディスクを使用してください。 .It コンカチネート化 .Nm プレックスの大きさを増すことはできますが、 現在のところストライプ化プレックスと RAID-5 プレックスでは増せません。 現在のところ既存の UFS ファイルシステムの大きさを増すこともできません。 プレックスおよびファイルシステムを拡張可能とする計画はあります。 .El .Sh 分かりにくい仕様 (GOTCHAS) 次の事柄はバグではありませんし、存在する理由があるのですが、 混乱を引き起こすものです。 各項目は適切な節において議論されています。 .Bl -enum .It .Nm はデバイスを UFS パーティション上には作成するよう要求されると、 ``wrong partition type'' というエラーメッセージを返します。 パーティションタイプは、現在のところ、``unused'' である必要があります。 .It 複数のプレックスからなるボリューム作成時に、 .Nm はプレックスを自動的には初期化しません。 これは、内容については分からなくても、 これらの間には確かに一貫性がないということを意味しています。 その結果デフォルトでは、 新規作成されたプレックスのうち最初のものを除いたすべての状態を、 .Nm は .Ar 古い (stale) 状態に設定します。 .sp 実際上は、プレックス作成時にその内容に多大な興味を持つ人はいないので、 他のボリュームマネージャはどんなときでも .Ar 起動 (up) に設定して騙します。 .Nm は、新規作成されたプレックスが .Ar 起動 (up) 状態であることを保証するために、2 つの方法を提供します: .Bl -bullet .It プレックスを作成し、それらを .Nm vinum start で同期します。 .It キーワード .Ar setupstate 付きでボリューム (プレックスではありません) を作成します。 このキーワードは、矛盾が存在しても無視してプレックスの状態を .Ar 起動 (up) 状態にするように、 .Nm に指示します。 .El .It 現在 .Nm がサポートしているコマンドには、実際には不要なものがあります。 私には理解できない理由があるのでしょうが、 .Nm label および .Nm resetconfig のコマンドを使おうとするユーザをしばしば見掛けます。特に .Nm resetconfig は、あらゆる種類の恐しいメッセージを表示するにもかかわらずです。 正当な理由無しに、これらのコマンドを使わないでください。 .It 状態遷移には非常に分り難いものがあります。 事実、これがバグであるのか仕様であるのかは明かではありません。 .Ar reborn サブディスクなどの、奇妙な状態になったオブジェクトを起動できない場合には、 .Nm stop または .Nm stop Ar -f のコマンドを使用して、まず .Ar stopped 状態に遷移させてください。 これが上手くいけば、オブジェクトを起動できるはずです。 簡単な方法では上手くいかなくて、これが唯一の回復手段である場合、 その状況を報告してください。 .It カーネルモジュールを .Ar -DVINUMDEBUG オプション付きで構築した場合、 .Nm vinum(8) もまた .Ar -DVINUMDEBUG オプション付きで構築する必要があります。 なぜなら、両方のコンポーネントで使用されるデータオブジェクトに、 大きさが本オプションに依存しているものがあるからです。 前記のようにしないと、 .Ar Invalid argument というメッセージを表示してコマンドは失敗し、 次のようなコンソールメッセージが記録されます: .Pp .Bd -literal vinumioctl: invalid ioctl from process 247 (vinum): c0e44642 .Ed .Pp 古いバージョンの kld やユーザランドプログラムを使うと、 このエラーが発生することがあります。 .It .Nm ドライブは UNIX ディスクパーティションであり、パーティションタイプ .Ar vinum を使用します。 これは、パーティションタイプが .Ar 4.2BSD となる .Nm ccd とは違います。 この ccd の動作は、自分の足元をすくうことになります: .Nm ccd では、容易にファイルシステムを上書きできてしまいます。 .Nm ではそのようなことは許しません。 .Pp 同様の理由で、 .Nm vinum Ar start コマンドは、パーティション .Ar c 上のドライブを受け付けません。 パーティション .Ar c は、ディスク全体を表現するためにシステムが使用し、タイプ .Ar unused である必要があります。 ここには明確な矛盾があるので、 .Ar c パーティションを使用しないことにより .Nm は問題を解決しています。 .It .Nm vinum Ar read コマンドの文法は、吐き気を催すものです。 これが唯一の .Nm vinum 起動のためのコマンドでしたが、今の好ましい方法は .Nm vinum Ar start です。 .Nm vinum Ar read は整備のみに使用すべきです。 文法が変更されたので、引き数が .Pa /dev/da0 のようなディスクスライスであり .Pa /dev/da0e のようなパーティションではないことに注意してください。 .El .\"XXX.Sh BUGS .Sh 関連ファイル .Ar /dev/vinum - .Nm オブジェクトのデバイスノードがあるディレクトリ .br .Ar /dev/vinum/control - .Nm vinum の制御デバイスがあるディレクトリ .br .Ar /dev/vinum/plex - .Nm プレックスのデバイスノードがあるディレクトリ .br .Ar /dev/vinum/sd - .Nm サブディスクのデバイスノードがあるディレクトリ .Sh 関連項目 .Xr vinum 4 , .Xr disklabel 8 , .Xr newfs 8 , .Pa http://www.lemis.com/vinum.html , .Pa http://www.lemis.com/vinum-debugging.html . .Sh 作者 Greg Lehey .Pa .Sh 歴史 .Nm コマンドは FreeBSD 3.0 から登場しました。