it-swarm-ko.tech

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

우분투 서버 10.04 64와 samba 3.4.7입니다.

공유 디렉토리 /home/mit/share와 공유 디렉토리에 링크 된 다른 /home/temp가 있습니다.

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

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

이것은 /home/mit/share/temp 내부의 디렉토리를 링크하면 작동하므로 삼바가 공유 디렉토리 외부/위의 링크로 점프하도록 제한하고있는 것 같습니다.

편집 :

우분투 + 최신 삼바 버전, 심볼릭 링크가 더 이상 Windows에 탑재 된 공유에서 작동하지 않음 라는 제목의이 질문도 참조하십시오.

unix extensions = no를 전역 섹션에, follow symlinks = yeswide links = yes를 필요한 경우 공유 섹션에만 두는 것이 가장 좋습니다.

unix extension 플래그는 개별 공유 섹션이 아닌 전역 섹션에 있어야합니다. 그러나 보안상의 이유로 전 세계가 아닌 필요한 곳에서만 다른 옵션을 사용하는 것이 좋습니다.

65
mit

Smb.conf 편집

[global]
unix extensions = no

[share]
follow symlinks = yes
wide links = yes

참고 : 최신 버전의 삼바를 사용하는 경우 다음이 대신 작동 할 수 있습니다.

[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

102
Mahesh

다른 답변 대신 유닉스 확장을 활성화하려면 다음을 사용할 수 있습니다.

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes
11
user1182474

인사말, 설치를 위해 Windows의 심볼릭 링크를 수정하기 위해이 구성을 시도했지만 Windows 클라이언트에 영향을 줄지 확실하지 않습니다. 그렇지 않으면이 상자에 연결할 때 심볼릭 링크를 따릅니다.

[global]                                                                        
unix extensions = no
11
Qiqi

Samba 클라이언트가 공유 경로 외부의 심볼릭 링크를 따르도록하려면 Samba 구성에 필요한 것은 다음과 같습니다.

[global]
allow insecure wide links = yes
unix extensions = no

[myShare]
wide links = yes

(삼바 외에도 정의 자체도 공유합니다). 이것은 이론적으로 * nix 고객에게는 충분합니다.

NB : "symlinks 따르기"지시문은 기본값이 "yes"이므로 필요하지 않습니다

Windows 클라이언트의 경우 이러한 링크를 따라갈 수 있도록 1 설정이 여전히 누락되었습니다. 그렇게하려면 :

  1. 관리자 권한이있는 Windows 셸을 엽니 다
  2. 운영 :

    fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
    
  3. 설정을 다시로드하려면 재부팅

NB : Windows 레지스트리를 편집하여 동일한 결과를 얻을 수 있습니다. 아래 링크를 참조하십시오

출처 :

4
Httqm

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
0
palswim