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


61

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

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

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

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

내부 디렉토리를 연결하면 작동 /home/mit/share/temp하므로 samba는 공유 디렉토리 외부 / 위의 링크로 점프하도록 제한하고 있다고 생각합니다.

편집하다:

Ubuntu + latest samba version 이라는 제목의이 질문을 참조하십시오 . symlinks는 더 이상 Windows에 마운트 된 공유에서 작동하지 않습니다 .

unix extensions = no글로벌 섹션에, follow symlinks = yes그리고 wide links = yes실제로 필요한 공유 섹션에만 두는 것이 가장 좋습니다 .

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


심볼릭 링크 대신 하드 링크를 사용해 볼 수 있습니까?
Falmarri

답변:


92

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


위의 질문 끝에 왜 이것이 좋은 해결책인지 설명하십시오.
mit

다른 누군가 가이 짧은 파일을 난독 화하는 모든 논평에서 어려움을 겪고있는 경우 : 백업에 복사하고 다시 필터링하십시오 : 1 : cp /etc/samba/smb.conf /etc/samba/smb.conf.bak2 :grep -o '^[^#;]*' smb.conf.bak >smb.conf
Frank Nocke

않습니다 [share]의미 [<share_name>]?
Necktwi

@neckTwi-그것이 내가 생각한 것인데 그것은 나를 위해 일했습니다.
Geoff

@Geoff 그것은 나를 위해 작동하지 않았다! 전환sshfs
Necktwi

11

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

[global]                                                                        
unix extensions = no


예, 이것은 분명히 내 환경의 문제를 해결합니다.
TML

10

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

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

않습니다 [share]의미 [<share_name>]?
Necktwi

그렇습니다. 문서에서 인용 한 '공유 자원 ('공유 ')을 설명하는 smb.conf 섹션 일 수 있습니다. 또한 [homes]내가 사용 하는 특별한 섹션에있을 수도 있습니다 . 자세한 내용은 설명서 를 참조하십시오.
user1182474

4

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 레지스트리를 편집하여 동일한 결과를 얻을 수 있습니다. 아래 링크를 참조하십시오

출처 :


0

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.