FreeBSD QandA 1308

FreeBSD QandA

Q. NIS/YP で + や - を含む行をもつ map を make しようとすると、
   以下のメッセージが出て、その行は無視されてしまいます。

     yp_mkdb: bad character at start of line: ...

A. FreeBSD 3.2-RELEASE 以前の yp_mkdb(8) では、マップのキーかデータの先頭に
   `+' や `-' を使うと、警告メッセージを出してこの行を無視するようになって
   います。それに対して、3.3-RELEASE 以降ではこのチェックは -f オプション
   を指定したときだけ行われ、デフォルトではチェックは行わなくなりました。
   しかし、これらの文字が passwd(5)group(5) で特別な意味を持つことには
   変わりませんので、これらのマップの処理だけ Makefile.yp で -f オプション
   が追加されるようになっています。

   3.2-RELEASE 以前を使っていて、どうしてもこのチェックを外したければ、
   /usr/src/usr.sbin/yp_mkdb/yp_mkdb.c の /* Check for silliness. */
   というコメントがついている if 文のブロックを削ってコンパイルしなおせば、
   一応使えるようにはなります。

        /* Check for silliness. */
        if  (*keybuf == '+' || *keybuf == '-' ||
             *datbuf == '+' || *datbuf == '-') {
                warnx("bad character at start of line: %s", buf);
                continue;
        }

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。