Samba 공유 - 심볼릭 링크를 따르지만 이미 로컬 경로에 있습니다.

Samba 공유 - 심볼릭 링크를 따르지만 이미 로컬 경로에 있습니다.

방금 어디서도 찾을 수 없는 문제에 부딪혔습니다(예: 삼바 문서).

server1에 삼바 공유가 있고 공유가 server2에 마운트되어 있습니다. server1의 공유는 에 대한 심볼릭 링크입니다 /var/container/db.

문제는 server2에서 이 심볼릭 링크 폴더를 열려고 하면 해당 경로가 /var/container/db내 server2에 존재하기 때문에 server2의 로컬 파일이 표시된다는 것입니다.

이 문제의 원인은 무엇이며 해결책은 무엇입니까?

두 서버 모두 데비안에서 실행되고 있습니다.

답변1

Unix 계열 호스트 간에 기호 링크를 공유하는 경우 공유가 마운트된 시스템은 자체 파일 시스템 트리에 따라 기호 링크를 해석합니다. 이것이 Unix 스타일의 심볼릭 링크가 작동하는 방식입니다.

서버 1의 공유에 심볼릭 링크가 가리킬 콘텐츠가 포함되어 있는 경우 다음을 사용할 수 있습니다.비교적절대 링크 대신 기호 링크.

예를 들어, Samba 공유가 server1에 있고 /varserver2에 마운트되어 있으며 /server1var심볼릭 링크가 server1에 있는 경우 /var/some/directory/link-to-db현재 심볼릭 링크는 다음과 같습니다.

server1# ln -s /var/container/db /var/some/directory/link-to-db

대신 다음과 같이 할 수 있습니다.

server1# cd /var/some/directory
server1# ln -s ../../container/db link-to-db

server1의 데이터베이스가 Samba 공유 내에 없으면 Samba 서버 매개변수가 필요합니다 wide links = yes. 이렇게 하면 server1이 심볼릭 링크를 따르고 /var/container/db심볼을 전달하는 대신 server1에 대한 액세스를 제공하게 됩니다.

그러나 서버가 기본 설정으로 실행되는 경우에도 기본적으로 활성화됩니다. unix extensions = yes클라이언트 wide links가 Unix 계열 시스템인 경우(귀하의 경우처럼) 비활성화됩니다.

allow insecure wide links = yes그러나 설정을 통해 이 매개변수가 공유 연결에서도 작동하도록 허용할 수 있습니다 wide links.unix extensions하지만 이는 안전하지 않기 때문에 권장하지 않습니다.클라이언트가 공유에 적절한 심볼릭 링크(쓰기 가능한 경우)를 생성하여 Samba 공유 외부의 모든 파일에 액세스하려고 시도할 수 있으므로 server1의 관리자는 공유되는 것과 공유 불가능한 것에 대한 제어력을 잃게 됩니다. 연결에 사용되는 파일에는 파일을 읽을 수 있는 권한이 있습니다.

기본적으로 allow insecure wide links+++ 클라이언트 쓰기 가능 공유는 Samba wide links와의 unix extensions+++ 공유와 사실상 동일합니다 /. 권장되지 않습니다.

관련 정보