Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ USERFILE(5) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

uucp(1C)

uux(1C)

L.cmds(5)

L.sys(5)

uucico(8C)

uuxqt(8C)

USERFILE(5)  —  NEWS-OS Programmer’s Manual

名称

USERFILE − UUCP パス名許可ファイル

解説

USERFILE は、ローカルユーザおよび UUCP 経由のリモートシステムからアクセス可能な、 ファイルシステムのディレクトリツリーを記述しています。

USERFILE 内の各行は、次のような形式です。

[loginname],[system] [ c ] pathname [pathname] [pathname]

最初の 2つの項目は、コンマによって区切られます。 他の部分は、任意の数の空白またはタブによって区切ることができます。 ‘#’文字で始まる行はコメントです。後ろに続く‘\’は、 次の行が現在行の継続であることを表します。

loginname は、ローカルマシン上の (/etc/passwd からの)ログイン名です。

system は、リモートマシンの名前で、 L.sys(5) 内で使用されているものと同じものです。

c は、オプションの callback フィールドを表します。 c がここに指定されている場合、コールしたリモートマシンは、 コールバックが要求されたことを知らされ、通信は終了します。 ローカルマシンは、すみやかにリモートホストをコールバックすることになります。

pathname は、この login および/または system に対して許可できるパス名プレフィックスです。

マスタとして uucico が実行されているか、またはローカルユーザによって uucp(1C) あるいは uux(1C) が実行されている場合、許可されるパス名は、そのコマンドを実行 したユーザの名前とマッチする loginname を持つ最初の行の中のパス名となります。こうした行がない場合、 空の(記述されていない) loginname フィールドを持つ最初の行が使用されます(注意: uucico は、スーパーユーザまたは UUCP アドミニストレータにより、 cron(8) を通して実行されることがよくあります)。

スレーブとして uucico(8C) が実行されている場合、許可されるパス名は、 リモートマシンのホスト名とマッチする system フィールドとともに記述されている最初の行中のパス名となります。 こうした行がない場合、空の(記述されていない) system フィールドを持つ最初の行が使用されます。

uuxqt(8) は、異なる動作をします。これは、ログイン名もホスト名も認識していません。 このプログラムは、空の system フィールドを持つ最初の行中のパス名を用います(これは、 uucico がリモートマシンのホスト名をマッチできなかった場合に 使用されるものと同じ行です)。

loginname も system も空である行、例えば、

, /usr/spool/uucppublic

は、 USERFILE 中で、その行より前の行がパス名を定義していない場合、 ログイン名もシステムも“マッチしない”ケースを考慮してパス名を 便宜的に指定しておくために、使用することができます (これは、旧バークレー版およびすべての USG 版とは異なります。 それらの版では、それぞれのケースは個別に指定されるはずです。 もしどちらのケースも以前の行で定義されていなければ、 “空の”行は、“unknown login”のケースを定義するに過ぎません)。

UID ごとに多くのログインを割り当てているシステム上で loginname を正しく処理するにあたり、現在の loginname を決定するために次の方法が用いられます。

1) プロセスが端末に所属していれば、ログインエントリは /etc/utmp 内に存在し、 utmp 名のための UID は現在の実 UID にマッチし、 loginname は utmp 名に設定されます。

2) USER 環境変数が定義されており、この名前のための UID が現在の実 UID に マッチしていれば、 loginname は USER 中の名前に設定されます。

3) 前記の両方とも失敗した場合、実 UID にマッチする最初の名前を /etc/passwd 中から取り出すために getpwuid(3) をコールします。

4) 前記のすべてが失敗した場合、loginname を決定するのをあきらめます。

関連ファイル

/etc/uucp/USERFILE

関連事項

uucp(1C), uux(1C), L.cmds(5), L.sys(5), uucico(8C), uuxqt(8C)

注意事項

UUCPユーティリティ (uucico、 uucp、 uux、 uuxqt) は、 USRFILE 中のパス名にかかわらず、 /usr/spool/uucp 中の UUCP スプールファイルに常にアクセスしています。

L.cmds(5) 中に uucp がリストされている場合、リモートシステムは、uucp を ローカルシステム上で起動します。その時 uucp は、 USERFILE のホスト名ではなく login 名で決められる特権を持ちます。

uucico は、通信中、それが起動された時の役割にかかわらず、 マスタとスレーブの役割を自由に切り替えます。このことは、 USERFILE の解釈のされ方に影響を与えます。

警告

USERFILE が、UUCP ユーティリティに対してアクセスを制限できるのは、 ファイル内の文字列を pathname と確認できる時だけです。 もし、間違った空き(hole)が他の UUCP 制御ファイル(とくに L.cmds )中に残されていると、そのファイルシステム中のどこででも、 侵入者が簡単にファイルをオープンできます。 uucp(1C) は、非オプションの引数はすべてファイルであると仮定するため、 その引数で与えれば安全です。 uux(1C) はそうした仮定を行うことができないため、より危険です。

バグ

UUCP Implementation Description (uucp インプリメンテーション解説)は、すべてのリモートログイン名は必ず USERFILE 中にリストされなければならない、と明言しています。 この要求は、バークレー UUCP では強制されていませんが、 USG UUCP では強制されています。

4.2BSD の初期バージョンの uuxqt(8) は、 USERFILE パス名許可に対する UUCP スプールファイルを誤ってチェックします。 したがって、これらのシステム上では、 uuxqt を用いて、 USERFILE の行上に、 /usr/spool/uucp を正しいパスとして指定する必要があります。さもないと、すべての uux(1C) 要求は、“PERMISSION DENIED(許可は拒否された)”メッセージ とともに拒絶されます。

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026