우분투 서버 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
하므로 samba는 공유 디렉토리 외부 / 위의 링크로 점프하도록 제한하고 있다고 생각합니다.
편집하다:
Ubuntu + latest samba version 이라는 제목의이 질문을 참조하십시오 . symlinks는 더 이상 Windows에 마운트 된 공유에서 작동하지 않습니다 .
unix extensions = no
글로벌 섹션에, follow symlinks = yes
그리고 wide links = yes
실제로 필요한 공유 섹션에만 두는 것이 가장 좋습니다 .
unix extension
플래그는 글로벌 섹션이 아닌 개별 주 섹션에 살고있다. 그러나 보안상의 이유로 전 세계가 아닌 필요한 곳에서만 다른 옵션을 사용하는 것이 좋습니다.
답변
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 symlinks
및 wide links
플래그 : https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1
답변
인사말, 설치를 위해 Windows의 심볼릭 링크를 수정하기 위해이 구성을 시도했지만 Windows 클라이언트에 영향을 줄지 확실하지 않습니다. 그렇지 않으면이 상자에 연결할 때 심볼릭 링크를 따릅니다.
[global]
unix extensions = no
답변
다른 답변 대신 유닉스 확장을 활성화하려면 다음을 사용할 수 있습니다.
[global]
allow insecure wide links = yes
[share]
follow symlinks = yes
wide links = yes
답변
Samba 클라이언트가 공유 경로 외부의 심볼릭 링크를 따르도록하려면 Samba 구성에 필요한 것은 다음과 같습니다.
[global]
allow insecure wide links = yes
unix extensions = no
[myShare]
wide links = yes
(삼바 외에도 정의 자체도 공유합니다). 이것은 이론적으로 * nix 고객에게는 충분합니다.
NB : “symlinks 따르기”지시문은 기본값이 “yes”이므로 필요하지 않습니다
Windows 클라이언트의 경우 이러한 링크를 따라갈 수 있도록 1 설정이 여전히 누락되었습니다. 그렇게하려면 :
- 관리자 권한이있는 Windows 셸을 엽니 다
-
운영 :
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
-
설정을 다시로드하려면 재부팅
NB : Windows 레지스트리를 편집하여 동일한 결과를 얻을 수 있습니다. 아래 링크를 참조하십시오
출처 :
답변
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