cygwin(과거 2015)은 NTFS에서 그룹 소유권을 어떻게 결정하고 저장합니까?

cygwin(과거 2015)은 NTFS에서 그룹 소유권을 어떻게 결정하고 저장합니까?

내가 아는 한 NTFS에는 POSIX와 같은 그룹 파일 소유자 개념이 없습니다. (틀렸다면 정정해주세요.)사용자하나 이상의 그룹의 구성원이 될 수 있으며 파일은 별도의 그룹을 가질 수 있습니다.권한그러나 파일에는 일반 바닐라 "소유자" 외에 그룹 소유자가 없습니다. 그러나 "일반 소유자"는 아마도 혼란스럽게도 그룹일 수 있습니다.

ls -l이제 NTFS의 파일에 대해 Windows 7의 cygwin 2.8.0 bash에서 작업을 수행할 때 (머신과 계정은 Active Directory 환경에 있음) 그룹이 표시됩니다.

$ ll -n cleartool golden-dev-val.cfgspec
-rwxrwxrwx+ 1 2736485    1049089  277  9. Mai 12:34 cleartool
-rwxrwxrwx+ 1 1493656 3556770305 9159 19. Mai 16:25 golden-dev-val.cfgspec

(긴 GID는 다른 도메인에서 왔습니다.) 처음에는 cygwin이 소유자의 기본 그룹에서 그룹을 추론하는 줄 알았습니다. 그러면 그룹이 항상 사용자와 함께 변경됩니다. 그러나 두 개는 독립적인 것처럼 보입니다.

$ chown 2736485  golden-dev-val.cfgspec

$ ll -n cleartool golden-dev-val.cfgspec
-rwxrwxrwx+ 1 2736485    1049089  277  9. Mai 12:34 cleartool
-rwxrwxrwx+ 1 2736485 3556770305 9159 19. Mai 16:25 golden-dev-val.cfgspec

$ chgrp 3556770305 cleartool

$ ll -n cleartool golden-dev-val.cfgspec
-rwxrwxrwx+ 1 2736485 3556770305  277  9. Mai 12:34 cleartool
-rwxrwxrwx+ 1 2736485 3556770305 9159 19. Mai 16:25 golden-dev-val.cfgspec

내가 읽고https://cygwin.com/cygwin-ug-net/ntsec.htmlPosix UID 및 GID가 Windows SID에서 계산되는 방법을 설명합니다. 하지만 cygwin이 사용자 소유권(Windows/NTFS 기능이므로 쉽게 사용할 수 있음)과 별도로 파일에 대한 그룹 소유권(Windows/NTFS 기능이 아니므로 cygwin 추가 기능이 필요함)을 저장하는 방법을 확인하지 못했습니다. .

"그룹" 키를 포함하여 를 <cygwin key="value" key="value" [...] />통해 로컬 사용자 계정에 대한 종류의 설명을 저장하는 방법에 대한 참고 사항이 있습니다 . net user ...하지만 그것은 로컬 계정에 대한 것이고 파일별이 아니기 때문에 내 질문에 대답할 수 없습니다.

그렇다면 cygwin은 어떻게 파일의 그룹 소유권을 저장 및/또는 얻습니까? Windows 메커니즘인가요? 그렇다면 이를 조작할 수 있는 Windows 도구가 있습니까?

답변1

cygwin의 소스 코드를 표면적으로 살펴본 후에는 및 를 통해 chgrp.exe간접적으로 호출하고 있다고 생각합니다 .RtlSetGroupSecurityDescriptor()chown(2)fhandler_disk_file::set_posix_access()

이 기능은 CLI 수준에서 제공됩니다.subinacl.exe:

subinacl /file testfile /setprimarygroup=groupname

그러나 내 테스트에서는 도구가 성공하려면 SeSecurityPrivilege가 필요하고 경고를 표시하지 않으려면 SeBackupPrivilege가 필요합니다.

관련 정보