Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 8768|Risposta: 1

Serie OpenLDAP (3) I comandi OpenLDAP sono spiegati in dettaglio

[Copiato link]
Pubblicato su 23/06/2020 22:34:54 | | | |
Riepilogo dei comandi OpenLDAP

  • ldapsearch: Cerca voci dell'albero delle directory OpenLDAP.
  • ldapadd: Aggiunge voci dell'albero delle directory tramite formato LDIF.
  • ldapdelete: Elimina le voci dell'albero delle directory OpenLDAP.
  • ldapmodify: Modifica la voce dell'albero della directory OpenLDAP.
  • ldapwhoami: Valida l'identità degli utenti OpenLDAP.
  • ldapmodrdn: Giudica la voce DN dell'albero della directory OpenLDAP.
  • ldapcompare: Determina se il valore DN e il valore del parametro specificato appartengono alla stessa voce.
  • ldappasswd: Modifica la voce utente dell'albero delle directory OpenLDAP per ottenere un reset della password.
  • slaptest: Verifica il file slapd.conf o la directory cn=configuration.
  • slapindex: Crea un indice a albero di directory OpenLDAP per fornire efficienza nelle query.
  • slapcat: Converte i dati in file LDIF per OpenLDAP.


Comando ldapadd

Opzioni
descrizione
-x
Eseguire autenticazione semplice
-D
Il DN usato per associare il server
-h
L'indirizzo del servizio di directory
-W
Assegna la password DN
-f
File che utilizzano file LDIF per l'aggiunta di voci


Per prima cosa, prepariamo un file test.ldif con il seguente comando:



Il contenuto è il seguente:

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



Aggiungi i comandi come segue:



Dopo aver inserito la password, viene aggiunta con successo, come mostrato nella figura sottostante:



Comando ldapmodify

Il comando ldapmodify è fisso e implementa principalmente diverse funzioni di modifica tramite file di configurazione.



Il file demo.ldif è il seguente, il che significa che il parametro uidNumber dell'utente uid=xzz è stato modificato.



Comando dell'LDAPPASSWD

LdappassWD apre una connessione al server LDAP e cambia la password di inserimento.

Opzioni
descrizione
-x
Eseguire autenticazione semplice
-D
Il DN usato per associare il server
-W
Assegna la password DN
-S
Inserisci la password quando ti viene chiesto
-s
passare per impostare la password per passare
-un
Passaggio impostato vecchio passaggio per passare
-Un
Segnala l'impostazione del vecchio passaggio
-H
si riferisce al server da vincolare
-Io
Usa il metodo della sessione SASL




Comando ldapsearch

Comando di ricerca 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 di ricerca LDAP conforme RFC 4515
  Attributi Lista separata da spazi bianchi delle descrizioni degli attributi
    che possono includere:
      1.1 Nessun attributo
      * tutti gli attributi utente
      + tutti gli attributi operativi
