Linux, ZFS 및 Samba를 사용하여 백업 서버를 구축하고 있습니다. 나 이외의 모든 클라이언트는 Windows 10을 사용할 것이므로 Windows 10을 제대로 지원하는 데 초점을 맞추고 있지만 그렇다고 Linux 측의 권한이 안전하지 않게 허용되어야한다는 의미는 아닙니다 (즉, 읽기 및 쓰기 가능).
실수로 모든 파일에서 POSIX ACL을 제거한 후 처음에 그룹 액세스를 허용하도록 설정된 것으로 생각하고 Windows 측 파일에 대한 모든 권한이 손상되었습니다.
이것은 매뉴얼의 모든 옵션을 검토하고 구성을 다시 실행하여 수정되었습니다. 내가 원하는 동작을 얻기 위해 설정해야 할 옵션, 즉 UNIX 권한을 안전하게 유지하면서 Windows 측에서만 권한을 설정하는 옵션을 알아 냈습니다. Samba가 UNIX 권한을 처리하는 방법에 대해 아직 이해하지 못하는 두 가지 사항이 있습니다.
설정 acl_xattr:ignore system acls = no
하면 UNIX 권한이 내가 원하지 않는 Windows ACL (CREATOR, GROUP 및 EVERYONE 항목)의 항목이되지만으로 설정 yes
하면 소유자, 그룹 및 권한이 여전히 Windows 측의 권한에 영향을 미치는 것 같습니다. 여전히 Samba에 의해 시행됩니다. 디렉토리에 root:backup 0660
권한 Domain User
이있는 경우 Windows ACL에에 대한 항목이 있어도 임의의 디렉토리에 대한 액세스 권한이 없습니다 Domain Users
. 그룹을 NT 그룹에 매핑 backup
하는 users
위치로 변경 하면 작동합니다. 따라서 분명히 UNIX 권한은 여전히 적용됩니다.users
Domain Users
Windows ACL이 나머지를 거부하도록하는 설정이 있습니까? 즉, Windows ACL이를 허용 Domain Users
하면 UNIX 권한에 관계없이 허용됩니까? 아니면 UNIX 권한을 사용하여 Samba를 비활성화 할 수 있습니까?
다른 질문은 Samba가 UNIX 권한을 저장하는 방법입니다. 새 구성에서는 inherit owner = yes
. 이것은 UNIX 그룹을 다른 것으로 변경하려고 할 때를 제외하고는 UNIX와 같은 두 Windows에서 예상대로 작동하는 것처럼 보였습니다. 처음에 setgid 비트는 john
그룹이 inherit owner
아닌 소유자에게만 영향을 미치는 것으로 생각하여 그룹으로 공유에 설정되었습니다 . 그러나 공유에서 setgid 비트를 제거하고 그룹을 users
재귀 적으로 변경할 때 inherit owner = yes
Windows 10 클라이언트에서 만든 새 파일과 디렉터리가 여전히 그룹과 함께 생성되었습니다 john
. 디렉토리 트리에 그룹이 john
남아 있는 디렉토리가 없었습니다. 만일을 대비하여 Windows 클라이언트와 Samba 서버를 다시 시작하려고했지만 아무것도 변경되지 않았습니다.
Samba는 UNIX 권한을 다른 곳에 저장하므로 파일 시스템에서 직접 UNIX 그룹을 변경해도 Samba가 추적하는 그룹에 영향을주지 않습니까? 아니면 Samba가 여전히 새 파일과 디렉토리에이 이전 그룹을 사용하는 원인은 무엇일까요?
아래에서 Samba 버전 4.7.6 구성의 잠재적 관련 옵션을 찾을 수 있습니다. 더 많은 정보가 필요하면 알려주십시오.
[global]
access based share enum = yes
acl group control = no
acl map full control = yes
acl_xattr:ignore system acls = yes
acl_xattr:default acl style = windows
create mask = 0775
directory mask = 0775
dos filemode = yes
dos filetime resolution = no
dos filetimes = yes
ea support = no
force create mode = 0600
force directory mode = 0600
force unknown acl user = no
guest account = nobody
guest ok = no
guest only = no
inherit acls = no
inherit owner = unix only
inherit permissions = no
invalid users = root
map acl inherit = yes
map archive = no
map hidden = no
map readonly = no
map system = no
map to guest = never
nt acl support = yes
obey pam restrictions = no
read only = yes
restrict anonymous = 2
security = user
server role = active directory domain controller
store dos attributes = yes
unix extensions = yes
vfs objects = dfs_samba4 acl_xattr shadow_copy2
[backups]
create mask = 0660
directory mask = 0770
ea support = yes
path = /mnt/pool/backups
read only = no
Samba는 UNIX 권한을 다른 곳에 저장하므로 파일 시스템에서 직접 UNIX 그룹을 변경해도 Samba가 추적하는 그룹에 영향을주지 않습니까? 아니면 Samba가 여전히 새 파일과 디렉토리에이 이전 그룹을 사용하는 원인은 무엇일까요?
이 두 번째 질문에 대한 답을 찾을 수있었습니다. 저와 함께 실험하는 동안 inherit owner
한 번은 NT ACL의 일부로 저장된 값이 무엇인지 알고 싶었 기 때문에을 사용하여 디렉토리를 조사했고 samba-tool ntacl get /path/to/dir
놀랍게도 이전 GID가 group_sid
. 나는 더 이상 다른 곳 파일 시스템의 이전 GID에 대한 다른 참조를했다 없기 때문에 그리고, 이것은 삼바의 원인, 특히 I가 상속 소유자를 설정할 때마다 때문에, 기존의 UNIX 그룹에 들고 보인다 unix only
거나 no
, 그것이이 없습니다 이전 UNIX 그룹. 그래서 분명히 설정 inherit owner
에 yes
(즉 unix and windows
), 삼바는 NT의 ACL에 저장되어있는 그룹에 UNIX 그룹을 설정됩니다.
여전히 첫 번째 질문에 대한 답변을 원하지만 NT 그룹 Domain Users
을 선호하는 UNIX 그룹 에 매핑 하는 방법을 찾고 POSIX ACL을 통해 다른 사용자의 권한을 0으로 설정 하는 방법을 찾았습니다 setfacl -Rm d:o:---,o:--- /my/share
..
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다