Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 8768|Yanıt: 1

OpenLDAP Serisi (3) OpenLDAP komutları ayrıntılı şekilde açıklanmıştır

[Bağlantıyı kopyala]
Yayınlandı 23.06.2020 22:34:54 | | | |
OpenLDAP komut özeti

  • ldapsearch: OpenLDAP dizin ağacı girişlerini arayın.
  • ldapadd: LDIF formatı üzerinden dizin ağacı girişleri ekler.
  • ldapdelete: OpenLDAP dizin ağacı girdilerini siler.
  • ldapmodify: OpenLDAP dizin ağacı girişini değiştir.
  • ldapwhoami: OpenLDAP kullanıcılarının kimliğini doğrular.
  • ldapmodrdn: OpenLDAP dizin ağacı DN girişini değerlendirir.
  • ldapcompare: DN değeri ile belirtilen parametre değerinin aynı girdiye ait olup olmadığını belirler.
  • ldappasswd: OpenLDAP dizin ağacı kullanıcı girişini değiştirerek şifre sıfırlamasını sağlar.
  • slaptest: slapd.conf dosyasını veya cn=configuration dizinini doğrulayın.
  • slapindex: Sorgu verimliliği sağlamak için OpenLDAP dizin ağacı indeksi oluşturur.
  • slapcat: OpenLDAP için verileri LDIF dosyalarına dönüştürür.


ldapadd komutu

Seçenekler
Açıklama
-x
Basit kimlik doğrulama yapın
-D
Sunucuyu bağlamak için kullanılan DN
-h
Dizin servisinin adresi
-w
DN şifresini bağla
-f
Giriş ekleme için LDIF dosyalarını kullanan dosyalar


İlk olarak, aşağıdaki komutla bir test.ldif dosyası hazırlıyoruz:



İçerik şu şekildedir:

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



Komutları aşağıdaki gibi ekleyin:



Şifre girildikten sonra, aşağıdaki şekilde gösterildiği gibi başarıyla eklenir:



ldapmodify komutu

ldapmodify komutu sabittir ve esas olarak yapılandırma dosyaları aracılığıyla farklı modifikasyon fonksiyonlarını uygular.



demo.ldif dosyası şöyledir, bu da kullanıcının uidNumber parametresi uid=xzz olarak değiştirildiği anlamına gelir.



LDAPPASSWD komutu

ldappasswd LDAP sunucusuna bağlantı açar ve giriş şifresini değiştirir.

Seçenekler
Açıklama
-x
Basit kimlik doğrulama yapın
-D
Sunucuyu bağlamak için kullanılan DN
-w
DN şifresini bağla
-S
Sorulduğunda şifreyi girin
-s
Pass şifresini geçmek için
-a
Pass set Old PassWD to pass
-A
Eski passwd'nin ayarını yönlendir
-H
bağlanacak sunucuyu ifade eder
-Ben
SASL oturum yöntemini kullanın




LDAPSEARCH komutu

LDAP arama komutu

[root@VM_0_9_centos ~]# ldapsearch -h
ldapsearch: option requires an argument -- 'h'
ldapsearch: unrecognized option -h
usage: ldapsearch [options] [filter [attributes...]]
where:
  filtre RFC 4515 uyumlu LDAP arama filtresi
  öznitelikler boşlukla ayrılmış özellik açıklamaları listesi
    bunlar şunları içerebilir:
      1.1 Özellik Yok
      * Tüm kullanıcı özellikleri
      + Tüm operasyonel özellikler
Arama seçenekleri:
  -deref bir hiçlik (varsayılan), her zaman, arama veya bul
  -Sadece öznitelik adlarını alır (değer yoktur)
  -B tabanlı temel DN arama için
  -c Sürekli çalışma modu (hatalarda durmayın)
  -E [!] <ext>[=<extparam>] arama uzantıları (! kritikliği gösterir)
             [!] domainScope (alan alanı kapsamı)
             !dontUseCopy (Kopyalamayı Kullanma)
             [!] mv=<filter> (RFC 3876 eşleşmiş değerler filtresi)
             [!] pr=<size>[/prompt|noprompt] (RFC 2696 sayfalı sonuçlar/prompt)
             [!] sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...]
                                         (RFC 2891 sunucu tarafı sıralaması)
             [!] alt girişler[=doğru|yanlış] (RFC 3672 alt girdileri)
             [!] sync=ro[/<cookie>] (RFC 4533 LDAP Sync yenilemesi Sadece)
                     rp[/<cookie>][/<slimit>] (yenileVe Devam et)
             [!] vlv=<before>/<after>(/<offset><count>/|:<value>)
                                         (LDAPV3-VLV-09 Virtual List Views)
             [!] deref=derefAttr:attr[,...] [; derefAttr:attr[,...] [; ...]]
             [!] <oid>[=:<b64value>] (genel kontrol; yanıt işleme yok)
  -f dosya okuma işlemleri 'dosya'dan
  -F dosyalar için URL öneki (varsayılan: file:///tmp/)
  -l arama için zaman sınırını (saniye cinsinden, "hiçbir" veya "maksimum") sınırlar
  -L yanıtları LDIFv1 formatında yazdırın
  -LL yanıtları LDIF formatında yorumsuz yazdırır
  -LLL yanıtları LDIF formatında yorumsuz yazdırmak
             ve versiyonu
  -M, DSA IT kontrolünü yönet (-MM kritik hale getirmek) etkinleştir
  -P sürüm protokol sürümü (varsayılan: 3)
  -s taban, bir, alt veya çocukların bir kapsamı (arama kapsamı)
  -S attr sonuçları 'attr' özniteliğine göre sıraladı
  -t geçici dizindeki dosyalara ikili değerler yaz
  -tt Tüm değerleri geçici dizindeki dosyalara yaz
  -T yolu yazma dosyalarını yol ile belirlenen dizine (varsayılan: /tmp)
  -u, çıktıya Kullanıcı Dostu giriş adlarını dahil edin
  -z arama için sınır boyut limiti (girişlerde, ya da "none" veya "max")
Yaygın seçenekler:
  -d seviye LDAP hata ayıklama seviyesini 'seviye'ye ayar
  -D bağ DN
  -e [!] <ext>[=<extparam>] Genel uzantılar (! kritikliği gösterir)
             [!] assert=<filter> (RFC 4528; bir RFC 4515 Filtre dizisi)
             [!] authzid=<authzid> (RFC 4370; "dn:<dn>" veya "u:<user>")
             [!] zincirleme[=<resolveBehavior>[/<continuationBehavior>]]
                     "chainingPreferred", "chainingRequired" gibi örneklerden biri,
                     "yönlendirmelerTercihli", "yönlendirmelerGerekli"
             [!] manageDSAit (RFC 3296)
             [!] noop
             Ppolicy
             [!] postread[=<attrs>] (RFC 4527; virgülle ayrılmış ATTR listesi)
             [!] ön okuma[=<attrs>] (RFC 4527; virgülle ayrılmış ATTR listesi)
             [!] rahatla
             [!] oturum izleme
             terk etmek, iptal, görmezden gelmek (SIGINT terk etmek/iptal etmek gönderir,
             ya da yanıtı görmezden gelir; kritik ise SIGINT'i beklemez.
             Kontroller değil)
  -h host LDAP sunucusu
  -H URI LDAP Uniform Resource Identifier(lar)
  -SASL Etkileşimli modu kullanıyorum
  -Ne yapılacağını göster ama aslında yapma
  -N, SASL ana adını kanonikleştirmek için ters DNS kullanmaz
  -O destekler SASL güvenlik özellikleri
  -o <opt>[=<optparam>] Genel seçenekler
             nettimeout=<timeout> (saniye cinsinden, ya da "none" veya "max")
             ldif-wrap=<width> (sütunlar halinde veya "no" (sarmamayan)
  -p port portu LDAP sunucusunda
  -Q SASL Sessiz modunu kullanın
  -R alemi SASL alemi
  -U authcid SASL kimlik doğrulama kimliği
  -v, Verbose modunda çalıştırılır (standart çıkışa tanı verme)
  -V baskı versiyonu bilgisi (-Sadece VV)
  -w passwd bind password (basit kimlik doğrulama için)
  -W şifre bağlama isteği
  -x Basit kimlik doğrulama
  -X authzid SASL yetkilendirme kimliği ("dn:<dn>" veya "u:<user>")
  -y dosyası Dosyadan şifre okuma
  -Y mech SASL mekanizması
  -Z TLS isteği başlat (-ZZ başarılı yanıt gerektiriyor)

Komut şöyledir:


Sorgu sonuçları aşağıdaki gibidir:


Tüm kullanıcıları sorgulayın:


LDAP isim açıklaması

Objectclass

LDAP nesne sınıfı, LDAP'a entegre edilen veri modelidir. Her objectClass'ın kendi veri yapısı vardır; örneğin, "Phone Book" adında bir objectClass var; bu kesinlikle isim (uid), ID numarası (uidNumber), birim adı (gid), ana adresi (homeDirectory) gibi birçok yerleşik özniteliğe sahip olacaktır; aynı zamanda "Classmate Record" adında bir objectClass da vardır ve bunun bir "telefon rehberi" vardır Bazı nitelikler (örneğin uid, homeDirectory) ayrıca "telefon rehberinde" olmayan özelliklere (örneğin açıklama vb.) sahip olur.

Giriş

Bir giriş giriş olarak adlandırılabilir, bir kayıt LDAP'ta temel bir depolama birimidir; Ayrıca DN'lerin ve bir dizi özellik kümesi olarak da düşünülebilir. Bir girişin birden fazla objectClass içerebileceğini unutmayın; örneğin, zhang3 aynı anda "Telefon Defteri"nde veya "Sınıf Arkadaşı Kaydı"nda bulunabilir.

DN

Distinguished Name, LDAP'taki girişin benzersiz ayırt edilen adı, tam DN yazımışı: uid=zhang3, ou=People, dc=163, dc=com. Yalnızca LDAP girişi LDAP Sunucusu tarafından benzersizdir.

LDAP Arama filtresi

LDAP aramak için filtre kullanın. Filtre genellikle (öznitelik=değer) gibi bir birimden oluşur, örneğin: (&(uid=ZHANGSAN)(objectclass=person)) arama kullanıcısının LDAP Girişinin ZHANGSAN olduğunu gösterir. Başka bir örnek ise: (&(|( uid= ZHANGSAN)(uid=LISI))(objectclass=person)), arama kimliği olan bir kullanıcı aramasının ZHANGSAN veya LISI olduğunu gösterir; Ayrıca * kullanarak herhangi bir değeri temsil edebilirsiniz, örneğin (uid=ZHANG*SAN), ve uid değerleri ZHANG ile başlayıp SAN ile biten girişleri arayabilirsiniz. Ayrıca, farklı LDAP öznitelik eşleşme kurallarına göre, şu şekilde bir Filtre bulunabilir: (&(createtimestamp>=20050301000000)(createtimestamp<=20050302000000)), bu da arama oluşturma zamanının 20050301000000 ile 20050302000000 arasında olduğunu gösterir.

Filter'da "&" "ve" anlamına gelir; “!” "Değil" anlamına gelir; “|” "ya da" anlamına gelir. Eşleştirme kurallarına bağlı olarak "=", "~=", ">=" ve "<=" kullanılabilir.

Temel DN

Bir Temel DN "dc=163,dc=com" veya "dc=People,dc=163,dc=com" olabilir. LDAP bir ağaç veri yapısı olduğundan, arama taban belirtildikten sonra BaseDN'den başlar ve arama kapsamını şu şekilde belirtebiliriz: sadece arama tabanlı (taban), bazedn doğrudan alt seviye (bir seviye) ve temelli tüm alt ağaç seviyesi.

objectClass

LDAP'ta bir giriş, bir objectClass özniteliği içermeli ve en az bir değer atanmalıdır. Her değer, bir LDAP girişi tarafından veri depolama için bir şablon olarak kullanılacaktır; Şablon, girdiye atanması gereken bir öznitelik ve isteğe bağlı bir öznitelik içerir. objectClass'ın katı bir hiyerarşisi vardır; üst ve alias en üstte bulunur. Örneğin, organizationalPerson'ın objectClass sınıfı kişiye tabidir ve kişi ise üste tabidir.

objectClass aşağıdaki 3 kategoriye ayrılabilir:
Yapısal: kişi ve organizasyon gibiUnit;
Yardımcı: extensibeObject gibi;
Özet: Örneğin, soyut objectClass doğrudan kullanılamaz.
OpenLDAP şemasında tanımlanmış birçok objectClass vardır ve yaygın kullanılan bazı objectClass'ların isimleri aşağıda listelenmiştir.

  • hesap
  • takma ad
  • dcobject
  • alan
  • ipHost
  • Organizasyon
  • organizasyonel rol
  • organizasyonel birim
  • Kişi
  • organizasyonel Kişi
  • inetOrgPerson
  • KonutKişi
  • posixAccount
  • posixGroup


ObjectClass, bir nitelik koleksiyonudur ve LDAP, insan organizasyonlarındaki birçok yaygın nesneyi kapsüller ve bunları nesne sınıflarına kapsüller. Örneğin, personel soyadı (sn), ilk adı (cn), telefon numarası (telefonNumarası), şifre (userPassword) ve diğer özellikleri içerir; organizationalPerson ise kişinin kalıtsal sınıfıdır; yukarıdaki özelliklere ek olarak, unvan, posta kodu (postalCode) ve posta adresi (postalAddress) de bulunur ve diğer özellikler.

Öğe türleri nesne sınıfları aracılığıyla kolayca tanımlanabilir. Her girdi, birden fazla nesne sınıfını doğrudan devralabilir ve bu da çeşitli özellikleri devralır. Aynı özniteliğe sahip 2 nesne sınıfı varsa, giriş devralındıktan sonra sadece 1 nitelik korunur. Nesne sınıfı ayrıca hangi özelliklerin temel bilgi olduğunu ve içermesi gerektiğini (Zorunlu Olmalı): hangi özelliklerin genişletilmiş bilgi olduğunu ve içerebileceğini (Mayıs veya Isteğe Bağlı) belirtir.

Üç tür nesne sınıfı vardır: Yapısal, Soyut ve Yardımcı. Yapısal tipler, nesne gövdesinin temel özelliklerini belirleyen en temel tiplerdir ve her girdi yalnızca bir yapısal nesne sınıfına aittir ve ona aittir. Soyut tipler, nesne özelliklerinin ortak kısımlarını birlikte düzenleyen yapısal tipler veya diğer soyut tip ebeveynleri olabilir; bunlar diğer sınıflar için şablonlar olarak adlandırılır ve girişler soyut nesne sınıflarını doğrudan entegre edemez. Yardımcı tip, nesne varlığının genişletilmiş özelliklerini belirtir. Her çubuk yalnızca bir yapısal nesne sınıfına ait olsa da, aynı anda birden fazla yardımcı nesne sınıfına da ait olabilir.

Nesne sınıfı kendisi birbirini miras alabilir, bu yüzden nesne sınıfının kök sınıfı en üst soyut nesne sınıfıdır. Yaygın kullanılan insan türlerini örnek alarak, onların miras ilişkisi şekilde gösterilmiştir:



Accout'un yerleşik özellikleri şunlardır: userid, description, host, localityName, organizationName, organizationalUnitName, bkz. Ayrıca;

inetOrgPerson'ın yerleşik özellikleri cn, sn, description, bakınızAlso, 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, etiketlenmiş URI, posta, yönetici, mobil, o, pager, photo, preferredLanguage, roomNumber, secretary, uid, userCertificate vb.;

Gördüğünüz gibi, accout sadece birkaç gerekli ve faydalı özelliği önceden ayarlar (giriş doğrulamasını tamamlamak için kesinlikle yeterlidir), inetOrgPerson ise telefon numarası, cep telefonu numarası, sokak adresi, e-posta numarası, e-posta adresi, oda numarası, avatar, yönetici, çalışan numarası gibi birçok yerleşik özniteliğe sahiptir.

Bu nedenle, LDAP yapılandırılırken, sadece giriş doğrulama amacıyla ise, objectClass tipini accout olarak ayarlamak, büyük ve kapsamlı bir çalışan bilgisi hazinesi oluşturmak istiyorsanız objectClass'ı inetOrgPerson olarak ayarlamak önerilir

Burada genellikle 'inetOrgPerson', 'posixAccount', 'shadowAccount' kullanırım.

Account'un gerekli öznitelikleri userid'dirken, posixAccount için gerekli nitelikler cn, gidNumber, homeDirectory, uid, uidNumber'dır; shadowAccount'un gerekli özelliği uid'dir ve isteğe bağlı özellikler arasında shadowExpire, shadowInactive, shadowMax, shadowMin, userPassword vb. bulunur. En üst gerekli özellik objectClass'dır (top ve diğer objectClass'ların miras alınan ilişkiler olduğu görülebilir).

Nitelik

Nitelikler programlamadaki değişkenlere benzerdir ve atanabilir. Yaygın olarak kullanılan birçok öznitelik OpenLDAP'ta ilan edilmiştir (kullanıcılar kendi niteliklerini de belirleyebilir). Ortak Özellik anlamları şunlardır:

  • c: Ülke.
  • CN:Common Name, bir nesnenin adını ifade eder. Bir kişiye atıfta bulunuyorsa, tam adı kullanılmalıdır.
  • DC:Domain bileşeni, genellikle bir alan adının bir parçasına atıfta bulunmak için kullanılır.
  • givenName: bir kişinin soyadını değil, onun adını ifade eder.
  • l: Bir şehir veya başka coğrafi bölgenin adı gibi bir yer adını ifade eder.
  • Posta: E-posta adresi.
  • o:organizationName, bir organizasyonun adını ifade eder.
  • ou:organizationalUnitName, bir organizasyonel birimin adını ifade eder.
  • SN: Soyadı, bir kişinin soyadını ifade eder.
  • telefonNumara: Bulunduğu ülkenin kodunu taşıması gereken telefon numarası.


İpucu: objectClass, kendisinin yanı sıra kullanılan diğer Öznitelikleri de içeren özel bir Özniteliktir.

Farklı objectClass'lar için genellikle bazı gerekli özellik değerleri ve bazı isteğe bağlı özellik değerleri vardır. Örneğin, bir kullanıcının sistemdeki girişini temsil etmek için objectClass of person kullanılabilir ve sistemdeki kullanıcının genellikle isim, telefon numarası, şifre, açıklama gibi bazı bilgilere sahip olması gerekir. Aşağıdaki görselde gösterildiği gibi, kişi için kullanıcının adı ve soyadını cn ve sn ile ayarlayabilir; bu zorunludur, diğer özellikler ise isteğe bağlıdır.

Aşağıda, gerekli olan yaygın kullanılan bazı objectClass gereksinimlerinin bir listesi bulunmaktadır.

  • account:userid。
  • organization:o。
  • Kişi: CN ve SN.
  • organizationalPersonal: Kişi ile aynı.
  • organizationalRole:cn。
  • organizationUnit:ou。
  • posixGroup:cn、gidNumber。
  • posixAccount:cn、gidNumber、homeDirectory、uid、uidNumber。

(Son)




Önceki:OpenLDAP:OpenLDAP Server Daemon'u başlatamadım.
Önümüzdeki:Sayfada uygulanan Angular 9 Serisi (dokuz) #id seçici
Yayınlandı 19.05.2023 11:23:09 |
Öğren
Paylaştığınız için teşekkürler~~~
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com