Rezumatul comenzilor OpenLDAP
- ldapsearch: Caută intrări în arborele de directoare OpenLDAP.
- ldapadd: Adaugă intrări în arborele de director prin formatul LDIF.
- ldapdelete: Șterge intrările din arborele directorului OpenLDAP.
- ldapmodify: Modifică intrarea în arborele de directore OpenLDAP.
- ldapwhoami: Validează identitatea utilizatorilor OpenLDAP.
- ldapmodrdn: Judecează intrarea DN a arborelui de director OpenLDAP.
- ldapcompare: Determină dacă valoarea DN și valoarea parametrului specificată aparțin aceleiași intrări.
- ldappasswd: Modifică intrarea utilizatorului arborelui de directore OpenLDAP pentru a obține o resetare a parolei.
- slaptest: Verifică fișierul slapd.conf sau directorul cn=configuration.
- slapindex: Creează un index de arbore de director OpenLDAP pentru a oferi eficiență la interogări.
- slapcat: Convertește datele în fișiere LDIF pentru OpenLDAP.
Comanda Ldapadd
Opțiuni | descriere | -x | Efectuează autentificarea simplă | -D | DN-ul era folosit pentru a lega serverul | -h | Adresa serviciului de director | -w | Atribuie parola DN | -f | Fișiere care folosesc fișiere LDIF pentru adăugarea de intrări |
Mai întâi, pregătim un fișier test.ldif cu următoarea comandă:
Conținutul este următorul:
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
Adaugă comenzi după cum urmează:
După introducerea parolei, aceasta este adăugată cu succes, așa cum se vede în figura de mai jos:
comanda ldapmodify
Comanda ldapmodify este fixă și implementează în principal diferite funcții de modificare prin fișiere de configurare.
Fișierul demo.ldif este următorul, ceea ce înseamnă că parametrul uidNumber al utilizatorului uid=xzz este modificat.
Comandamentul LDAPPASSWD
LDAPPASSWD deschide o conexiune către serverul LDAP și schimbă parola de intrare.
Opțiuni | descriere | -x | Efectuează autentificarea simplă | -D | DN-ul era folosit pentru a lega serverul | -w | Atribuie parola DN | -S | Introdu parola când ți se cere | -s | treci pentru a seta parola pentru a trece | -A | Setarea de trecere vechea pentru a trece | -A | Solicită setarea vechiului paswd | -H | se referă la serverul care urmează să fie legat | -Eu | Folosiți metoda sesiunilor SASL |
Comanda LDAPSEARCH
Comandă de căutare LDAP
[root@VM_0_9_centos ~]# ldapsearch -h
ldapsearch: option requires an argument -- 'h'
ldapsearch: unrecognized option -h
usage: ldapsearch [options] [filter [attributes...]]
where: filtrează filtrul de căutare LDAP conform RFC 4515 Atribute Listă separată de spațiu alb a descrierilor atributelor care pot include: 1.1 fără atribute * toate atributele utilizatorului + toate atributele operaționale Opțiuni de căutare: - un deref unul de niciodată (implicit), mereu, căutare sau găsește -A recuperează doar numele atributelor (fără valori) -Baza dn pe B pentru căutare -c Modul de funcționare continuă (nu se oprește la erori) -E [!] <ext>[=<extparam>] extensii de căutare (! indică criticitate) [!] domainScope (domeniu de domeniu) !dontUseCopy (Nu folosi Copy) [!] mv=<filter> (filtru de valori potrivite RFC 3876) [!] pr=<size>[/prompt|noprompt] (RFC 2696 rezultate/prompt paginate) [!] sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...] (RFC 2891 sortare pe partea serverului) [!] subînsemnări[=adevărat|fals] (subintrări RFC 3672) [!] sync=ro[/<cookie>] (RFC 4533 LDAP Sync refreshOnly) rp[<cookie>/][/<slimit>] (refreshAndPersist) [!] vlv=<before><after>/(/<offset>/<count>|:<value>) (vizualizări virtuale ale listei ldapv3-vlv-09) [!] deref=derefAttr:attr[,...] [; derefAttr:attr[,...] [; ...]] [!] <oid>[=:<b64value>] (control generic; Gestionare fără răspuns) -f operațiuni de citire a fișierului de pe 'file' -Prefixul URL cu prefixul F pentru fișiere (implicit: file:///tmp/) -l limită de timp (în secunde, sau "niciunul" sau "maxim") pentru căutare -L răspunsuri tipărite în format LDIFv1 -LL tipărește răspunsuri în format LDIF fără comentarii - Răspunsuri tipărite LLL în format LDIF fără comentarii și versiune -M activează Gestionează controlul IT DSA (-MM pentru a face critic) -Versiunea P versiunea protocolului (implicit: 3) -s sfera unu de bază, unu, sub sau copii (sfera de căutare) -S attr sortează rezultatele după atributul 'attr' -t scrie valori binare în fișiere din directorul temporar -tt scrie toate valorile în fișiere din directorul temporar -Ruta T scrie fișiere în directorul specificat pe cale (implicit: /tmp) -u include nume de intrări prietenoase cu utilizatorul în ieșire limită -z limită de dimensiune (în înregistrări, sau "niciunul" sau "maxim") pentru căutare Opțiuni comune: -d level setează nivelul depanării LDAP la "nivel" -D binddn bind DN -e [!] <ext>[=<extparam>] extensii generale (! indică criticitatea) [!] assert=<filter> (RFC 4528; un șir de filtre RFC 4515) [!] authzid=<authzid> (RFC 4370; "dn:<dn>" sau "u:<user>") [!] Chaining[=<resolveBehavior>[/<continuationBehavior>]] unul dintre "lanțarePreferate", "LanțareNecesare", "recomandăriPreferate", "RecomandăriNecesare" [!] manageDSAit (RFC 3296) [!] nu-n ppolicy [!] postread[=<attrs>] (RFC 4527; listă de atr separată de virgule) [!] preread[=<attrs>] (RFC 4527; listă de atr separată de virgule) [!] Relaxează-te [!] Urmărirea sesiunilor abandon, anulează, ignoră (SIGINT trimite abandon/anulare, sau ignoră răspunsul; dacă este critic, nu așteaptă SIGINT. nu prea se controlează) -h găzduiește server LDAP -Identificator(i) uniform de resurse H URI LDAP -Folosesc modul SASL Interactive -n arată ce s-ar face, dar nu o face cu adevărat -N nu folosesc DNS invers pentru a canoniza numele gazdei SASL -O props proprietăți de securitate SASL -o <opt>[=<optparam>] Opțiuni generale nettimeout=<timeout> (în secunde, sau "niciunul" sau "maxim") ldif-wrap=<width> (în coloane, sau "nu" pentru no wrapping) portul port -p pe serverul LDAP -Q folosește modul SASL Quiet -Tărâmul R, tărâmul SASL -Identitatea de autentificare SASL U authcid -v rulează în modul verbos (diagnosticare către ieșirea standard) -Informații despre versiunea tipărită V (-doar VV) -w passwd bind password (pentru autentificare simplă) -Prompt W pentru asocierea parolei -x Autentificare simplă -Identitatea autorizării SASL autentică X ("dn:<dn>" sau "u:<user>") -y fișier Citește parola din fișier -Mecanism SASL Y mech -Cerere Z Start TLS (-ZZ necesită răspuns reușit) Comanda este următoarea:
Rezultatele interogărilor sunt următoarele:
Interogați toți utilizatorii:
Explicația substantivelor LDAP
Clasă de obiect
Clasa de obiecte LDAP este modelul de date integrat în LDAP. Fiecare obiectClasă are propria structură de date, de exemplu, avem o Clasă obiect numită "Phone Book", care cu siguranță va avea multe atribute încorporate, cum ar fi numele (uid), numărul ID (uidNumber), numele unității (gid), adresa de domiciliu (homeDirectory) etc., în același timp există și o clasă obiect numită "Înregistrarea colegilor de clasă", care are o "carte telefonică" Unele atribute (cum ar fi uid, homeDirectory) vor avea, de asemenea, atribute care nu sunt în "cartea de telefon" (cum ar fi descrierea etc.).
Intrare
O intrare poate fi numită intrare, o înregistrare este o înregistrare, o unitate de stocare de bază în LDAP; Poate fi privit și ca o colecție de DN-uri și un set de atribute. Rețineți că o intrare poate conține mai multe obiectClase, de exemplu, zhang3 poate exista simultan în "Cartea de telefoane" sau în "Înregistrarea colegilor de clasă".
DN
Nume distins, denumirea unică și distinsă a intrării în LDAP, o ortografie completă DN: uid=zhang3, ou=Oameni, dc=163, dc=com. Doar intrarea în LDAP este unică pentru serverul LDAP.
Filtrul de căutare LDAP
Folosește filtrul pentru a căuta LDAP. Filtrul este, în general, compus dintr-o unitate precum (attribute=value), de exemplu: (&(uid=ZHANGSAN)(objectclass=person)) indică faptul că intrarea LDAP a utilizatorului căutător este ZHANGSAN. Un alt exemplu este: (&(|( uid= ZHANGSAN)(uid=LISI))(objectclass=persoană)), indicând că căutarea pentru un utilizator cu un id de căutare este ZHANGSAN, sau LISI; Poți folosi * și pentru a reprezenta orice valoare, cum ar fi (uid=ZHANG*SAN), și poți căuta intrări cu valori uid care încep cu ZHANG și se termină cu SAN. Mai mult, conform diferitelor reguli de potrivire a atributelor LDAP, poate exista un Filtru după cum urmează: (&(createtimestamp>=20050301000000)(createtimestamp<=20050302000000)), care indică faptul că timpul de creare al căutării este între 20050301000000 și 20050302000000.
În Filter, "&" înseamnă "și"; “!” înseamnă "nu"; “|” înseamnă "sau". În funcție de regulile de potrivire, putem folosi "=", "~=", ">="" și "<=".
DN de bază
Un DN de bază poate fi "dc=163,dc=com" sau "dc=People,dc=163,dc=com". Deoarece LDAP este o structură de date în arbore, căutarea va începe de la BaseDN după specificarea basedn-ului, și putem specifica domeniul căutării astfel: doar search basedn (basedn), basedn direct sublevel (un nivel) și basedn all subtree level.
Clasa obiect
În LDAP, o intrare trebuie să conțină un atribut obiectClass și să i se atribuie cel puțin o valoare. Fiecare valoare va fi folosită ca șablon pentru stocarea datelor de către o intrare LDAP; Șablonul conține un atribut căruia trebuie să fie atribuit intrarea și un atribut opțional. objectClass are o ierarhie strictă, cu top și alias în partea de sus. De exemplu, clasa obiect a persoaneiOrganizațională este subordonată persoanei, iar persoana este subordonată lui top.
objectClass poate fi împărțit în următoarele 3 categorii: Structural: cum ar fi persoana și organizațiaUnitate; Auxiliar: cum ar fi extensibeObject; Rezumat: De exemplu, abstract objectClass nu poate fi folosit direct. Există multe obiectClase definite în schema OpenLDAP, iar numele unor obiectClase utilizate frecvent sunt enumerate mai jos.
- Cont
- Alias
- dcobject
- Domeniu
- ipHost
- Organizare
- Rol organizațional
- Unitate organizațională
- persoană
- organizaționalPersoană
- inetOrgPerson
- rezidențialPersoană
- posixAccount
- posixGroup
ObjectClass este o colecție de atribute, iar LDAP cuprinde multe obiecte comune în organizațiile umane și le încapsulează în clase de obiecte. De exemplu, personalul include numele de familie (sn), prenumele (cn), numărul de telefon (numeTelefonNumăr), parola (utilizatorParolă) și alte atribute, iar persoanăOrganizațională este clasa de moștenire a persoanei, pe lângă atributele de mai sus, include și titlul, codul poștal (Cod poștal) și adresa poștală (adresaPostal) și alte atribute.
Tipurile de obiecte pot fi definite ușor prin clase de obiecte. Fiecare intrare poate moșteni direct mai multe clase de obiecte, ceea ce moștenește diverse proprietăți. Dacă există 2 clase de obiecte cu același atribut, doar 1 atribut va fi păstrat după ce intrarea este moștenită. Clasa obiect specifică, de asemenea, care proprietăți sunt informații de bază și trebuie să conțină (Trebuie necesar): care proprietăți sunt informații extinse și pot conține (Mai sau Opțional).
Există trei tipuri de clase de obiecte: Structurală, Abstractă și Auxiliară. Tipurile structurale sunt cele mai de bază tipuri, care specifică proprietățile de bază ale corpului obiectului, iar fiecare intrare aparține și aparține unei singure clase structurale de obiecte. Tipurile abstracte pot fi tipuri structurale sau alți părinți de tipuri abstracte, care organizează părțile comune ale proprietăților obiectelor împreună, numite șabloane pentru alte clase, iar intrările nu pot integra direct clasele abstracte de obiecte. Tipul auxiliar specifică proprietățile extinse ale entității obiect. Deși fiecare bară aparține unei singure clase structurale de obiecte, poate aparține simultan mai multor clase auxiliare de obiecte.
Clasa obiectului în sine se poate moșteni una pe cealaltă, astfel încât clasa rădăcină a clasei obiect este clasa abstractă superioară. Luând ca exemplu tipurile de persoane folosite frecvent, relația lor de moștenire este așa cum este prezentată în figură:
Atributele încorporate ale contului sunt: userid, descriere, gazdă, NumeLocalitate, NumeOrganizație, NumeUnitateOrganizațional, vezi; De asemenea;
Atributele încorporate ale inetOrgPerson sunt cn, sn, description, seeAlso, telephoneNumber, 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、 jpegPhoto, labeledURI, mail, manager, mobil, o, pager, photo, preferredLanguage, roomNumber, secretary, uid, userCertificate etc.;
După cum vezi, Accout setează doar câteva atribute necesare și utile (este cu siguranță suficient pentru a finaliza verificarea autentificării), în timp ce inetOrgPerson are multe atribute integrate, cum ar fi numărul de telefon, numărul de telefon mobil, adresa stradală, numărul de email, adresa de email, numărul camerei, avatarul, managerul, numărul angajatului etc.
Prin urmare, atunci când configurezi LDAP, se recomandă să setezi tipul objectClass pe accout dacă este doar pentru verificarea autentificării și să setezi obiectClass pe inetOrgPerson dacă vrei să creezi o comoară mare și cuprinzătoare de informații despre angajați
Aici folosesc de obicei 'inetOrgPerson', 'posixAccount', 'shadowAccount'.
Atributele necesare ale contului sunt userid, în timp ce cele necesare ale posixAccount sunt cn, gidNumber, homeDirectory, uid, uidNumber; Atributul necesar pentru shadowAccount este uid, iar atributele opționale includ shadowExpire, shadowInactive, shadowMax, shadowMin, userPassword etc. Proprietatea cerută de top este obiectClass (se poate observa că top și alte obiectClase sunt relații moștenite).
Atribut
Atributele sunt similare cu variabilele din programare și pot fi atribuite. Multe atribute utilizate frecvent sunt declarate în OpenLDAP (utilizatorii pot de asemenea să-și definească propriile atribute). Semnificațiile Common Attribute sunt următoarele:
- c: Țară.
- CN: Nume comun, care se referă la numele unui obiect. Dacă se referă la o persoană, trebuie folosit numele său complet.
- dc:componentă de domeniu, adesea folosită pentru a desemna o parte a unui nume de domeniu.
- NumeDat: se referă la numele unei persoane, nu la un nume de familie.
- L: Se referă la un nume de loc, cum ar fi numele unui oraș sau al unei alte zone geografice.
- e-mail: Adresă de email.
- o:organizationName, care se referă la numele unei organizații.
- ou:organizationalUnitName, care se referă la numele unei unități organizaționale.
- SN: Numele de familie se referă la numele de familie al unei persoane.
- Număr de telefon: Numărul de telefon care ar trebui să poarte codul țării în care se află.
Sfat: objectClass este un atribut special care conține și alte atribute folosite, pe lângă sine.
Pentru diferite Clase de obiect, de obicei există unele valori de proprietate obligatorii și unele valori opționale ale proprietăților. De exemplu, poți folosi obiectClasa person pentru a reprezenta o intrare pentru un utilizator în sistem, iar utilizatorul din sistem trebuie de obicei să aibă informații precum nume, număr de telefon, parolă, descriere etc. Așa cum se arată în imaginea de mai jos, pentru persoană, setați numele și numele de familie al utilizatorului prin cn și sn, ceea ce este obligatoriu, în timp ce celelalte atribute sunt opționale.
Următoarea este o listă cu unele cerințe frecvent utilizate de obiect Clasă care sunt obligatorii.
- cont:userid。
- organizare:o。
- Persoană: CN și SN.
- PersoanăOrganizațional: La fel ca persoana.
- organizaționalRol:cn。
- organizationUnit:ou。
- posixGroup:cn、gidNumber。
- posixAccount:cn、gidNumber、homeDirectory、uid、uidNumber。
(Sfârșit)
|