디렉토리를 완전히 숨기지만 Samba에서 심볼릭 링크를 통해 해당 하위 항목에 액세스할 수 있게 합니다.

디렉토리를 완전히 숨기지만 Samba에서 심볼릭 링크를 통해 해당 하위 항목에 액세스할 수 있게 합니다.

Samba가 심볼릭 링크와 와이드 링크를 처리하는 방식으로 인해("공유 루트 내부" 또는 "공유 루트 외부"만 구별할 수 있음) 공유 루트에 "실제" 디렉터리에 대한 고정 심볼릭 링크를 생성한 다음 표시된 것처럼 사용자가 네트워크 공유를 탐색할 때 "실제" 디렉토리가 사용자에게 직접 표시됩니다.

이것이 가능한가?

실제 구조(FreeBSD 파일 서버):

share_root
   --- data1
          --- data3
          --- data4
          --- data5
          --- data6
   --- data2
          --- data7
          --- data8
          --- data9
   --- d4 (=symlink to data4)
   --- d6 (=symlink to data6)
   --- d9 (=symlink to data9)

사용자에게 표시되는 내용(Windows 클라이언트):

share_root
   --- d4 (and all data4's subdirs)
   --- d6 (and all data6's subdirs)
   --- d9 (and all data9's subdirs)

   (note: actual access to any dir is controlled by ACLs on data1/data2
    and their subdirs, so this just cleans up the tree seen by a user
    when they browse the share; it doesn't create any security)

기본적으로 "실제" 디렉토리 data1/data2에는 사용자가 액세스할 수 있거나 액세스할 수 없는 디렉토리가 혼합되어 있으며 해당 액세스는 ACL에 의해 시행됩니다.

그러나 사용자가 공유에 액세스할 때 먼저 이러한 디렉토리를 보지 않기를 바랍니다.

"일반" 숨김 파일은 Windows 탐색기에 표시되므로 "파일 숨기기"나 도트 파일을 사용할 수 없습니다. 도움이 되는 경우 거부권 파일, 액세스 제어 열거, ACL 읽기/트래버스 등과 같은 다른 방법을 사용할 수 있습니다. 그러나 data1/data2가 사용자에게 직접 표시되는 것을 방지하고 싶습니다. 순회를 종료하고 싶지 않습니다.심볼릭 링크 d4/d6/d9를 통해data1/data2의 하위 디렉토리로.

액세스 제어 열거, smb.conf 및 ACL의 조합을 사용하여 이것이 가능합니까? 그렇지 않다면 무엇이 해결책에 가장 가까운가?

답변1

귀하의 요청을 완전히 이해했는지는 모르겠지만 nullfs마운트를 사용하는 것이 가장 먼저 떠오르는 전술입니다.

물리적인 실제 구조는 그대로 둡니다. physical_root이 예를 위해 이것을 호출하십시오 .

에 대한 새로운 빈 디렉토리를 만들고 share_rootsmb4.conf에서 Samba가 해당 디렉토리를 가리키도록 합니다.

아래에서 share_rootSamba 클라이언트에 노출하려는 모든 디렉터리에 대한 마운트 지점을 만듭니다.

for DIR in d4 d6 d9; do
    mkdir /share_root/$DIR
done

이제 실제 물리적 디렉토리를 가짜 share_root공간에 널 마운트합니다.

mount_nullfs /physical_root/data1/data4 /share_root/d4
mount_nullfs /physical_root/data1/data6 /share_root/d6
mount_nullfs /physical_root/data2/data9 /share_root/d9

해당 마운트는 아마도 'late' 옵션을 사용하여 /etc/fstab에 추가할 수 있습니다:

/physical_root/data1/data4  /share_root/d4  nullfs  rw,late  0  0
...etc...

관련 정보