다음과 같은 많은 폴더가 포함 된 Samba 공유가 있습니다.
share
- folderA
- folderB
- folderC
- folderD
해당 공유에 액세스하는 사용자는 약 20 명입니다. 모든 사용자는 일부 디렉토리에 개별적으로 액세스 할 수 있습니다. 예를 들어 Ben은 folderB 및 folderD가 아닌 folderA 및 folderC에 액세스 할 수 있습니다. Jenny는 folderB 및 folderC 등에 액세스 할 수 있습니다.
사용자가 필요한 각 폴더를 마운트하지 않기를 바랍니다. 모든 하위 폴더가 포함 된 "share"폴더를 마운트하려고합니다. 그런 다음 리눅스 권한을 설정하여 액세스를 제한합니다.
모든 하위 디렉토리에 대한 그룹을 만들고 해당 그룹에 사용자를 추가했습니다. 액세스 제어는 기존 파일에 완벽하게 작동합니다. 그러나 사용자가 서브 디렉토리에 파일을 작성할 때마다 해당 디렉토리에서 읽기 / 쓰기 액세스 권한이있는 다른 모든 사용자에 대해 파일이 거부됩니다. 이 문제를 해결하기 위해 삼바 마스킹으로 놀았지만 작동시키지 못했습니다.
내 삼바 conf는 다음과 같습니다 :
guest ok = no
[global]
workgroup = WORKGROUP
security = user
encrypt passwords = yes
[Share]
path = /var/samba
valid users = @everybody
read only = no
writeable = yes
[folderA]
path = /var/samba/folderA
valid users = @users_folderA
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderA
[folderB]
path = /var/samba/folderB
valid users = @users_folderB
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderB
[folderC]
path = /var/samba/folderC
valid users = @users_folderC
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderC
[folderD]
path = /var/samba/folderD
valid users = @users_folderD
read only = no
writeable = yes
create mask = 770
directory mask = 770
force directory mode = 770
force group = users_folderD
따라서 모든 사용자는 모두 그룹에 속하므로 하위 디렉토리와 공유를 마운트 할 수 있습니다. 각 하위 디렉토리에 대한 액세스는 완벽하게 작동합니다. 그러나 Ben이 folderC에 파일을 만들 때마다 파일 권한 -rwxr--r--을 얻지 만 파일은 -rwxrwx--입니다.
개별 폴더의 공유가 작동하지 않는다고 생각합니다. 쓰기 가능 = 아니오로 설정하고 읽기 전용 = 예로 설정하여 테스트했습니다. smbd 및 nmbd를 다시 시작하고 네트워크 공유를 다시 마운트했습니다 (Windows 10). 사용자는 파일을 작성하고 자신의 파일을 수정할 수있었습니다.
이것은 라즈베리 파이와 라즈베리 파이에서 실행됩니다. 파일이있는 하드 드라이브는 ext4로 포맷되고 fstab을 통해 마운트됩니다.
force create mode = 770
statement를 사용folderC
하십시오.