Opzioni di ricerca:
  -un deref uno di mai (predefinito), sempre, cerca o trova
  -A recupera solo nomi di attributi (nessun valore)
  -base basata su b dn per la ricerca
  -c modalità di funzionamento continuo (non fermarsi sugli errori)
  -E [!] <ext>[=<extparam>] estensioni di ricerca (! indica criticità)
             [!] domainScope (ambito di dominio)
             !dontUseCopy (Non usare copia)
             [!] mv=<filter> (filtro valori corrispondenti RFC 3876)
             [!] pr=<size>[/prompt|noprompt] (Risultati/prompt paginati RFC 2696)
             [!] sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...]
                                         (Ordinamento lato server RFC 2891)
             [!] sottovoci[=vero|falso] (sottovoci RFC 3672)
             [!] sync=ro[/<cookie>] (RFC 4533 aggiornamento sincronizzazione LDAP Only)
                     rp[/<cookie>][/<slimit>] (refreshAndPersist)
             [!] vlv=<before><after>/(/<offset>/<count>||:<value>)
                                         (visualizzazioni virtuali di lista ldapv3-vlv-09)
             [!] deref=derefAttr:attr[,...] [; derefAttr:attr[,...] [; ...]]
             [!] <oid>[=:<b64value>] (controllo generico; Nessuna gestione delle risposte)
  -f operazioni di lettura del file da 'file'
  -Prefisso URL del prefisso F per i file (predefinito: file:///tmp/)
  -l limite di tempo (in secondi, o "nessuno" o "max") per la ricerca
  -L stampare risposte in formato LDIFv1
  -LL stampa risposte in formato LDIF senza commenti
  -LLL stampa risposte in formato LDIF senza commenti
             e versione
  -M abilita Gestire il controllo IT DSA (-MM per rendere critico)
  -Versione P versione del protocollo (predefinita: 3)
  -s scope uno di base, one, sub o figli (ambito di ricerca)
  -S attr ordina i risultati per attributo 'attr'
  -t scrive valori binari nei file della cartella temporanea
  -tt scrive tutti i valori nei file della directory temporanea
  -T path scrive file nella directory specificata per percorso (predefinito: /tmp)
  -u include i nomi delle voci User Friendly nell'output
  -z limite di dimensione (nelle voci, oppure "nessuno" o "max") per la ricerca
Opzioni comuni:
  -d level imposta il livello di debug LDAP su 'livello'
  -D binddn binddn bind bind DN
  -e [!] <ext>[=<extparam>] estensioni generali (! indica criticità)
             [!] assert=<filter> (RFC 4528; una stringa di filtri RFC 4515)
             [!] authzid=<authzid> (RFC 4370; "dn:<dn>" o "u:<user>")
             [!] concatenamento[=<resolveBehavior>[/<continuationBehavior>]]
                     uno di "concatenamentoPreferito", "concatenamentoRichiesto",
                     "riferimentiPreferiti", "RiferimentiRichiesti"
             [!] manageDSAit (RFC 3296)
             [!] Noop
             ppolicy
             [!] postread[=<attrs>] (RFC 4527; Elenco attr separato da virgole)
             [!] preread[=<attrs>] (RFC 4527; Elenco attr separato da virgole)
             [!] Rilassati
             [!] Monitoraggio delle sessioni
             abbandona, cancella, ignora (SIGINT invia abbandono/cancella,
             o ignora la risposta; se critico, non aspetta il SIGINT.
             non davvero controlli)
  -h host server LDAP
  -Identificatore Uniforme di Risorse LDAP -URI
  -Uso la modalità interattiva SASL
  -n mostra cosa si farebbe ma non farlo davvero
  -N non usare DNS inverso per canonicizzare il nome host SASL
  -O props proprietà di sicurezza SASL
  -o <opt>[=<optparam>] Opzioni generali
             nettimeout=<timeout> (in secondi, oppure "nessuno" o "max")
             ldif-wrap=<width> (nelle colonne, oppure "no" per no wrapping)
  porta -p sul server LDAP
  -Q usa la modalità silenziosa SASL
  -Regno R regno SASL
  -Identità di autenticazione SASL autentica U authcid
  -v eseguita in modalità verbosa (diagnostica all'uscita standard)
  -Informazioni sulla versione di stampa V (-Solo VV)
  -w pass bind password (per semplice autenticazione)
  -Prompt W per associare password
  -x Autenticazione semplice
  -Identità di autorizzazione SASL autentica X ("dn:<dn>" o "u:<user>")
  -y file Leggi password dal file
  -Meccanismo SASL del meccanismo Y
  -Z Avvia richiesta TLS (-ZZ richiederà una risposta riuscita a ripetere)

Il comando è il seguente:


I risultati delle query sono i seguenti:


Interroga tutti gli utenti:


Spiegazione del sostantivo LDAP

Classe oggetto

La classe di oggetti LDAP è il modello dati integrato in LDAP. Ogni objectClass ha la propria struttura dati, ad esempio abbiamo una objectClass chiamata "Phone Book", che sicuramente avrà molti attributi integrati, come nome (uid), numero ID (uidNumber), nome unità (gid), indirizzo di casa (homeDirectory), ecc.; allo stesso tempo, c'è anche una objectClass chiamata "Classmate Record", che ha una "rubrica telefonica" Alcuni attributi (come uid, homeDirectory) avranno anche attributi che non sono nella "rubrica telefonica" (come la descrizione, ecc.).

Partecipazione

Una voce può essere chiamata voce, una voce è un record, un'unità di archiviazione di base in LDAP; Può anche essere considerato come una raccolta di DN e un insieme di attributi. Si noti che una voce può contenere più classi di oggetti, ad esempio, zhang3 può esistere contemporaneamente nell'"Elenco telefonico" o nel "Registro dei compagni di classe".

DN

Distinguished Name, il nome unico e distinto della voce in LDAP, una grafia completa DN: uid=zhang3, ou=People, dc=163, dc=com. Solo la voce in LDAP è unica per il server LDAP.

Filtro di ricerca LDAP

Usa il filtro per cercare LDAP. Il filtro è generalmente composto da un'unità come (attributo=valore), ad esempio: (&(uid=ZHANGSAN)(objectclass=person)) indica che l'Entry LDAP dell'utente di ricerca è ZHANGSAN. Un altro esempio è: (&(|( uid= ZHANGSAN)(uid=LISI))(objectclass=person)), indicando che la ricerca per un utente con un id di ricerca è ZHANGSAN, o LISI; Puoi anche usare * per rappresentare qualsiasi valore, come (uid=ZHANG*SAN), e cercare voci con valori uid che iniziano con ZHANG e terminano con SAN. Inoltre, secondo diverse regole di abbinamento degli attributi LDAP, può esserci un Filtro come segue: (&(createtimestamp>=20050301000000)(createtimestamp<=20050302000000)), che indica che il tempo di creazione della ricerca è compreso tra 20050301000000 e 20050302000000.

Nel filtro, "&" significa "e"; “!” significa "non"; “|” significa "oppure". A seconda delle regole di abbinamento, possiamo usare "=", "~=", ">="" e "<=".

Base DN

Un DN base può essere "dc=163,dc=com" oppure "dc=Persone,dc=163,dc=com". Poiché LDAP è una struttura dati ad albero, la ricerca inizierà da BaseDN dopo aver specificato il basedn, e possiamo specificare l'ambito di ricerca come: solo search basedn (base), basedn direct sublevel (un livello) e basedn all sub treedn.

objectClass

In LDAP, una voce deve contenere un attributo objectClass e essere assegnata almeno a un valore. Ogni valore sarà utilizzato come modello per l'archiviazione dei dati tramite una voce LDAP; Il template contiene un attributo a cui deve essere assegnato l'ingresso e un attributo opzionale. objectClass ha una gerarchia rigorosa, con top e alias in cima. Ad esempio, la classe oggetto di organizationalPerson è subordinata a person, e persona è subordinata a top.

objectClass può essere suddivisa nelle seguenti 3 categorie:
Strutturale: come persona e organizzazioneUnità;
Ausiliaria: come extensibeObject;
Abstract: Ad esempio, la classe abstract objectClass non può essere usata direttamente.
Sono definite molte classi di oggetti nello schema OpenLDAP, e i nomi di alcune classi di oggetti comunemente usate sono elencati di seguito.

  • Account
  • Alias
  • DCOBJECT
  • Dominio
  • ipHost
  • Organizzazione
  • Ruolo organizzativoT
  • Unità organizzativa
  • persona
  • PersonaOrganizzativaT
  • inetOrgPerson
  • Persona residenziale
  • posixAccount
  • posixGroup


ObjectClass è una raccolta di attributi e LDAP racchiude molti oggetti comuni nelle organizzazioni umane e li racchiude in classi di oggetti. Ad esempio, il personale include cognome (sn), nome di battesimo (c), numero di telefono (numero di telefono), password (passwordUtente) e altri attributi, e PersonaOrganizzativa è la classe ereditaria della persona; oltre agli attributi sopra indicati, include anche titolo, codice postale (codice postale) e indirizzo postale (indirizzo postale) e altri attributi.

I tipi di oggetti possono essere facilmente definiti tramite classi oggetti. Ogni voce può ereditare direttamente più classi di oggetti, che ereditano varie proprietà. Se ci sono 2 classi di oggetti con lo stesso attributo, solo 1 attributo verrà mantenuto dopo l'eredità della voce. La classe oggetto specifica anche quali proprietà sono informazioni di base e devono contenere (Must Required): quali proprietà sono informazioni estese e possono contenere (May o Opzionale).

Esistono tre tipi di classi di oggetti: Strutturale, Astratte e Ausiliarie. I tipi strutturali sono i tipi più basilari, che specificano le proprietà di base del corpo dell'oggetto, e ogni voce appartiene e appartiene a una sola classe di oggetti strutturali. I tipi astratti possono essere tipi strutturali o altri genitori di tipi astratti, che organizzano insieme le parti comuni delle proprietà degli oggetti, chiamati template per altre classi, e le voci non possono integrare direttamente le classi di oggetti astratti. Il tipo ausiliario specifica le proprietà estese dell'entità oggetto. Sebbene ogni barra appartenga a una sola classe di oggetti strutturali, può appartenere contemporaneamente a più classi di oggetti ausiliari.

La classe oggetto stessa può ereditare l'una l'altra, quindi la classe radice della classe oggetto è la classe oggetto più astratta e superiore. Prendendo come esempio i tipi di persone comunemente usati, il loro rapporto ereditario è come mostrato nella figura:



Gli attributi integrati di Accout sono: userid, descrizione, host, nomelocalità, nomeOrganizzazione, NomeUnitàOrganizzazione, vedi anche;

Le caratteristiche integrate di inetOrgPerson sono cn, sn, descrizione, vediAnche, telefonoNumero, userPassword, destinationIndicator, facsimileTelephoneNumber, internationaliSDNNumber, l, ou, physicalDeliveryOfficeName、postOfficeBox、postalAddress、postalCode、preferredDeliveryMethod、registeredAddress、st、street、telephoneNumber、teletexTerminalIdentifier、 telexNumber、title、x121Address、audio、usinessCategory、carLicense、departmentNumber、isplayName、employeeNumber、employeeType、givenName、homePhone、homePostalAddress、initials、 jpegFoto, etichettataURI, mail, manager, cellulare, o, cercapersone, foto, preferenzaLingua, NumeroStanza, segretaria, uid, Certificato utente, ecc.;

Come puoi vedere, Accout imposta solo pochi attributi necessari e utili (è sicuramente sufficiente per completare la verifica di accesso), mentre inetOrgPerson ha molti attributi integrati, come numero di telefono, numero di cellulare, indirizzo di strada, numero email, indirizzo email, numero di stanza, avatar, manager, numero di dipendente, ecc.

Pertanto, quando si configura LDAP, si raccomanda impostare il tipo objectClass su accout se serve solo per verificare l'accesso, e impostare objectClass su inetOrgPerson se si vuole creare un grande e completo tesoro di informazioni sui dipendenti

Qui di solito uso 'inetOrgPerson', 'posixAccount', 'shadowAccount'.

Gli attributi richiesti dell'account sono userid, mentre quelli richiesti di posixAccount sono cn, gidNumber, homeDirectory, uid, uidNumber; L'attributo richiesto di shadowAccount è uid, e gli attributi opzionali includono shadowExpire, shadowInactive, shadowMax, shadowMin, userPassword, ecc. La proprietà richiesta in top è objectClass (si può vedere che top e altre classi oggetto sono relazioni ereditate).

Attributo

Gli attributi sono simili alle variabili nella programmazione e possono essere assegnati. Molti attributi comunemente usati sono dichiarati in OpenLDAP (gli utenti possono anche definire i propri attributi). I significati degli attributi comuni sono i seguenti:

  • c: Paese.
  • CN: Nome comune, che si riferisce al nome di un oggetto. Se si riferisce a una persona, deve essere usato il nome completo.
  • dc:componente di dominio, spesso usato per riferirsi a una parte di un nome di dominio.
  • givenName: si riferisce al nome di una persona, non a un cognome.
  • L: Si riferisce a un toponimo, come il nome di una città o di un'altra area geografica.
  • mail: Indirizzo email.
  • o:organizationName, che si riferisce al nome di un'organizzazione.
  • ou:UnitàNomeOrganizzativa, che si riferisce al nome di un'unità organizzativa.
  • SN: Cognome, si riferisce al cognome di una persona.
  • TelefonoNumero: Il numero di telefono che deve riportare il codice del paese in cui si trova.


Consiglio: objectClass è un Attributo speciale che contiene altri Attributi usati oltre a se stesso.

Per diverse classi di oggetti, di solito ci sono alcuni valori di proprietà richiesti e alcuni valori opzionali. Ad esempio, puoi usare l'objectClass di persona per rappresentare una voce per un utente nel sistema, e l'utente nel sistema di solito deve avere alcune informazioni come nome, numero di telefono, password, descrizione, ecc. Come mostrato nell'immagine sottostante, per persona, imposta il nome e il cognome dell'utente tramite cn e sn, che è obbligatorio, mentre gli altri attributi sono opzionali.

Di seguito è riportato un elenco di alcuni requisiti comunemente usati per objectClass che sono richiesti.

  • account:userid。
  • Organizzazione:o。
  • Persona: CN e SN.
  • PersonaOrganizzativa: Uguale a persona.
  • RolealOrganizational:cn。
  • organizationUnit:ou。
  • posixGroup:cn、gidNumber。
  • posixAccount:cn、gidNumber、homeDirectory、uid、uidNumber。

(Fine)




Precedente:OpenLDAP: Non è riuscito ad avviare OpenLDAP Server Daemon.
Prossimo:Selettore di #id Angular 9 Series (nove) applicato sulla pagina
Pubblicato su 19/05/2023 11:23:09 |
istruito
Grazie per aver condiviso~~~
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com