総合手引 | セクション 8 | English | オプション |
keyword 引数で残りの引数のコンテキストを指定します。 例えば、 ほとんどのルールサブシステム関連のコマンドの前には rule キーワードをつけなければならないことになっています。 次のフラグはすべてのキーワードに共通のものです:
| 操作する mount-point を指定します。 ここには、 devfs(5) がマウントされていなければなりません。 このオプションがない時には、 devfs は /dev を操作します。 |
| ruleset で指定したルールセットを操作します。 このフラグが指定されていない時は、 指定したマウントポイントに現在関連づけられているルールセットを 操作します。 |
次のコマンドが使用できます:
rule add [rulenum ]rulespec | rulespec (下記参照) で、記述されたルールをルールセットに追加します。 ルール番号は、 rulenum が明示的に指定されている場合にはその番号に、 指定されていない場合には自動的にカーネルによって決められます。 |
rule apply rulenum | rulespec | ルール番号 rulenum または rulespec で、指定されたルールをマウントポイントに適用します。 "適用される" ルールには条件があって、マウントポイントのすべてのノードに対して チェックを行い、条件が一致すれば指定のアクションを起こします。 |
rule applyset | ルールセットのすべてのルールをマウントポイントに適用します (上記 "apply" の説明を参照) 。 |
rule del rulenum | ルールセットからルール番号 rulenum のルールを削除します。 |
rule delset | 指定したルールセットのすべてのルールを削除します。 |
rule show [rulenum] | rulenum で指定したルール番号のルール、 またはルールセットのすべてのルールを表示します。 出力行は (ルール毎に 1 行ずつ) 正しい rulespec になっています。 |
rule showsets | 設定されているルールセットの番号を表示します。 |
ruleset ruleset | ruleset で指定した番号のルールセットをマウントポイントのカレントルールセットにします。 |
次のような条件が使用できます。 デバイスをチェックする時には、条件は AND されます。 OR 条件を使いたい時には、複数のルールを書いてください。
major majdev | メジャー番号が majdev のすべてのノードに適合します。 |
path pattern | パス名が pattern に合うノードすべてに適合します。 このパターンは glob(3) と同じパターンで解析されます。 |
type devtype | タイプが devtype のすべてのノードに適合します。 使用できるタイプは disk, mem, tape および tty です。 |
次のようなアクションが使用できます。 条件部とアクション部の間には特にデリミタはありませんが、 混乱することはないでしょう。
group gid | ノードのグループ ID を gid に設定します。 グループ名 ( /etc/group で照会されます) または、数値で指定します。 |
hide | ノードを隠します。 隠されたノードは、マニュアルで mknod(8) を使用するか、 unhide アクションを使用するとまた見えるようになります。 |
include ruleset | ルールセット番号が ruleset のルールセットのすべてのルールをノードに適用します。 これによってノードが変更されるとは限りません (例えば、ルールセットに一致するルールがない場合など)。 |
mode filemode | ファイルのモードを filemode に設定します。 8 進数として解釈されます。 |
user uid | ユーザ ID を uid に設定します。ユーザ名 ( /etc/passwd で照会されます) または数値で指定します。 |
unhide | ノードを見えるようにします。 |
ルールセット 0 番は すべての新しいマウントポイントのデフォルトルールセットです。 このルールセットは常に空で、変更や削除はできず、 showsets コマンドの出力にも表示されません。
ルールやルールセットは特定のマウントポイント毎ではなく、
システム全体で一意です。
つまり、
showsets
は、
devfs ruleset 10
ルールセット 10 番を /dev のカレントルールセットに指定しています (もし、存在していなければ作成されます)。
devfs rule add path speaker mode 666
パス名が "speaker" にマッチするすべてのノード (これは /dev/speaker だけですが) をファイルモード 666 (すべてのユーザが読み書き可能) にするルールを追加しています。 気をつけて欲しいのは、そのようなノードが既に存在する場合には、 このルール (やルールセット) が明示的に適用される (下記参照) まで そのノードは変更されないということです。 モードが変更 される のはルールが追加された 後に ノードが作成された場合です (つまり、上記のルールが追加された後に atspeaker モジュールがロードされた場合)。
devfs rule applyset
カレントルールセットのすべてのルールを、 存在するすべてのノードに適用しています。 つまり、上記のルールが /dev/speaker を作成した後に追加された場合に、 このコマンドを使用してルール通りにファイルモードを 666 にすることができます。
devfs rule add path snp* mode 660 group snoopers
(引数を引用符で囲うのは パス名 がシェルのファイルグロブ機能で展開されるのを防ぐ必要があるからです。) パス名が "snp*", にマッチするすべてのデバイスのファイルモードを 660 に、GID を "snoopers" に設定します。 このようにすると、 "snoopers" グループのユーザが snp(4) デバイスを使えるようになります。
devfs rule -s 20 add major 53 group games
ルールセット 20 番にルールを追加します。 このルールセットは どこのマウントポイントのカレントルールセットにもなっていないので、 このルールが自動的に適用されることはありません (後でルールセット 20 番がどこかのマウントポイントの カレントルールセットになるまでは)。 それでも以下のようにして、明示的にルールを適用することができます:
devfs -m /my/jail/dev rule -s 20 applyset
このコマンドではルールセット 20 番のすべてのルールを /my/jail/dev の DEVFS マウントに適用しています。 このときには、ルールセット 20 番がそのマウントポイントの カレントルールセットであるかどうかにかかわりなくルールが適用されます。
devfs rule apply hide
このルールには条件部がありませんので、 ( hide) アクションがすべてのノードに適用されます。 すべてのノードを非表示にするのはあまり便利ではありませんので、 下のようにして取り消すことができます:
devfs rule apply unhide
このコマンドは unhide をすべてのノードに適用して、 再び表示されるようにしています。
cat my_rules | devfs rule -s 10 add -
my_rules ファイルに書いてあるルールをすべてルールセット 10 番に追加します。
devfs rule -s 20 show | devfs rule -s 10 add -
show コマンドの出力が有効なルールになっているので、 この機能を利用してルールセットをコピーすることができます。 上のコマンドでは、ルールセット 20 番のルールをすべて ルールセット 10 番にコピーしています。 ルール番号は予約されていますが、 ルールセット 10 番にはすでに 衝突しない番号のルールが入っています (その番号も予約されます)。
DEVFS (8) | July 1, 2002 |
総合手引 | セクション 8 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.