This shows you the differences between two versions of the page.
saisp:labs:01:contents:03 [2014/02/02 18:47] razvan.deaconescu [03. [15p] Căutare în baza de date LDAP] |
saisp:labs:01:contents:03 [2014/02/18 11:43] (current) razvan.deaconescu [03. [15p] Căutare în baza de date LDAP] |
||
---|---|---|---|
Line 90: | Line 90: | ||
=== Filtrare după atribute === | === Filtrare după atribute === | ||
- | În SQL, clauza ''where'' permite selectarea doar anumitor intrări. La fel permite și comanda ''ldapsearch'' folosrea de filtre de căutare. | + | În SQL, clauza ''where'' permite selectarea doar anumitor intrări. La fel permite și comanda ''ldapsearch'' folosirea de filtre de căutare. |
Astfel, pentru a selecta intrările de utilizator al căror prenume este ''Silviu'' vom folosi comanda<code bash> | Astfel, pentru a selecta intrările de utilizator al căror prenume este ''Silviu'' vom folosi comanda<code bash> | ||
Line 122: | Line 122: | ||
cn: Alexandru Andrei | cn: Alexandru Andrei | ||
sn: Andrei | sn: Andrei | ||
+ | [...] | ||
</code> | </code> | ||
Atributul ''sn'' înseamnă numele de familie (//surname//) iar //glob//-ul ''An*'' însemnă șirurile care încep cu ''An''. | Atributul ''sn'' înseamnă numele de familie (//surname//) iar //glob//-ul ''An*'' însemnă șirurile care încep cu ''An''. | ||
Line 137: | Line 138: | ||
Realizați următoarele căutări în baza de date LDAP de pe ''swarm.cs.pub.ro'': | Realizați următoarele căutări în baza de date LDAP de pe ''swarm.cs.pub.ro'': | ||
- | * Extrageți utilizatorii al căror nume de familie este ''Popescu''. | + | - Extrageți utilizatorii al căror nume de familie este ''Popescu''. |
- | * Extrageți utilizatorii al căror atribut ''uidNumber'' este mai mare de ''1400''. | + | - Extrageți uid-ul și cn-ul utilizatorilor a căror adresă de e-mail conține șirul ''@cti.pub.ro''. |
- | * Extrageți uid-ul și cn-ul utilizatorilor a căror adresă de e-mail conține șirul ''@cti.pub.ro''. | + | - Extrageți utilizatorii al căror nume de familie nu se termină în ''escu''. |
- | * Extrageți utilizatorii al căror prenume este ''Vlad'' sau ''Andrei''. | + | - Extrageți utilizatorii al căror prenume este ''Vlad'' **sau** ''Andrei''. |
- | * Extrageți uid-ul, e-mail-ul și sn-ul utilizatorilor al căror prenume este ''Vlad'' sau ''Andrei''. | + | - Extrageți uid-ul, e-mail-ul și numele de familie al utilizatorilor al căror prenume este ''Vlad'' sau ''Andrei''. |
<note important> | <note important> | ||
Detalii legate de folosirea filtrelor de căutare găsiți la pagina http://www.centos.org/docs/5/html/CDS/ag/8.0/Finding_Directory_Entries-LDAP_Search_Filters.html. | Detalii legate de folosirea filtrelor de căutare găsiți la pagina http://www.centos.org/docs/5/html/CDS/ag/8.0/Finding_Directory_Entries-LDAP_Search_Filters.html. | ||
+ | |||
+ | Este recomandat să puneți expresiile de filtrare între apostroafe sau ghilimele ca să preveniți interpretarea caracterelor speciale de shell. | ||
</note> | </note> | ||
+ | |||
+ | <solution -hidden> | ||
+ | Comenzile care realizează căutările cerute mai sus sunt:<code bash> | ||
+ | root@ldap-client:~# ldapsearch -x -LLL -H ldaps://swarm.cs.pub.ro -b "dc=swarm,dc=cs,dc=pub,dc=ro" sn="Popescu" | ||
+ | |||
+ | root@ldap-client:~# ldapsearch -x -LLL -H ldaps://swarm.cs.pub.ro -b "dc=swarm,dc=cs,dc=pub,dc=ro" mail="*@cti.pub.ro*" | ||
+ | |||
+ | root@ldap-client:~# ldapsearch -x -LLL -H ldaps://swarm.cs.pub.ro -b "dc=swarm,dc=cs,dc=pub,dc=ro" '(!(sn=*escu))' | ||
+ | |||
+ | root@ldap-client:~# ldapsearch -x -LLL -H ldaps://swarm.cs.pub.ro -b "dc=swarm,dc=cs,dc=pub,dc=ro" '(|(givenName=Vlad)(givenName=Andrei))' | ||
+ | |||
+ | root@ldap-client:~# ldapsearch -x -LLL -H ldaps://swarm.cs.pub.ro -b "dc=swarm,dc=cs,dc=pub,dc=ro" '(|(givenName=Vlad)(givenName=Andrei))' uid mail sn | ||
+ | </code> | ||
+ | </solution> |