DEVFS(8) FreeBSD システム管理者マニュアル DEVFS(8)
名称
devfs − DEVFS 制御コマンド |
書式
devfs [−m mount-point] keyword argument ... |
解説 |
devfs ユーティリティは、マウントされた devfs(5) のプロパティを操作するた めのインタフェースです。 keyword 引数で残りの引数のコンテキストを指定します。例えば、ほとんどの ルールサブシステム関連のコマンドの前には rule キーワードをつけなければな らないことになっています。次のフラグはすべてのキーワードに共通のものです: |
−m mount-point
操作する mount-point を指定します。ここには、 devfs(5) がマウントされていなければなりません。このオプションが ない時には、 devfs は /dev を操作します。 ルールサブシステム ルールの操作 −s ruleset 次のコマンドが使用できます: rule add [ rule apply rulenum | rulespec rule applyset rule del rulenum rule delset rule show [rulenum] rule showsets ruleset ruleset ルール仕様 次のような条件が使用できます。デバイスをチェックする時には、条件は AND さ れます。 OR 条件を使いたい時には、複数のルールを書いてください。 major majdev path pattern type devtype 次のようなアクションが使用できます。条件部とアクション部の間には特にデリ ミタはありませんが、混乱することはないでしょう。 group gid hide include ruleset mode filemode user uid unhide 実装に関する注 |
ルールセットは、最初に参照される時にカーネルによって作成され、最後の参照 がなくなる時に削除されます。すなわち、ルールセットはルールが追加される時 かどこかのマウントポイントのカレントルールセットに設定された時に作成され ます。また、セットの中の最後のルールが削除される時でもう他からの参照もな い (つまり、他のルールにインクルードされてもなく、どのマウントポイントの カレントルールセットにもなっていない) 時に削除されます。 ルールセット 0 番はすべての新しいマウントポイントのデフォルトルールセット です。このルールセットは常に空で、変更や削除はできず、 showsets コマンド の出力にも表示されません。 ルールやルールセットは特定のマウントポイント毎ではなく、システム全体で一 意です。つまり、 showsets は、 −m で指定したマウントポイントにかかわら ず、常に同じ情報を表示します。マウントポイントが有効なのは、カレントルー ルセットを変更する時や apply コマンドを使用する時だけです。 |
実行例
システム起動時には、ルールセット 0 番のみが存在しますが、このルールセット は後から変更することができないので、ルールを追加する前に別のルールセット を作成しなければなりません。以下の例ではほとんど −m オプションを指定して いませんので、操作は /dev に対して実行されることに注意してください (これ は、ノードのプロパティを変更するものだけが問題だからです) 。 |
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 番にはすでに衝突しない番号のルールが入って います (その番号も予約されます)。 |
関連項目
chmod(1), jail(2), glob(3), devfs(5), chown(8), jail(8), mknod(8) |
作者
Dima Dorfman FreeBSD 10.0 July 1, 2002 FreeBSD 10.0 |