삼바가 공유 경로 외부의 심볼릭 링크를 따르도록 만드는 방법

삼바가 공유 경로 외부의 심볼릭 링크를 따르도록 만드는 방법

이것은 Ubuntu 서버 10.04 x64 및 Samba 3.4.7입니다.

공유 디렉터리 /home/mit/share/home/temp공유 디렉터리에 연결된 다른 디렉터리가 있습니다.

ln -s /home/temp /home/mit/share/temp

그런데 Windows에서는 인터넷을 사용한 후 열 수 없지만 Linux에서는 예상대로 액세스 S:/temp할 수 있습니다 ./home/mit/share/temp

/home/mit/share/temp이것은 내부 디렉토리에 연결하면 작동하므로 삼바 제한은 공유 디렉토리 외부/위의 링크를 사용하여 점프하는 것 같습니다.

편집하다:

이 질문도 참조하십시오.Ubuntu + 최신 삼바 버전, Windows에 탑재된 공유에 대해 심볼릭 링크가 더 이상 작동하지 않습니다..

unix extensions = no전역 섹션 follow symlinks = yes에 넣고 wide links = yes실제로 필요한 공유 섹션에만 넣는 것이 더 나은 것 같습니다.

플래그 unix extension는 단일 공유 섹션이 아닌 전역 섹션에 있어야 합니다. 그러나 보안상의 이유로 전역적으로 사용하는 것보다 필요한 경우에만 다른 옵션을 사용하는 것이 좋습니다.

답변1

smb.conf 편집

[global]
unix extensions = no

[share]
follow symlinks = yes
wide links = yes

참고: 최신 버전의 Samba를 사용하는 경우 다음이 적합할 수 있습니다.

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

문서 follow symlinkswide links로고:https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1

답변2

다른 답변 외에도 UNIX 확장을 활성화하려면 다음을 사용할 수 있습니다.

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

답변3

안녕하세요, 설정에 대한 Windows 심볼릭 링크를 수정하기 위해 이것을 구성에 넣으려고 했지만 이것이 Windows 클라이언트에 영향을 미칠지 아니면 이 상자에 연결할 때 심볼릭 링크를 따라갈지 잘 모르겠습니다.

[global]                                                                        
unix extensions = no

답변4

AppArmor를 실행하는 경우 Samba 구성 파일 이상의 작업을 처리해야 할 수도 있습니다.

실제로 다음 지시어를 포함해야 합니다 smb.conf.

follow symlinks = yes
wide links = yes
unix extensions = no
# No need for "allow insecure wide links" unless you want "unix extensions = yes"

그러나 AppArmor는 자체 규칙 세트 의미 체계에 따라 파일 시스템의 일부에 대한 액세스를 차단합니다. 따라서 Samba의 심볼릭 링크가 AppArmor가 차단하는 위치를 가리키는 경우 Samba는 액세스를 거부합니다.

내 시스템에서는 서비스가 시작/중지될 때 Samba가 AppArmor 구성 파일을 업데이트하므로 AppArmor 구성 파일을 변경할 수 있지만 Samba 또는 다른 프로그램이 이를 덮어쓸 위험이 있습니다. 대신, 액세스하려는 심볼릭 링크 대상이 포함된 위치를 참조하여 Samba에 연결할 수 없는 공유를 만들기로 결정했습니다(아직 진행 중 smb.conf).

# The following is a hack for AppArmor to allow the path
[share1 for AppArmor] # Or whichever name you choose
    browseable = no
    path = /home # Point to directory or parent directory of the location to access
    read only = yes
    guest ok = no
    valid users = none

관련 정보