누구나 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
.
transform_symlinks
sshfs 파일 시스템을 마운트 할 때 옵션 을 추가하면 동일한 명령으로 상대 링크를 얻을 수 있지만 여전히 잘못된 위치를 가리 킵니다.
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> ../../../test
여기서 나는 ./test
현재 디렉토리에서 링크를 시도 했지만 대신 ../../../test
3 레벨까지 링크를 얻었 습니다!
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에 전달해야하는 특수 옵션이 있습니까?
sftp
소문자로 말할 때 커맨드 라인 SFTP 인터페이스를 의미 /usr/bin/sftp
합니다. 게시물의 마지막 예는 요청 한 것처럼이 SFTP 클라이언트를 사용하여 symlink를 만들 때입니다.
transform_symlinks
옵션 없이 sshfs 마운트를 통해 수행중인 작업, 옵션을 사용하여 ssh 마운트를 통해 수행중인 작업 transform_symlinks
및 sftp 클라이언트 로 수행중인 작업을 명확히하려면 게시물을 편집하십시오 . 심볼릭 링크는 SSHFS를 통해 정상적으로 작동하므로 첫 번째 문장에 대한 대답은 "아무것도 없습니다"입니다. 버그가 발생했거나 올바른 명령을 입력하지 않았지만보고 내용이 명확하지 않아서 무엇이 잘못되었는지 알 수 없습니다.
ls -l
테스트 심볼릭 링크에서 실행할 때 무엇이 표시 됩니까?