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

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 にマウントするってのはどぉでしょか?(みんなまとめて引越しはメンドイかもだけど。)

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]