- ベストアンサー
シンボリックリンクの問題
いつもお世話になっております シンボリックリンクを使う際に問題が発生しました。 #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
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> #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 にするしかないのではないかと思います。
その他の回答 (4)
まず以下の件から >#cd /home/user/test >#pwd >/mnt/hdb/user/test >になるはずですが、 >#cd /home/user/test >#pwd >/home/user/test これはLinux特有の現象です。FreeBSDやNetBSDでは発生しません。 従ってこの結果は正しいです。 (本音:どうしてこんな機能をカーネルやglibcに実装したのかなー:sh3版カーネルを改造した者としての独り言) >これの原因で(推測)外からffftpで /home/user/testをアクセスしようとすると、No such file or directoryというエラーが出ました。 リンク先のパーミッション及び所有者は大丈夫ですか? まず、この点を確認してみてください。
お礼
返事ありがとうございます。 >パーミッション及び所有者 パーミッションは777に設定しており、所有者はuser本人にしています。
- notnot
- ベストアンサー率47% (4900/10358)
>ハードディスクを増設したのですが、シンボリックリンクを使う方法以外に何かいい方法ありますか? 一般的には、現在では、ロジカルボリュームの機能を使って、/home の容量を拡大します。 http://www.linux.or.jp/JF/JFdocs/LVM-HOWTO.html RedHat系しかインストール経験無いのですが、インストール時のデフォルトでは、/boot 以外のパーティションはLVMになりますので、あとで容量を拡大できます。 pwdでの表示は、bashデフォルトでは#2の書かれたとおりです。 man bash の cd, pwd, set の -P -L のオプションを参照のこと。 ftpでアクセスできない原因はわかりませんねえ。お書きでない部分に何か原因があるとは思うのですが。
お礼
返事ありがとうございます。 とても参考になりました。
- tux_the_penguin
- ベストアンサー率42% (69/163)
シンボリックリンクってものを誤解してるような気が。。。 >> #cd /home/user/test >> #pwd >> /mnt/hdb/user/test >> になるはず はないと思うんだけど… /home/user/test へcdしたのだから$PWDは /home/user/test になるのじゃ? >> 各ユーザのディレクトリ容量を分担するため 新しいディスクは /mnt/hdb でなく /home にマウントするってのはどぉでしょか?(みんなまとめて引越しはメンドイかもだけど。)
お礼
返事ありがとうございます。 >新しいディスクは /mnt/hdb でなく /home にマウント この方法が無難かもしれませんね
- Tacosan
- ベストアンサー率23% (3656/15482)
ffftp で「どのユーザでログインするか」がわからないけど, 単に ftp するだけならいけるような気がする.... 思い付くのは ・ホームディレクトリがシンボリックリンクだとちょっと危険かも ・anonymous ftp だとアウトかも くらい.
補足
早速の返答ありがとうございます。 >どのユーザでログインするか userというユーザです。同じユーザでもアクセスできない状態です・・・ そもそもなんでシンボリックリンクを使おうというと。各ユーザのディレクトリ容量を分担するため、ハードディスクを増設したのですが、シンボリックリンクを使う方法以外に何かいい方法ありますか?
お礼
返事ありがとうございます。 >このことは試しに root ユーザで chroot /mnt/hdb/user/test、chroot /home/user/test を試してみれば分かるかと思います 試してみたところ、chroot /mnt/hdb/user/test、chroot /home/user/test ともNo such file or directoryのエラーが出ました。 >、/etc/passwd を編集してホームディレクトリを /mnt/hdb/user/test にするしかないのではないかと思います。 とても参考になりました。