Samba:특정 사용자의 하위 폴더 숨기기

Samba:특정 사용자의 하위 폴더 숨기기

한 명(또는 한 명을 제외한 모든 사용자)의 공유 일치 패턴에서 모든 하위 폴더를 숨길 수 있는 방법이 있습니까?

에는 표시 되지만 에는 표시되지 않는 하위 디렉토리( 이라고 부르겠습니다 _private_data) 를 갖고 싶습니다 . 하지만 이 디렉토리가 어디에 있을지 미리 알 수는 없습니다. 디렉토리를 생성 한 다음 디렉토리를 생성하는 것일 수도 있습니다 . 'user2' 또한 모든 하위 디렉터리를 읽을 수 있는 권한이 있지만 하위 디렉터리를 볼 수 없어야 합니다 .user1user2user1ShareThis/LookHereShareThis/LookHere/_private_dataShareThis/LookHere_private_data

어떻게 든 그렇게 할 수 있습니까? hide files, veto files및 옵션을 이미 찾았습니다 dont descend. 내가 원하는 것과 꽤 비슷해 보이지만 일부 사용자에게만 할당하는 방법과 공유의 하위 디렉터리에서 일치시키는 방법을 모르겠습니다.

답변1

마침내 해결책을 찾았습니다. 사용자 이름을 기반으로 파일을 포함하여 작동합니다. _priv 디렉터리 검색을 허용하려는 모든 사용자에 대해 파일을 생성(또는 심볼릭 링크)해야 하지만 나에게는 괜찮습니다.

다음은 'Images'라는 공유에 대한 예입니다.

smb.conf:

[Images]
comment = Shared Images
path = /path/to/images
write list = user1, user2
valid users = user1, user2

# make sure the _priv directory cannot be accessed
hide files = /_priv/
veto files = /_priv/

# The following line allows to revert hide and veto options so that
# specific users are allowed to view private directories
include = /etc/samba/allowprivate.conf.%U

그런 다음 디렉터리에 액세스할 수 있어야 하는 모든 사용자에 대해 Allowprivate.conf를 만듭니다. (예:allowprivate.conf.user1) 다음 내용을 포함합니다.

# This reverts the settings from smb.conf, so that this user
# can access all files
hide files =  
veto files =

하위 디렉터리에서도 작동하므로 '권한이 있는' 사용자는 _priv디렉터리를 만들 수 있고 권한이 없는 사용자는 해당 디렉터리에 액세스할 수 없습니다.

답변2

디렉토리는 숨겨져 있어야 하므로 다른 사용자가 읽을 수 없어야 한다고 생각합니다. hide unreadable사용자가 읽을 수 없는 파일과 디렉터리를 기본적으로 숨기는 매개변수를 조사해 볼 수도 있습니다 . 공유별로 설정할 수 있습니다.

답변3

내 해결책은 다음과 같습니다.

  1. 사용자 및 그룹 생성
  2. user1그룹 내 사용자 만 admin이 폴더를 볼 수 있습니다.
[Images]
...
hide unreadable = yes
force user = %U
force group = +smbadmin
# /path/to/images
chmod 770 _priv
chown user1:admin _priv

관련 정보