%20determina%20e%20armazena%20a%20propriedade%20do%20grupo%20em%20NTFS%3F.png)
Até onde eu sei, o NTFS não tem o conceito de proprietário de arquivo de grupo como o POSIX. (Por favor, corrija-me se eu estiver errado.) Ado utilizadorpode ser membro de um ou (geralmente) mais grupos, e um arquivo pode ter arquivos separadospermissõespara cada grupo, mas um arquivo não possui um proprietário de grupo além de seu "proprietário" simples. O "proprietário simples", entretanto, pode ser, talvez de forma confusa, um grupo.
Agora, quando faço ls -l
um bash do cygwin 2.8.0 no Windows 7 para um arquivo em NTFS (a máquina e a conta estão em um ambiente do Active Directory), vejo um grupo:
$ 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
(O GID longo é de um domínio diferente.) A princípio pensei que o cygwin inferisse o grupo do grupo primário do proprietário. Isso faria com que o grupo mudasse sempre junto com o usuário. No entanto, os dois parecem ser independentes:
$ 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
eu lihttps://cygwin.com/cygwin-ug-net/ntsec.htmlque descreve como UIDs e GIDs Posix são calculados a partir de SIDs do Windows; mas não consigo ver como o cygwin armazena propriedade de grupo para arquivos (que não é um recurso do Windows/NTFS, por isso precisa de um complemento do cygwin) separado da propriedade do usuário (que é um recurso do Windows/NTFS, por isso está prontamente disponível) .
Há uma nota sobre o armazenamento de comentários desse tipo <cygwin key="value" key="value" [...] />
para contas de usuários locais via net user ...
, incluindo uma chave de "grupo"; mas isso é para contas locais e não por arquivo, portanto não pode responder à minha pergunta.
Então, como o cygwin armazena e/ou obtém propriedade de arquivos em grupo? É um mecanismo do Windows? Em caso afirmativo, existem ferramentas do Windows para manipulá-los?
Responder1
Depois de navegar superficialmente pelo código-fonte do cygwin, acredito chgrp.exe
que esteja apenas ligando indiretamente RtlSetGroupSecurityDescriptor()
- via chown(2)
e fhandler_disk_file::set_posix_access()
.
Esta funcionalidade é oferecida no nível CLI porsubinacl.exe:
subinacl /file testfile /setprimarygroup=groupname
No entanto, no meu teste, a ferramenta requer SeSecurityPrivilege para ter sucesso e SeBackupPrivilege para não exibir um aviso.