2006年12月19日

ドメイン名を安全にコマンドラインに渡す方法について

TOMOYO Linux 1.3 以降では setprofile というコマンドを使ってドメインに割り当てるプロファイルを変更することができます。コマンドラインパラメータとしてドメイン名を渡すので、安全に渡す方法について紹介します。

ドメイン名は <kernel> で始まりますが、そのまま setprofile -r 1 <kernel> /sbin/initのように指定してしまうと < や > がシェルのリダイレクト記号と解釈されてしまいます。
カレントディレクトリに kernel という名前のファイルが存在していると setprofile コマンドが実行されて /sbin/init の内容が失われてしまいますので注意してください。
通常は、 setprofile -r 1 '<kernel> /sbin/init' のようにシングルクォートで囲んでやれば大丈夫ですが、この方法ではドメイン名にシングルクォートが含まれている場合に正しく動作できません。

どのようなドメイン名が来るか不明な場合には、
tr '\n' '\0' | xargs -0 setprofile -r 1
のように実行してから、ドメイン名を改行区切りで列挙してください。
標準入力から入力する場合は
tr '\n' '\0' | xargs -0 setprofile -r 1
のように実行してから、ドメイン名を改行区切りで列挙して、最後に Ctrl-D を押してください。
また、 domainlist.txt というファイルから入力する場合は
tr '\n' '\0' < domainlist.txt | xargs -0 setprofile -r 1
のように実行してください。

なお、1行しか指定しない場合は tr '\n' '\0' の処理は不要です。
標準入力から入力する場合は
xargs -0 setprofile -r 1
のように実行してから、ドメイン名を1行指定して、最後に Ctrl-D を押してください。

posted by 熊猫さくら at 20:44| Comment(0) | TrackBack(0) | TOMOYO Linux
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/2585651
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック