Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 8768|Respuesta: 1

Serie OpenLDAP (3) Los comandos OpenLDAP se explican en detalle

[Copiar enlace]
Publicado en 23/6/2020 22:34:54 | | | |
Resumen de comandos OpenLDAP

  • ldapsearch: Busca entradas de árbol de directorios OpenLDAP.
  • ldapadd: Añade entradas en el árbol de directorios mediante formato LDIF.
  • ldapdelete: Elimina las entradas del árbol de directorios OpenLDAP.
  • ldapmodify: Modificar la entrada del árbol de directorios OpenLDAP.
  • ldapwhoami: Valida la identidad de los usuarios de OpenLDAP.
  • ldapmodrdn: Juzga la entrada DN del árbol de directorios OpenLDAP.
  • ldapcompare: Determina si el valor DN y el valor del parámetro especificado pertenecen a la misma entrada.
  • ldappasswd: Modificar la entrada de usuario del árbol de directorios OpenLDAP para lograr un restablecimiento de contraseña.
  • slaptest: Verifica el archivo slapd.conf o el directorio cn=configuration.
  • slapindex: Crea un índice de árbol de directorios OpenLDAP para proporcionar eficiencia en las consultas.
  • slapcat: Convierte datos en archivos LDIF para OpenLDAP.


Comando ldapadd

Opciones
descripción
-x
Realizar autenticación sencilla
-D
El DN solía enlazar el servidor
-H
La dirección del servicio de directorio
-w
Vincular contraseña de DN
-f
Archivos que utilizan archivos LDIF para la suma de entradas


Primero, preparamos un archivo test.ldif con el siguiente comando:



El contenido es el siguiente:

dn: uid=xzz,ou=Users,dc=itsvse,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
homeDirectory: /home/itsvse_xzz
loginShell: /bin/bash
cn: xzz
uidNumber: 1000
gidNumber: 1000
sn: System Administrator
mail: xzz@itsvse.com
postalAddress: shanghai
mobile: 13788888888



Añadir comandos de la siguiente manera:



Tras introducir la contraseña, se añade con éxito, como se muestra en la figura siguiente:



Comando ldapmodify

El comando ldapmodify es fijo y principalmente implementa diferentes funciones de modificación a través de archivos de configuración.



El archivo demo.ldif es el siguiente, lo que significa que el parámetro uidNumber del usuario uid=xzz está modificado.



Mando de la LDAPPASSWD

Ldappasswd abre una conexión al servidor LDAP y cambia la contraseña de entrada.

Opciones
descripción
-x
Realizar autenticación sencilla
-D
El DN solía enlazar el servidor
-w
Vincular contraseña de DN
-S
Introduce la contraseña cuando te lo pidan
-s
pasar para poner la contraseña para pasar
-un
Pase configurado antiguo pasaporte para pasar
-Un
Solicita la configuración de la antigua pasada
-H
se refiere al servidor a vincular
-Yo
Utiliza el método de sesión SASL




Comando de búsqueda ldap

Comando de búsqueda LDAP

[root@VM_0_9_centos ~]# ldapsearch -h
ldapsearch: option requires an argument -- 'h'
ldapsearch: unrecognized option -h
usage: ldapsearch [options] [filter [attributes...]]
where:
  filtro LDAP compatible con RFC 4515 filtro de búsqueda
  Atributos Lista separada por espacios en blanco de descripciones de atributos
    que pueden incluir:
      1.1 Sin atributos
      * todos los atributos de usuario
      + todos los atributos operativos
