長南洋一
cyoic****@maple*****
2011年 1月 11日 (火) 22:12:57 JST
長南です。 立花さんのメールより [JM:00099] > > | > > POSIX 標準は、カッコ `(', `)'、否定 `!'、それに and と or 演算子 ( > | > > .BR \-a , > | > > .BR \-o ) > | > > を規定している。 > | > > | > .RB ( \-a , > | > > | > と記載した方が整形後にきれいに見えます。 > | > | これは、困っているのです。前に教えていただいたので、「.RB ( \-a ,」 > | としました。そうしたら、コンマだけがボールドになってしまったのです。 > | 「.RBR ( \-a ,」という書き方は無効のようです。「(\fB\-a\fR,」なら、 > | 期待どおりの表示になるのですが、そこまでスタイルを変えることも > | ないだろうと思って、原文のままにしておきました。 > | 「(\fB\-a\fR, \fB\-o\fR)」にしてしまいましょうか。 > > 手許の groff だと、元木さんのように修正して、"-a," がボールドになりました。 > バージョンによるのでしょうか。 > % groff -v > GNU groff version 1.17.2 ああ、ほんとだ。今試したら、GNU groff version 1.18.1 でも、 「.RB」で「-a」だけがボールドになりました。 あらためて info groff を読んでみると、 - Macro: .BI text Set its arguments alternately in bold face and italic. Thus, .BI this "word and" that would set "this" and "that" in bold face, and "word and" in italics. ---- (中略) ---- - Macro: .RB text Set its arguments alternately in roman and bold face. ですから、そうなるのが正常な動作のはずです。昨日、メールを 書く前に実験してみたとき、わたしは何を見ていたのでしょう。 「.RB (\-a ,」や「.RB ( \-a,」と空白を一つうっかり抜かして いたのかもしれません。 > | > > .SH "バグ" > | > > .P > | > > POSIX 標準が > | > > .B find > | > > について規定している動作にはセキュリティ上の問題があるが、 > | > > それはその動作に本来伴っているものなので、修正することができない。 > | > > | > セキュリティ上の問題が「本来伴う」という言い方が少しピンと来ませんでした。 > | > 「その動作自体が持つ問題」とか「その動作自体に内在する問題」くらいでしょうか。 > | > | たしかに、「その動作に本来伴う」はピンボケかもしれません。 > | でも、わたしとしては、「内在する」よりも、「伴う、付随する」と > | 言いたいのです。そこで、元木さんの試訳から「自体」を頂戴して、 > | こんなのはどうでしょう。 > | > | POSIX 標準が find について規定している動作にはセキュリティ上の > | 問題があるが、それはその動作自体に付随するものなので、修正する > | ことができない。 > | > | 「切り離せない」とか「表裏の関係にある」とかも考えましたけれど。 > | > | 自分の訳にまだ未練があるだけかもしれません。反論を期待します。 > > 「その動作自体が持つ問題」が一番すわりがいい気がします。 > > POSIX 標準が find について規定している動作にはセキュリティ上の > 問題があるが、それはその動作自体が持つ問題なので、修正する > ことができない。 ええ、これも悪くないと思います。ただ、「持つ」というのは、 一般的、包括的な表現です。できたら、もっと具体的、限定的な 言葉を使いたい気がします。もっとも、限定的な言葉を使うと、 うまく行けば、表現がくっきりしますが、まずく行くと、意味が ずれてしまいますけれど。 ある行為や動作が、困った問題や危険を、切り離せない形で持って いるとき、日本語では普通、「伴う」とか「付きものだ」とか 「付いて回る」と言うのではないでしょうか。たとえば、 「ダイエットには栄養不良の問題が付いて回る」とか、「登山には 危険が付きものである」とか。つまり、その困った問題や危険を、 内に含むものというよりは、外にあるけれど切り離せないものとして 表現する。そんなわけで、わたしとしてはどちらかと言うと、 「伴う」や「付随する」を使いたいのです。もちろん、「内に含む」 という見方が必要な場合は、「内在する」や「持つ」を選びます。 もう少し具体的に考えてみます。 マニュアルでは上の文章のすぐ後に、-exec が例として挙げられて いますが、info find の「10.2.3 Race Conditions with -exec」 ではもっと詳しく説明しています。 それを簡単にまとめると、POSIX が規定している動作というのは、 「-exec が実行するコマンドは、find を実行したディレクトリを カレントディレクトリとして実行される」ということです。 言い換えれば、「-exec が実行するコマンドに渡されるファイル名 には、find の探索始点から始まるパスが付く」ということ。 たとえば、find ./foo -name "passwd" -exec rm \{\} \; ならば、 rm ./foo/bar/passwd といったコマンドが実行されるわけです。 一方、セキュリティ上の問題というのは、「find が ./foo/bar/passwd を見つけてから、rm ./foo/bar/passwd が実行されるまでの間に、 誰かが ./foo/bar を /etc を指すシンボリックリンクに変更したら、 /etc/passwd が消去されてしまうかもしれない」ということ。 こういう場合、「持つ」「内在する」「付随する」、どの言い方が ふさわしいでしょう。わたしとしては、どの言い方もできるけれど、 「付随する」がよいのではないかと思うのです。ただし、「付随する」 だけでは不足で、「(動作)自体に付随する」と言わなければなりませんが。 自分が訳した文章には、どうしてもとらわれてしまいます。つまり、 ほかの可能性に心を開きにくくなっています。ですから、一週間 ぐらいたったら、わたしの考えも変わるかもしれません。 -- 長南洋一