プロが教えるわが家の防犯対策術!

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

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

#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

A 回答 (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 にするしかないのではないかと思います。
    • good
    • 0
この回答へのお礼

返事ありがとうございます。

>このことは試しに 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 にするしかないのではないかと思います。

とても参考になりました。

お礼日時:2007/09/24 11:47

まず以下の件から


>#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というエラーが出ました。
リンク先のパーミッション及び所有者は大丈夫ですか?
まず、この点を確認してみてください。
    • good
    • 0
この回答へのお礼

返事ありがとうございます。

>パーミッション及び所有者
パーミッションは777に設定しており、所有者はuser本人にしています。

お礼日時:2007/09/24 11:31

>ハードディスクを増設したのですが、シンボリックリンクを使う方法以外に何かいい方法ありますか?



一般的には、現在では、ロジカルボリュームの機能を使って、/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でアクセスできない原因はわかりませんねえ。お書きでない部分に何か原因があるとは思うのですが。
    • good
    • 0
この回答へのお礼

返事ありがとうございます。

とても参考になりました。

お礼日時:2007/09/24 11:36

シンボリックリンクってものを誤解してるような気が。

。。
>> #cd /home/user/test
>> #pwd
>> /mnt/hdb/user/test
>> になるはず
はないと思うんだけど…
/home/user/test へcdしたのだから$PWDは /home/user/test になるのじゃ?

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

返事ありがとうございます。

>新しいディスクは /mnt/hdb でなく /home にマウント
この方法が無難かもしれませんね

お礼日時:2007/09/24 11:41

ffftp で「どのユーザでログインするか」がわからないけど, 単に ftp するだけならいけるような気がする....


思い付くのは
・ホームディレクトリがシンボリックリンクだとちょっと危険かも
・anonymous ftp だとアウトかも
くらい.

この回答への補足

早速の返答ありがとうございます。

>どのユーザでログインするか

userというユーザです。同じユーザでもアクセスできない状態です・・・

そもそもなんでシンボリックリンクを使おうというと。各ユーザのディレクトリ容量を分担するため、ハードディスクを増設したのですが、シンボリックリンクを使う方法以外に何かいい方法ありますか?

補足日時:2007/09/21 21:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!