Ringkasan perintah OpenLDAP
- ldapsearch: Cari entri hierarki direktori OpenLDAP.
- ldapadd: Menambahkan entri hierarki direktori melalui format LDIF.
- ldapdelete: Menghapus entri hierarki direktori OpenLDAP.
- ldapmodify: Ubah entri hierarki direktori OpenLDAP.
- ldapwhoami: Memvalidasi identitas pengguna OpenLDAP.
- ldapmodrdn: Menilai entri DN pohon direktori OpenLDAP.
- ldapcompare: Menentukan apakah nilai DN dan nilai parameter yang ditentukan termasuk dalam entri yang sama.
- ldappasswd: Ubah entri pengguna pohon direktori OpenLDAP untuk mencapai pengaturan ulang kata sandi.
- slaptest: Verifikasi file slapd.conf atau direktori cn=configuration.
- slapindex: Membuat indeks hierarki direktori OpenLDAP untuk memberikan efisiensi kueri.
- slapcat: Mengonversi data ke file LDIF untuk OpenLDAP.
perintah ldapadd
opsi | deskripsi | -x | Lakukan autentikasi sederhana | -D | DN yang digunakan untuk mengikat server | -h | Alamat layanan direktori | -w | Ikat kata sandi DN | -f | File yang menggunakan file LDIF untuk penambahan entri |
Pertama, kami menyiapkan file test.ldif dengan perintah berikut:
Isinya adalah sebagai berikut:
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
Tambahkan perintah sebagai berikut:
Setelah memasukkan kata sandi, berhasil ditambahkan, seperti yang ditunjukkan pada gambar di bawah ini:
perintah ldapmodify
Perintah ldapmodify tetap dan terutama mengimplementasikan fungsi modifikasi yang berbeda melalui file konfigurasi.
File demo.ldif adalah sebagai berikut, yang berarti bahwa parameter uidNumber dari pengguna uid=xzz dimodifikasi.
Perintah ldappasswd
ldappasswd membuka koneksi ke server LDAP dan mengubah kata sandi entri.
opsi | deskripsi | -x | Lakukan autentikasi sederhana | -D | DN yang digunakan untuk mengikat server | -w | Ikat kata sandi DN | -S | Masukkan kata sandi saat diminta | -s | Lulus untuk mengatur kata sandi untuk lulus | -a | Pass set passwd lama untuk lulus | -Sebuah | Minta pengaturan passwd lama | -H | mengacu pada server yang akan diikat | -Saya | Gunakan metode sesi SASL |
perintah ldapsearch
Perintah pencarian LDAP
[root@VM_0_9_centos ~]# ldapsearch -h
ldapsearch: option requires an argument -- 'h'
ldapsearch: unrecognized option -h
usage: ldapsearch [options] [filter [attributes...]]
where: filter filter pencarian LDAP yang sesuai dengan RFC 4515 Daftar deskripsi atribut yang dipisahkan spasi kosong atribut yang mungkin termasuk: 1.1 Tidak ada atribut * Semua atribut pengguna + semua atribut operasional Opsi pencarian: -a deref salah satu dari tidak pernah (default), selalu, cari, atau temukan -A hanya mengambil nama atribut (tanpa nilai) -b basis dn untuk pencarian -c mode operasi berkelanjutan (jangan berhenti pada kesalahan) -E [!] <ext>[=<extparam>] ekstensi pencarian (! menunjukkan kekritisan) [!] domainScope (cakupan domain) !dontUseCopy (Jangan Gunakan Salinan) [!] mv=<filter> (filter nilai yang cocok RFC 3876) [!] pr=<size>[/prompt|noprompt] (RFC 2696 hasil halaman/prompt) [!] sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...] (Penyortiran sisi server RFC 2891) [!] subentri[=true|false] (subentri RFC 3672) [!] sync=ro[/<cookie>] (RFC 4533 LDAP Sync refreshOnly) rp[/<cookie>][/<slimit>] (refreshAndPersist) [!] vlv=<before>/<after>(/<offset>/<count>|:<value>) (Tampilan daftar virtual LDApv3-VLV-09) [!] deref=derefAttr:attr[,...] [; derefAttr:attr[,...] [; ...]] [!] <oid>[=:<b64value>] (kontrol generik; tidak ada penanganan respons) -f operasi baca file dari 'file' -F awalan URL awalan untuk file (default: file:///tmp/) -l batas waktu batas (dalam detik, atau "tidak ada" atau "maks") untuk penelusuran -L cetak tanggapan dalam format LDIFv1 -LL mencetak tanggapan dalam format LDIF tanpa komentar -LLL mencetak tanggapan dalam format LDIF tanpa komentar dan versi -M aktifkan Kelola kontrol TI DSA (-MM untuk membuat kritis) Versi protokol versi -P (default: 3) -s cakupan satu dasar, satu, sub atau turunan (cakupan pencarian) -S attr mengurutkan hasil berdasarkan atribut 'attr' -t menulis nilai biner ke file di direktori sementara -tt menulis semua nilai ke file di direktori sementara -T path menulis file ke direktori yang ditentukan oleh path (default: /tmp) -u sertakan nama entri yang Ramah Pengguna dalam output -z batas ukuran (dalam entri, atau "tidak ada" atau "maks") untuk penelusuran Opsi umum: -d level atur tingkat debugging LDAP ke 'level' -D binddn mengikat DN -e [!] <ext>[=<extparam>] ekstensi umum (! menunjukkan kekritisan) [!] assert=<filter> (RFC 4528; string Filter RFC 4515) [!] authzid=<authzid> (RFC 4370; "dn:<dn>" atau "u:<user>") [!] rantai[=<resolveBehavior>[/<continuationBehavior>]] salah satu dari "chainingPreferred", "chainingRequired", "referralsPreferred", "referralsRequired" [!] manageDSAit (RFC 3296) [!] noop Kebijakan [!] postread[=<attrs>] (RFC 4527; daftar attr yang dipisahkan koma) [!] preread[=<attrs>] (RFC 4527; daftar attr yang dipisahkan koma) [!] santai [!] Pelacakan Sesi abandon, batal, abaikan (SIGINT mengirimkan abandon/batal, atau mengabaikan tanggapan; jika kritis, tidak menunggu SIGINT. tidak benar-benar kontrol) -h host server LDAP -Pengidentifikasi Sumber Daya Seragam H URI LDAP -Saya menggunakan mode Interaktif SASL -n menunjukkan apa yang akan dilakukan tetapi jangan benar-benar melakukannya -N jangan gunakan DNS terbalik untuk mengkanonisasi nama host SASL -O props properti keamanan SASL -o <opt>[=<optparam>] Opsi umum nettimeout=<timeout> (dalam detik, atau "none" atau "max") ldif-wrap=<width> (dalam kolom, atau "tidak" untuk tanpa pembungkus) Port port -p di server LDAP -Q menggunakan mode SASL Quiet -Alam R ranah SASL -U identitas autentikasi SASL -v berjalan dalam mode verbose (diagnostik ke output standar) -Info versi cetak V (khusus -VV) -w passwd bind password (untuk otentikasi sederhana) -W prompt untuk mengikat kata sandi -x Otentikasi sederhana -X identitas otorisasi SASL autizium ("dn:<dn>" atau "u:<user>") -y file Baca kata sandi dari file -Mekanisme SASL mekanisme Y -Z Mulai permintaan TLS (-ZZ untuk memerlukan respons yang berhasil) Perintahnya adalah sebagai berikut:
Hasil kueri adalah sebagai berikut:
Mengkueri semua pengguna:
Penjelasan kata benda LDAP
Kelas objek
Kelas objek LDAP adalah model data yang dibangun ke dalam LDAP. Setiap objectClass memiliki struktur datanya sendiri, misalnya, kita memiliki objectClass yang disebut "Phone Book", yang pasti akan memiliki banyak atribut bawaan, seperti nama (uid), nomor ID (uidNumber), nama unit (gid), alamat rumah (homeDirectory), dll., pada saat yang sama, ada juga objectClass yang disebut "Classmate Record", yang memiliki "buku telepon" Beberapa atribut (seperti uid, homeDirectory) juga akan memiliki atribut yang tidak ada di "buku telepon" (seperti deskripsi, dll.).
Entri
Entri dapat disebut entri, entri adalah catatan, unit penyimpanan dasar di LDAP; Ini juga dapat dianggap sebagai kumpulan DN dan serangkaian atribut. Perhatikan bahwa entri dapat berisi beberapa objectClasses, misalnya, zhang3 dapat ada di "Buku Telepon" atau di "Catatan Teman Sekelas" secara bersamaan.
DN
Distinguished Name, nama unik dari entri di LDAP, ejaan DN lengkap: uid=zhang3, ou=People, dc=163, dc=com. Hanya entri di LDAP yang unik oleh Server LDAP.
Filter Penelusuran LDAP
Gunakan filter untuk menelusuri LDAP. Filter umumnya terdiri dari unit seperti (attribute=value), misalnya: (&(uid=ZHANGSAN)(objectclass=person)) menunjukkan bahwa Entri LDAP pengguna penelusuran adalah ZHANGSAN. Contoh lainnya adalah: (&(|( uid= ZHANGSAN)(uid=LISI))(objectclass=person)), yang menunjukkan bahwa pencarian pengguna dengan id pencarian adalah ZHANGSAN, atau LISI; Anda juga dapat menggunakan * untuk mewakili nilai apa pun, seperti (uid=ZHANG*SAN), dan mencari entri dengan nilai uid yang dimulai dengan ZHANG dan diakhiri dengan SAN. Selain itu, menurut aturan pencocokan atribut LDAP yang berbeda, dapat ada Filter sebagai berikut: (&(createtimestamp>=20050301000000)(createtimestamp<=20050302000000)), yang menunjukkan bahwa waktu pembuatan pencarian adalah antara 20050301000000 dan 20050302000000.
Di Filter, "&" berarti "dan"; “!” berarti "tidak"; “|” berarti "atau". Bergantung pada aturan pencocokan, kita dapat menggunakan "=", "~=", ">=", dan "<=".
DN Dasar
DN Dasar dapat berupa "dc=163,dc=com" atau "dc=People,dc=163,dc=com". Karena LDAP adalah struktur data pohon, pencarian akan dimulai dari BaseDN setelah menentukan dasar, dan kita dapat menentukan cakupan pencarian sebagai: hanya berbasis pencarian (dasar), sub tingkat langsung berbasis (satu tingkat), dan berbasis semua tingkat sub pohon.
objekKelas
Di LDAP, entri harus berisi atribut objectClass dan diberi setidaknya satu nilai. Setiap nilai akan digunakan sebagai templat untuk penyimpanan data oleh entri LDAP; Templat berisi atribut yang harus ditetapkan entri dan atribut opsional. objectClass memiliki hierarki yang ketat, dengan top dan alias di bagian atas. Misalnya, objectClass dari organizationalPerson adalah subordinat ke person, dan person adalah subordinat ke top.
objectClass dapat dibagi menjadi 3 kategori berikut: Struktural: seperti orang dan organisasiUnit; Tambahan: seperti extensibeObject; Abstrak: Misalnya, abstrak objectClass tidak dapat digunakan secara langsung. Ada banyak objectClass yang ditentukan dalam skema OpenLDAP, dan nama beberapa objectClass yang umum digunakan tercantum di bawah ini.
- akun
- alias
- dcobjek
- domain
- Tuan rumah ipHost
- Organisasi
- organisasiPeran
- organisasiUnit
- orang
- organisasiOrang,
- inetOrgPerson
- perumahanOrang
- posixAkun
- posixGrup
ObjectClass adalah kumpulan atribut, dan LDAP merangkum banyak objek umum dalam organisasi manusia dan merangkum mereka ke dalam kelas objek. Misalnya, personel termasuk nama keluarga (sn), nama depan (cn), nomor telepon (telephoneNumber), kata sandi (userPassword) dan atribut lainnya, dan organizationalPerson adalah kelas pewarisan orang, selain atribut di atas, juga mencakup judul, kode pos (posCode), dan alamat surat (posalAddress) dan atribut lainnya.
Jenis item dapat dengan mudah ditentukan melalui kelas objek. Setiap entri dapat langsung mewarisi beberapa kelas objek, yang mewarisi berbagai properti. Jika ada 2 kelas objek dengan atribut yang sama, hanya 1 atribut yang akan dipertahankan setelah entri diwariskan. Kelas objek juga menentukan properti mana yang merupakan informasi dasar dan harus berisi (Harus Diperlukan): properti mana yang merupakan informasi yang diperluas dan dapat berisi (Mei atau Opsional).
Ada tiga jenis kelas objek: Struktural, Abstrak, dan Tambahan. Jenis struktural adalah jenis paling dasar, yang menentukan sifat dasar dari badan objek, dan setiap entri hanya milik dan milik satu kelas objek struktural. Jenis abstrak dapat berupa jenis struktural atau induk tipe abstrak lainnya, yang mengatur bagian umum dari properti objek bersama-sama, yang disebut templat untuk kelas lain, dan entri tidak dapat secara langsung mengintegrasikan kelas objek abstrak. Jenis tambahan menentukan properti yang diperluas dari entitas objek. Meskipun setiap batang hanya milik satu kelas objek struktural, itu dapat menjadi bagian dari beberapa kelas objek tambahan secara bersamaan.
Kelas objek itu sendiri dapat mewarisi satu sama lain, sehingga kelas akar dari kelas objek adalah kelas objek abstrak teratas. Mengambil tipe orang yang umum digunakan sebagai contoh, hubungan warisan mereka seperti yang ditunjukkan pada gambar:
Atribut bawaan accout adalah: userid, description, host, localityName, organizationName, organizationalUnitName, seeAlso;
Atribut bawaan inetOrgPerson adalah cn, sn, description, seeAlso, telephoneNumber, userPassword, destinationIndicator, facsimileTelephoneNumber, internationaliSDNNumber, l, ou, physicalDeliveryOfficeName、posOfficeBox、posAlat、posCode、preferredDeliveryMethod、registeredAddress、st、street、telephoneNumber、teletexTerminalIdentifier、 telexNumber、title、x121Alamat、audio、usinessCategory、carLicense、departmentNumber、isplayName、employeeNumber、employeeType、givenName、homePhone、homePostalAddress、initials、 jpegPhoto, labeledURI, mail, manager, mobile, o, pager, photo, preferredLanguage, roomNumber, secretary, uid, userCertificate, dll.;
Seperti yang Anda lihat, hanya mengatur beberapa atribut yang diperlukan dan berguna (itu pasti cukup untuk menyelesaikan verifikasi login), sedangkan inetOrgPerson memiliki banyak atribut bawaan, seperti nomor telepon, nomor ponsel, alamat jalan, nomor email, alamat email, nomor kamar, avatar, manajer, nomor karyawan, dll.
Oleh karena itu, saat mengonfigurasi LDAP, disarankan untuk mengatur jenis objectClass ke accout jika hanya untuk tujuan memverifikasi login, dan untuk mengatur objectClass ke inetOrgPerson jika Anda ingin membuat harta karun informasi karyawan yang besar dan komprehensif
Di sini saya biasanya menggunakan 'inetOrgPerson', 'posixAccount', 'shadowAccount'.
Atribut akun yang diperlukan adalah userid, sedangkan atribut yang diperlukan dari posixAccount adalah cn, gidNumber, homeDirectory, uid, uidNumber; Atribut shadowAccount yang diperlukan adalah uid, dan atribut opsional termasuk shadowExpire, shadowInactive, shadowMax, shadowMin, userPassword, dll. Properti yang diperlukan teratas adalah objectClass (dapat dilihat bahwa top dan objectClass lainnya adalah hubungan yang diwariskan).
Atribut
Atribut mirip dengan variabel dalam pemrograman dan dapat ditetapkan. Banyak atribut yang umum digunakan dideklarasikan di OpenLDAP (pengguna juga dapat menentukan atribut mereka sendiri). Arti Atribut Umum adalah sebagai berikut:
- c: Negara.
- cn:common name, yang mengacu pada nama suatu objek. Jika mengacu pada seseorang, nama lengkapnya perlu digunakan.
- dc:domain, sering digunakan untuk merujuk pada bagian dari nama domain.
- givenName: mengacu pada nama seseorang, bukan nama keluarga.
- l: Mengacu pada nama tempat, seperti nama kota atau wilayah geografis lainnya.
- mail: Alamat email.
- o:organizationName, yang mengacu pada nama organisasi.
- ou:organizationalUnitName, yang mengacu pada nama unit organisasi.
- SN: Nama keluarga, mengacu pada nama keluarga seseorang.
- telephoneNumber: Nomor telepon, yang harus membawa kode negara tempat ia berada.
Tips: objectClass adalah Atribut khusus yang berisi Atribut lain yang digunakan serta dirinya sendiri.
Untuk objectClass yang berbeda, biasanya ada beberapa nilai properti yang diperlukan dan beberapa nilai properti opsional. Misalnya, Anda dapat menggunakan objectClass of person untuk mewakili entri bagi pengguna dalam sistem, dan pengguna dalam sistem biasanya perlu memiliki beberapa informasi seperti nama, nomor telepon, kata sandi, deskripsi, dll. Seperti yang ditunjukkan pada gambar di bawah ini, untuk orang, atur nama depan dan belakang pengguna melalui cn dan sn, yang wajib, sementara atribut lainnya bersifat opsional.
Berikut ini adalah daftar beberapa persyaratan objectClass yang umum digunakan yang diperlukan.
- akun:userid。
- organisasi:o。
- Orang: CN dan SN.
- organizationalPerson: Sama dengan orang.
- organisasiPeran:cn。
- organizationUnit:ou。
- posixGroup:cn、gidNumber。
- posixAccount:cn、gidNumber、homeDirectory、uid、uidNumber。
(Akhir)
|