Estructura del Servicio de Directorio

Como se puede leer en el capítulo dedicado a dominios Linux "En el contexto de las redes de ordenadores, se denomina directorio a una base de datos especializada que almacena información sobre los recursos, u "objetos", presentes en la red (tales como usuarios, ordenadores, impresoras, etc.) y que pone dicha información a disposición de los usuarios de la red".

En esta sección vamos a definir la estructura (Unidades Organizativas y objetos) del directorio que albergará la información de usuarios, máquinas y servicios que pretendemos ofrecer.

La raíz del directorio será un objeto de clase dc que albergará a las diferentes Unidades Organizativas:

# dsic2, upv, es
dn: dc=dsic2,dc=upv,dc=es
objectClass: dcObject
objectClass: organization
o: dsic2,dc=upv
dc: dsic2

La unidad organizativa encargada de almacenar la información de usuario se denominará Users y su definición en formato LDIF es la siguiente:

# Users, dsic2, upv, es
dn: ou=Users,dc=dsic2,dc=upv,dc=es
objectClass: organizationalUnit
ou: Users

La unidad organizativa encargada de almacenar la información de grupos se denominará Groups y su definición en formato LDIF es la siguiente:

# Groups, dsic2, upv, es
dn: ou=Groups,dc=dsic2,dc=upv,dc=es
objectClass: organizationalUnit
ou: Groups

La unidad organizativa encargada de almacenar la información de máquinas se denominará Computers y su definición en formato LDIF es la siguiente:

# Computers, dsic2, upv, es
dn: ou=Computers,dc=dsic2,dc=upv,dc=es
objectClass: organizationalUnit
ou: Computers

Un objeto de tipo usuario tendrá la siguiente definición en el Servicio de Directorio:

# usu1, Users, dsic2, upv, es
dn: uid=usu1,ou=Users,dc=dsic2,dc=upv,dc=es
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSAMAccount
cn: usu1
sn: usu1
uid: usu1
uidNumber: 1000
gidNumber: 513
homeDirectory: /home/usu1
loginShell: /bin/bash
gecos: System User
description: System User
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: System User
sambaSID: S-1-5-21-2758841116-2178560935-410125937-3000
sambaPrimaryGroupSID: S-1-5-21-2758841116-2178560935-410125937-513
sambaHomeDrive: H:
sambaAcctFlags: [U]
sambaPwdLastSet: 1099149278
sambaPwdMustChange: 1103901278

Como se puede apreciar este tipo de objeto hereda propiedades de varias clases. La clase posixAccount que define los atributos correspondientes a una cuenta de usuario Linux, la clase sambaSAMAccount que define los atributos correspondientes a una cuenta de usuario Windows.

En cambio para definir un objeto tipo grupo se utilizará la siguiente entrada de directorio:

# RRHH, Groups, dsic2, upv, es
dn: cn=RRHH,ou=Groups,dc=dsic2,dc=upv,dc=es
objectClass: posixGroup
objectClass: sambaGroupMapping
cn: RRHH
gidNumber: 1000
sambaSID: S-1-5-21-2758841116-2178560935-410125937-3001
sambaGroupType: 2
displayName: RRHH

La definición de un grupo hereda las propiedades de dos clases: posixGroup, sambaGroupMapping. Estas clases proporcionaran la información necesaria a los equipos Linux y Windows.