Mapeando identificadores posix
O subsistema Posix deve ser capaz de converter qualquer SID ( identificador de segurança ) encontrado em um valor de 32 bits, chamado de ID posix. Além disso, ele deve ser capaz de categorizar a ID como uma ID de usuário ou uma ID de grupo. Para entender como esse mapeamento é realizado, primeiro vamos examinar os SIDs que devem ser mapeados.
Os SIDs têm dois componentes, o SID do domínio e a ID relativa da conta no domínio. Por exemplo, no SID S-1-518364-21-43-8, o último número, 8, é a ID relativa da conta (RID) e S-1-518364-21-43 é o SID do domínio.
As informações de domínio são armazenadas em objetos TrustedDomain . Parte das informações armazenadas em um objeto TrustedDomain é um deslocamento de ID posix a ser usado para SIDs dentro desse domínio. Por exemplo, suponha que um TrustedDomain seja definido da seguinte maneira:
Name: NtPgm
Sid: S-1-518364-21-43
Posix Offset: 0x130000
As IDs posix para contas nesse domínio seriam geradas adicionando 0x130000 à ID relativa da conta. Portanto, a ID posix correspondente ao SID S-1-518364-21-43-8 seria 0x130008.
Nem todas as traduções de ID posix usam um objeto TrustedDomain . A tabela a seguir mostra SIDs mapeados usando valores de deslocamento conhecidos.
Fonte | Deslocamento da ID do Posix |
---|---|
SIDs do domínio interno | 0x20000 |
SIDs do domínio da conta | 0x30000 |
SIDs do domínio primário (somente em estações de trabalho) | 0x40000 |
E, por fim, um outro conjunto de SIDs, SIDs de logon, requer processamento especial. Esses valores são atribuídos pelo processo de logon do Windows para cada sessão de logon e têm o formulário S-1-5-5-X-Y, em que X e Y são tratados como um único LARGE_INTEGER incrementado para cada sessão de logon. Esses SIDs são mapeados para a constante ID do Posix 0xFFF. Para mapear a ID do Posix 0xFFF, você pode traduzir qualquer identificador de logon mais adequado à situação ou pode usar o S-1-5-5-0-0 por padrão. (Por exemplo, se um usuário posix aplicar proteção a um objeto e especificar FFFx, será melhor substituir o identificador de logon desse usuário do que apenas atribuir S-1-5-5-0-0.)