Samba ACL은 "모든 권한"을 방지합니다.

Samba ACL은 "모든 권한"을 방지합니다.

Samba 파일 서버를 Active Directory 구성원으로 설정했습니다. 파일 서버가 제대로 작동하고 있으며 사용자는 공유에 액세스하고, 파일과 폴더를 생성하고, 삭제 및 수정하는 등의 작업을 할 수 있습니다.

이제 다음 시나리오를 고려하십시오.

a) 사용자 "관리자"는 폴더를 생성하고 다음과 같이 권한을 부여합니다. 도메인 관리자 = 모든 권한, 도메인 사용자 = 변경. 이러한 권한이 있으면 "도메인 관리자"의 모든 구성원이 폴더의 권한을 편집할 수 있습니다. 그러나 "도메인 사용자"의 구성원은 권한을 볼 수만 있고 변경할 수는 없습니다.

b) 일반 "도메인 사용자"로 Samba 파일 서버에 로그인하고 새 폴더를 만들었습니다. a)에서 예상한 대로 권한을 편집할 수 없습니다. 하지만 내가 할 수 있는 일은 "고급"으로 이동하여 상속을 비활성화하는 것입니다. 그런 다음 Windows에서는 하위 폴더와 파일에 대한 권한을 변경해야 하는지 묻습니다. 놀랍게도 이 방법은 작동합니다. 이제 권한을 변경할 수 없는 일반 "도메인 사용자"로서 상위 폴더가 모든 권한을 거부하더라도 방금 만든 폴더에 대한 "모든 권한"을 얻을 수 있습니다.

내 Samba 구성에 ACL 상속 문제가 있다고 생각하며 제한된 사용자가 ACL 상속을 끄는 것을 허용해서는 안 된다고 생각합니다. 무엇이 문제일까요?

아래는 내 smb.conf합계 입니다 shares.conf.

[global]

# ...... removed some stuff that is not important

#-------------------------------------------------------------------
# idmap
#
idmap config * : backend = tdb
idmap config * : range = 10000000-20000000
idmap config MYDOMAIN : backend = ad
idmap config MYDOMAIN : schema_mode = rfc2307
idmap config MYDOMAIN : range = 500-9999999
idmap config MYDOMAIN : unix_primary_group = yes

#-------------------------------------------------------------------
# winbind
#
#winbind enum users = yes
#winbind enum groups = yes

ea support = yes
vfs objects = catia fruit acl_xattr streams_xattr
fruit:metadata = stream
fruit:model = MacSamba
fruit:veto_appledouble = no
fruit:posix_rename = yes
fruit:zero_file_id = yes
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes

inherit acls = yes
inherit permissions = yes
map acl inherit = yes
nt acl support = yes

include = /etc/samba/shares.conf

그리고 share.conf:

[pub]
comment = Public
path = /tank/pub
read only = no

편집하다: 좀 더 실험을 해봤습니다. 나는 제한된 사용자가 자신이 소유한 폴더의 상속을 비활성화할 수 있다는 것이 핵심이라는 것을 알았습니다. 문제는 이를 어떻게 방지할 수 있느냐는 것입니다. "Inherit Owner=Yes"를 광산으로 설정하여 이 작업을 수행했습니다 smb.conf. 이렇게 하면 모든 새 파일과 폴더가 "루트"에 의해 소유되므로 명시적으로 부여되지 않는 한 누구도 모든 권한을 가질 수 없습니다.

답변1

너는 그리워하고있다 acl group control = yes:

이 매개변수가 설정되면 Samba [...]는 파일이나 디렉터리의 기본 그룹 소유자가 파일의 권한과 ACL을 수정할 수도 있도록 허용합니다.

다음 부분을 테스트하지 않았으며 테스트할 수도 없지만 계속해서 표시됩니다.

이 매개변수는 inherit owner이 옵션과 함께 사용하는 것이 가장 좋으며 UNIX setgid 비트 세트가 있는 디렉터리가 포함된 공유에서도 사용할 수 있습니다. 그러면 그 안에 생성된 새 파일과 디렉터리가 포함 디렉터리의 그룹 소유권을 상속하게 됩니다.

계속 읽어보세요. ACL 구성 설정을 다음과 같이 설정할 수 있습니다.

acl group control = yes
acl map full control = no
inherit acls = yes
inherit owner = windows and unix
map acl inherit = yes

기본적으로 Windows ACL과 UNIX 파일 권한(적어도 피상적인 권한)은 실제로 서로 전혀 매핑되지 않으며 Windows 공유에서 권한이 제대로 작동하려면 많은 수정이 필요합니다.

관련 정보