Asignación de identificadores posix
El subsistema Posix debe poder traducir cualquier identificador de seguridad (SID) que encuentre en un valor de 32 bits, denominado id. de Posix. Además, debe poder clasificar el identificador como un identificador de usuario o un identificador de grupo. Para comprender cómo se logra esta asignación, echemos un vistazo primero a los SID que se deben asignar.
Los SID tienen dos componentes, el SID del dominio y el identificador relativo de la cuenta en el dominio. Por ejemplo, en el SID S-1-518364-21-43-8, el último número, 8, es el identificador relativo de la cuenta (RID) y S-1-518364-21-43 es el SID del dominio.
La información del dominio se almacena en objetos TrustedDomain . Parte de la información almacenada en un objeto TrustedDomain es un desplazamiento de id. posix que se va a usar para los SID dentro de ese dominio. Por ejemplo, supongamos que un trustedDomain se define de la siguiente manera:
Name: NtPgm
Sid: S-1-518364-21-43
Posix Offset: 0x130000
Los id. de Posix para las cuentas de este dominio se generarían agregando 0x130000 al identificador relativo de la cuenta. Por lo tanto, el id. de Posix correspondiente al SID S-1-518364-21-43-8 sería 0x130008.
No todas las traducciones de id. de Posix usan un objeto TrustedDomain . En la tabla siguiente se muestran los SID que se asignan mediante valores de desplazamiento conocidos.
Source | Desplazamiento de id. de Posix |
---|---|
SID del dominio integrado | 0x20000 |
SID del dominio de la cuenta | 0x30000 |
SID del dominio principal (solo en estaciones de trabajo) | 0x40000 |
Y, por último, otro conjunto de SID, SID de inicio de sesión, requiere un procesamiento especial. Estos valores se asignan mediante el proceso de inicio de sesión de Windows para cada sesión de inicio de sesión y tienen el formulario S-1-5-5-X-Y, donde X e Y se tratan como un único LARGE_INTEGER que se incrementa para cada sesión de inicio de sesión. Estos SID se asignan a la constante id. de Posix 0xFFF. Para asignar el identificador de Posix 0xFFF, puede traducir el identificador de inicio de sesión que mejor se adapte a la situación, o puede usar S-1-5-5-0-0 de forma predeterminada. (Por ejemplo, si un usuario posix aplica protección a un objeto y especifica FFFx, es mejor sustituir el identificador de inicio de sesión del usuario que asignar solo S-1-5-5-0-0).