シンボリックリンクを使用できるようにSSHFSを介してリモートSFTPパスをマウントする方法を知っている人はいますか?これにより、私が作成したすべてのシンボリックリンクが間違ったファイル(リンクされたファイルではない)を指します。私が関心のあるすべてのシンボリックリンクは相対的(絶対的ではありません)なので、リモートシステムに表示されているのと同じように表示するのが理想的です。
デフォルトのマウントオプションでsshfsを使用すると、現在のディレクトリ内の他のファイルへのシンボリックリンクを作成できません。
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:11 test2 -> /test
リンク先が現在ディレクトリ(./test
)にあるため、これは明らかに間違っていますが、ここではsshfsが間違ったリンクを生成したことがわかります。/test
リンク先/mnt/path/to/sshfs/mount/test
ではありません/test
。
sshfsファイルシステムをマウントするときにそのオプションを追加すると、transform_symlinks
同じコマンドを使用して相対リンクを取得しましたが、まだ間違った場所を指します。
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> ../../../test
./test
ここでは現在のディレクトリに接続しようとしましたが、レベル3の上に../../../test
リンクが表示されました!
sftp
ただし、sshfsとしてマウントするのではなく、コマンドラインSFTPクライアント接続を使用すると機能します。
sftp> open ...
sftp> symlink test test2
...
$ cd /mnt/path/to/sshfs/mount
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> test
したがって、これはリモートSFTPサーバーが正常に機能していることを示していますが(専用のSFTPクライアントを使用してシンボリックリンクを作成できるため)、何らかの理由でsshfsを介して機能するシンボリックリンクを作成できません。
奇妙なことに、sshfsを使用して(SFTPサーバーの代わりに)シェルアクセスを提供するSSHサーバーにパスをマウントすると、シンボリックリンクは正しく機能します。正しく生成できます。この問題は、SFTP 専用サーバーに接続する場合にのみ発生します。
私は何が間違っていましたか?シンボリックリンクが機能するには、SFTPサーバーに接続するときにsshfsに特別なオプションを渡す必要がありますか?
ベストアンサー1
リモート絶対(で始まる/
)シンボリックリンクをマウントポイントに基づいて相対リンクに変換するには、sshfs
次のfollow_symlinks
オプションを使用します。
sshfs -o follow_symlinks ...
このtransform_symlinks
オプションは私には影響しません。参考この問題。