Có ai biết cách gắn một đường dẫn SFTP từ xa thông qua SSHFS để bạn có thể làm việc với các liên kết tượng trưng không? Khi tôi thực hiện việc này, tất cả các liên kết tôi tạo đều trỏ đến các tệp sai (không phải liên kết tôi liên kết.) Tất cả các liên kết tôi quan tâm là tương đối (không tuyệt đối) để chúng xuất hiện chính xác như trên máy từ xa là lý tưởng
Sử dụng sshfs với các tùy chọn gắn kết mặc định, tôi không thể tạo liên kết tượng trưng đến tệp khác trong thư mục hiện tại:
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:11 test2 -> /test
Điều này rõ ràng là không chính xác, vì mục tiêu liên kết nằm trong thư mục hiện tại ( ./test
), nhưng ở đây bạn có thể thấy rằng sshfs tạo một liên kết /test
không chính xác - mục tiêu liên kết thì /mnt/path/to/sshfs/mount/test
không /test
.
Bằng cách thêm transform_symlinks
tùy chọn khi tôi gắn hệ thống tập tin sshfs, tôi nhận được một liên kết tương đối thay vì cùng một lệnh, nhưng nó vẫn trỏ đến vị trí sai:
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> ../../../test
Ở đây tôi đã cố gắng liên kết đến ./test
trong thư mục hiện tại, nhưng thay vào đó tôi có một liên kết đến ../../../test
ba cấp độ trở lên!
Tuy nhiên, kết nối với máy khách SFTP dòng lệnh sftp
thay vì gắn với sshfs không hoạt động:
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
Vì vậy, điều này cho tôi biết máy chủ SFTP từ xa đang hoạt động tốt (vì tôi có thể tạo liên kết tượng trưng với máy khách SFTP chuyên dụng), nhưng vì một số lý do tôi không thể tạo bất kỳ liên kết hoạt động nào mặc dù sshfs.
Thật kỳ lạ, khi tôi sử dụng sshfs để gắn đường dẫn trên máy chủ SSH cung cấp quyền truy cập shell (trái ngược với máy chủ chỉ có SFTP), các liên kết tượng trưng hoạt động tốt - tôi có thể tạo chúng một cách chính xác. Nó chỉ có vẻ có vấn đề khi được kết nối với một máy chủ chỉ SFTP.
Tôi đang làm gì sai? Có một tùy chọn đặc biệt nào tôi phải chuyển đến sshfs khi tôi kết nối với máy chủ SFTP để làm cho các liên kết tượng trưng hoạt động không?
sftp
bằng chữ thường, tôi có nghĩa là giao diện SFTP dòng lệnh, tức là /usr/bin/sftp
. Ví dụ cuối cùng của tôi trong bài viết là khi tôi tạo liên kết tượng trưng bằng ứng dụng khách SFTP này, giống như bạn yêu cầu.
transform_symlinks
tùy chọn, những gì bạn đang làm trên một ssh mount với transform_symlinks
tùy chọn và những gì bạn đang làm với một máy khách sftp. Các liên kết tượng trưng hoạt động bình thường qua SSHFS, vì vậy câu trả lời cho câu đầu tiên của bạn là không có gì khác - bạn đã gặp phải lỗi hoặc bạn không gõ đúng lệnh, nhưng báo cáo của bạn không rõ ràng để biết điều gì sai.
ls -l
trên các liên kết tượng trưng thử nghiệm của mình?