FreeBSD QandA 198

FreeBSD QandA

Q. ftpサーバを立ち上げたんですが、クライアントからanonymous ftpでログ
   インして /pub/FreeBSD を覗きにいこうとすると "No such file or
   directory" とか "FreeBSD: Too many levels of symbolic links." と言われ
   て叱られてしまいます。何が悪いんでしょう。

A. ユーザ ftpで ftpサーバにログインしたときには ユーザ ftpのホームディ
   レクトリが全体のルートとして位置付けられます。例えば passwdファイルの
   中で /var/ftp をホームディレクトリとして指定している場合は ここがスター
   ト地点となります。

   この下に pub/というディレクトリがないと "No such file or directory" に
   なります。

   また /var/ftp の下に pub/を作らずに 別のディレクトリへのリンクを作って
   いる場合は注意が必要です。というのは /var/ftp が / になるのでそれより
   上には移動することが出来なくなります。例えば /var/ftp の下から
   ../../../usr/ftp/pub のようなリンクを作っても ..(1つ上) にはもう移動出
   きません。/ディレクトリから ..に移動しても、もうそれより上は存在しない
   ので /のままです。つまり../../../usr/ftp/pub は /var/ftpの下の 
   usr/ftp/pub へのリンクになります。それはきっと存在しないでしょうから
   "No such file or directory" となるでしょう。

   また ../pub にリンクを張った場合は、結局のところ /pub を指しますので
   pubから pub、自分自身へのリンクになってしまいます。リンクがリンクを指
   してそれがループしてしまうので "Too many levels of symbolic links." 
   と言われます。

   このように リンクではうまく行かない場合には 直接そのDiskを
   /var/ftp の下にmountしてしまうと楽です。

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