シンボリックリンクの問題

OKWave 2007年10月12日 14時00分

  • このエントリーをはてなブックマークに追加
シンボリックリンクの問題

いつもお世話になっております

シンボリックリンクを使う際に問題が発生しました。


#ln -s /mnt/hdb/user/test /home/user/test

で、ユーザディレクトリに/mnt/hdb/user/testというディレクトリに向けてtestというシンボリックリンクを張ります。


#ls /home/user/ -F
test@

ls -Fで確認したところ、シンボリックリンクファイルtestを上記のように確認できます。しかしながら、cdコマンドを実行すると、


#cd /home/user/test
#pwd
/mnt/hdb/user/test 

になるはずですが、


#cd /home/user/test
#pwd
/home/user/test

なってしまいました。

これの原因で(推測)外からffftpで /home/user/testをアクセスしようとすると、No such file or directoryというエラーが出ました。

この問題どう解決できますか、ご教授よろしくお願いします。

ちなみに
/mnt/hdb は増設したハードディスクをマウントしたところ
使用システム はFedora 4

良回答

> #cd /home/user/test
> #pwd
> /mnt/hdb/user/test
>
> になるはずですが、
>
> #cd /home/user/test
> #pwd
> /home/user/test
>
> なってしまいました。

これはシェルによってどちらになるかが決まっています。bash だと後者、Solaris などの sh だと前者になります。bash でも、set -P を事前に発行しておけば前者になります。どちらがいいかは AP 特性に依存するので使い分けるべきでしょう。

> これの原因で(推測)外からffftpで /home/user/testをアクセスしようと
> すると、No such file or directoryというエラーが出ました。

それが原因ではなく、シンボリック・リンクを使っている事が問題だと思います。Linux の FTP ではデフォルトで chroot が有効になっていると思いますが、その状況から判断して恐らくシンボリック・リンクは許されないのではないでしょうか。(このことは試しに root ユーザで chroot /mnt/hdb/user/test、chroot /home/user/test を試してみれば分かるかと思います)

となると、/etc/passwd を編集してホームディレクトリを /mnt/hdb/user/test にするしかないのではないかと思います。

回答

シンボリックリンクってものを誤解してるような気が。。。
>> #cd /home/user/test
>> #pwd
>> /mnt/hdb/user/test
>> になるはず
はないと思うんだけど…
/home/user/test へcdしたのだから$PWDは /home/user/test になるのじゃ?

>> 各ユーザのディレクトリ容量を分担するため
新しいディスクは /mnt/hdb でなく /home にマウントするってのはどぉでしょか?(みんなまとめて引越しはメンドイかもだけど。)

  • このエントリーをはてなブックマークに追加
関連キーワード
OS

SpecialPR