Opciones de búsqueda:
  -un deref de nunca (por defecto), siempre, buscar o encontrar
  -A recuperar solo nombres de atributos (sin valores)
  -B basado en la base dn para búsqueda
  -c Modo de funcionamiento continuo (no parar en errores)
  -E [!] <ext>[=<extparam>] extensiones de búsqueda (! indica criticidad)
             [!] domainScope (ámbito de dominio)
             !noUseCopia (No uses Copia)
             [!] mv=<filter> (filtro de valores coincididos RFC 3876)
             [!] pr=<size>[/prompt|noprompt] (Resultados/prompt paginados RFC 2696)
             [!] sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...]
                                         (Ordenación del servidor RFC 2891)
             [!] subentradas[=true|false] (subentradas RFC 3672)
             [!] sync=ro[/<cookie>] (RFC 4533 LDAP Sync refreshOnly)
                     rp[<cookie>/][/<slimit>] (actualizarYPersistir)
             [!] vlv=<before><after>/(/<offset>/<count>|:)<value>
                                         (vistas de lista virtuales ldapv3-vlv-09)
             [!] deref=derefAttr:attr[,...] [; derefAttr:attr[,...] [; ...]]
             [!] <oid>[=:<b64value>] (control genérico; Sin manejo de respuesta)
  -f operaciones de lectura de archivo desde 'file'
  -Prefijo URL con prefijo F para archivos (por defecto: file:///tmp/)
  -l límite de tiempo (en segundos, o "ninguno" o "máximo") para la búsqueda
  -L respuestas impresas en formato LDIFv1
  -LL imprimir respuestas en formato LDIF sin comentarios
  -LLL imprimir respuestas en formato LDIF sin comentarios
             y versión
  -M habilitar Gestionar el control de TI de DSA (-MM para hacer crítico)
  -Versión P versión del protocolo (por defecto: 3)
  -s alcance uno de base, uno, sub o hijos (alcance de búsqueda)
  -S attr ordena los resultados por el atributo 'attr'
  -t escribe valores binarios en archivos en directorios temporales
  -tt escribe todos los valores en archivos en un directorio temporal
  -Ruta T escribe archivos en directorios especificados por ruta (por defecto: /tmp)
  -u incluye nombres de entradas Amigables para el usuario en la salida
  -z límite de tamaño (en entradas, o "ninguno" o "max") para la búsqueda
Opciones comunes:
  -d level establece LDAP depuración level a 'level'
  -D binddn binddn bind bind
  -e [!] <ext>[=<extparam>] extensiones generales (! indica criticidad)
             [!] assert=<filter> (RFC 4528; una cadena de filtros RFC 4515)
             [!] authzid=<authzid> (RFC 4370; "dn:<dn>" o "u:<user>")
             [!] encadenada[=<resolveBehavior>[/<continuationBehavior>]]
                     uno de "encadenarPreferido", "encadenarObligatorio",
                     "ReferenciasPreferible", "DerivacionesRequeridas"
             [!] manageDSAit (RFC 3296)
             [!] Noop
             ppolicy
             [!] postread[=<attrs>] (RFC 4527; lista de atracciones separadas por comas)
             [!] preread[=<attrs>] (RFC 4527; lista de atracciones separadas por comas)
             [!] Relájate
             [!] Seguimiento de sesiones
             abandonar, cancelar, ignorar (SIGINT envía abandonar/cancelar,
             o ignora la respuesta; si es crítico, no espera a SIGINT.
             no realmente controla)
  -h host servidor LDAP
  -Identificador(es) uniforme de recursos H URI LDAP
  -Yo uso el modo interactivo SASL
  -n mostrar lo que se haría pero no hacerlo realmente
  -N no usan DNS inverso para canonizar el nombre de host SASL
  -O props propiedades de seguridad SASL
  -o <opt>[=<optparam>] Opciones generales
             Tiempo límite=<timeout> (en segundos, o "ninguno" o "máximo")
             ldif-wrap=<width> (en columnas, o "no" para no envolver)
  puerto -p en el servidor LDAP
  -Q usa el modo silencioso SASL
  -Reino R Reino SASL
  -Identidad de autenticación SASL U authcid
  -v se ejecuta en modo verboso (diagnóstico a salida estándar)
  -Información de la versión impresa V (-solo VV)
  -W contraseña de asignación de pasa-WD (para autenticación sencilla)
  -Prompt W para vincular contraseña
  -x Autenticación simple
  -Identidad de autorización SASL de la autenticación X ("dn:<dn>" o "u:<user>")
  -y archivo Lee contraseña del archivo
  -Mecanismo SASL mecánico Y
  -Z Iniciar solicitud TLS (-ZZ requerirá respuesta exitosa)

El comando es el siguiente:


Los resultados de la consulta son los siguientes:


Consulta a todos los usuarios:


Explicación del sustantivo LDAP

Clase de objeto

La clase de objetos LDAP es el modelo de datos integrado en LDAP. Cada objectClass tiene su propia estructura de datos, por ejemplo, tenemos una objectClass llamada "Phone Book", que definitivamente tendrá muchos atributos incorporados, como nombre (uid), número ID (uidNumber), nombre de unidad (gid), dirección de casa (homeDirectory), etc.; al mismo tiempo, también existe una objectClass llamada "Classroommate Record", que tiene una "guía telefónica". Algunos atributos (como uid, homeDirectory) también tendrán atributos que no están en la "guía telefónica" (como la descripción, etc.).

Entrada

Una entrada puede llamarse entrada, una entrada es un registro, una unidad básica de almacenamiento en LDAP; También puede considerarse como una colección de DNs y un conjunto de atributos. Ten en cuenta que una entrada puede contener múltiples objetClases, por ejemplo, zhang3 puede existir en la "Guía telefónica" o en el "Registro de compañeros de clase" al mismo tiempo.

DN

Nombre Distinguido, el nombre distinguido único de la entrada en LDAP, una ortografía completa en DN: uid=zhang3, ou=Pueblo, dc=163, dc=com. Solo la entrada en LDAP es única para el servidor LDAP.

Filtro de búsqueda LDAP

Usa el filtro para buscar LDAP. El filtro generalmente está compuesto por una unidad como (attribute=value), por ejemplo: (&(uid=ZHANGSAN)(objectclass=person)) indica que la entrada LDAP del usuario de búsqueda es ZHANGSAN. Otro ejemplo es: (&(|( uid= ZHANGSAN)(uid=LISI))(objectclass=persona)), indicando que la búsqueda de un usuario con id de búsqueda es ZHANGSAN, o LISI; También puedes usar * para representar cualquier valor, como (uid=ZHANG*SAN), y buscar entradas con valores uid que empiecen por ZHANG y terminan por SAN. Además, según diferentes reglas de coincidencia de atributos LDAP, puede haber un filtro de la siguiente manera: (&(createtimestamp>=20050301000000)(createtimestamp<=20050302000000)), que indica que el tiempo de creación de la búsqueda está entre 20050301000000 y 20050302000000.

En Filtro, "&" significa "y"; “!” significa "no"; “|” significa "o". Dependiendo de las reglas de emparejamiento, podemos usar "=", "~=", ">="" y "<=".

Base DN

Un DN base puede ser "dc=163,dc=com" o "dc=People,dc=163,dc=com". Dado que LDAP es una estructura de datos en árbol, la búsqueda comenzará desde BaseDN tras especificar el basedn, y podemos especificar el alcance de búsqueda como: solo search basedn (base), basedn directo subnivel (un nivel) y basedn all subtree level.

Clase objeto

En LDAP, una entrada debe contener un atributo objectClass y tener al menos un valor asignado. Cada valor se utilizará como plantilla para el almacenamiento de datos mediante una entrada LDAP; La plantilla contiene un atributo al que debe asignarse la entrada y un atributo opcional. objectClass tiene una jerarquía estricta, con top y alias en la parte superior. Por ejemplo, la clase objeto de organizationalPerson es subordinada a persona, y persona es subordinada a top.

objectClass puede dividirse en las siguientes 3 categorías:
Estructural: como persona y organizaciónUnidad;
Auxiliar: como extensibeObject;
Abstract: Por ejemplo, la abstract objectClass no puede usarse directamente.
Existen muchas Clase de objeto definidas en el esquema OpenLDAP, y los nombres de algunas Clases de objeto más usadas se enumeran a continuación.

  • Cuenta
  • alias
  • dcobject
  • Dominio
  • ipHost
  • Organización
  • Rol organizacional
  • Unidad organizacional
  • Persona
  • PersonaOrganizacional
  • inetOrgPerson
  • residencialPersona
  • posixAccount
  • posixGroup


ObjectClass es un conjunto de atributos, y LDAP encapsula muchos objetos comunes en organizaciones humanas y los encapsula en clases de objetos. Por ejemplo, el personal incluye apellido (sn), nombre de pila (cn), número de teléfono (teléfonoNúmero), contraseña (usuarioContraseña) y otros atributos, y organizacionalPersona es la clase de herencia de la persona; además de los atributos anteriores, también incluye el título, el código postal (postalCode) y la dirección postal (postalAddress) y otros atributos.

Los tipos de objetos pueden definirse fácilmente mediante clases de objetos. Cada entrada puede heredar directamente varias clases de objetos, lo que hereda varias propiedades. Si hay 2 clases de objetos con el mismo atributo, solo se conservará 1 atributo después de heredar la entrada. La clase objeto también especifica qué propiedades son información básica y deben contener (Must Required): qué propiedades son información extendida y pueden contener (May u Opcional).

Existen tres tipos de clases de objetos: estructurales, abstractos y auxiliares. Los tipos estructurales son los tipos más básicos, que especifican las propiedades básicas del cuerpo del objeto, y cada entrada pertenece y pertenece a una sola clase de objeto estructural. Los tipos abstractos pueden ser tipos estructurales u otros padres de tipos abstractos, que organizan las partes comunes de las propiedades de los objetos, llamados plantillas para otras clases, y las entradas no pueden integrar directamente las clases abstractas de objetos. El tipo auxiliar especifica las propiedades extendidas de la entidad objeto. Aunque cada barra pertenece a una sola clase de objetos estructurales, puede pertenecer a varias clases auxiliares de objetos al mismo tiempo.

La clase de objeto puede heredarse mutuamente, por lo que la clase raíz de la clase de objeto es la clase abstracta superior. Tomando como ejemplo los tipos de personas comúnmente usados, su relación de herencia es la que se muestra en la figura:



Los atributos integrados de cuenta son: userid, descripción, host, localidadidadNombre, NombreOrganización, NombreDeUnidadOrganizacional, véaseTambién;

Los atributos integrados de inetOrgPerson son cn, sn, descripción, véaseTeléfonoNúmero, contraseña de usuario, indicador de destino, númeroTeléfonoFacsímil, internationaliSDNNumber, l, ou, NombreOficinaFísica、OficinaCorreoBujaBujaPostal、CódigoPostal、MetodoEntregaPreferido、DirecciónRegistrada、st、calle、NúmeroTeléfono、TeletexIdentificadorTerminal、 TelexNumber、title、x121Address、audio、usinessCategory、carLicense、departmentNumber、isplayName、employeeNumber、employeeType、givenName、homePhone、homePostalAddress、initials、 jpegPhoto, etiquetadoURI, correo, gestor, móvil, o, buscapersonas, foto, preferidoIdioma, roomNumber, secretaria, uid, userCertificate, etc.;

Como puedes ver, Accout solo preestablece unos pocos atributos necesarios y útiles (definitivamente es suficiente para completar la verificación de acceso), mientras que inetOrgPerson tiene muchos atributos incorporados, como número de teléfono, número de móvil, dirección, correo electrónico, correo electrónico, número de habitación, avatar, responsable, número de empleado, etc.

Por lo tanto, al configurar LDAP, se recomienda establecer el tipo objectClass en recout si solo es para verificar el inicio de sesión, y establecer objectClass en inetOrgPerson si quieres crear un gran y completo tesoro de información de empleados

Aquí suelo usar 'inetOrgPersona', 'posixCuenta', 'Cuentasombra'.

Los atributos requeridos de la cuenta son userid, mientras que los atributos requeridos de posixAccount son cn, gidNumber, homeDirectory, uid, uidNumber; El atributo requerido de shadowAccount es uid, y los atributos opcionales incluyen shadowExpire, shadowInactive, shadowMax, shadowMin, userPassword, etc. La propiedad requerida de top es objectClass (se puede ver que top y otras objectClasses son relaciones heredadas).

Atributo

Los atributos son similares a variables en programación y pueden asignarse. Muchos atributos comúnmente usados se declaran en OpenLDAP (los usuarios también pueden definir sus propios atributos). Los significados de atributos comunes son los siguientes:

  • c: Country.
  • CN: Nombre común, que se refiere al nombre de un objeto. Si se refiere a una persona, debe usarse su nombre completo.
  • dc:componente de dominio, que a menudo se usa para referirse a una parte de un nombre de dominio.
  • NombreDado: se refiere al nombre de una persona, no a un apellido.
  • L: Se refiere a un topónimo, como el nombre de una ciudad u otra zona geográfica.
  • correo: Dirección de correo electrónico.
  • o:organizationName, que se refiere al nombre de una organización.
  • ou:NombreUnidad organizacional, que se refiere al nombre de una unidad organizativa.
  • SN: Apellido se refiere al apellido de una persona.
  • teléfonoNúmero: El número de teléfono que debe llevar el código del país en el que se encuentra.


Consejo: objectClass es un atributo especial que contiene otros atributos usados además de sí mismo.

Para diferentes ObjectClasses, normalmente hay algunos valores de propiedad requeridos y algunos valores opcionales. Por ejemplo, puedes usar la clase objeto de persona para representar una entrada de un usuario en el sistema, y el usuario en el sistema normalmente necesita tener alguna información como nombre, número de teléfono, contraseña, descripción, etc. Como se muestra en la imagen de abajo, para persona, establece el nombre y apellido del usuario mediante cn y sn, que es obligatorio, mientras que otros atributos son opcionales.

A continuación se presenta una lista de algunos requisitos de objetClass comúnmente usados que son requeridos.

  • cuenta:userid。
  • Organización:o。
  • Persona: CN y SN.
  • PersonaOrganizacional: Igual que persona.
  • organizationalRole:cn。
  • organizationUnit:ou。
  • posixGroup:cn、gidNumber。
  • posixAccount:cn、gidNumber、homeDirectory、uid、uidNumber。

(Fin)




Anterior:OpenLDAP: No se ha conseguido iniciar el Daemon del Servidor OpenLDAP.
Próximo:Selector de #id Angular 9 Series (nueve) aplicado en la página
Publicado en 19/5/2023 11:23:09 |
docto
Gracias por compartir~~~
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com