Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 8768|Відповідь: 1

Команди OpenLDAP серії (3) OpenLDAP детально пояснюються

[Копіювати посилання]
Опубліковано 23.06.2020 22:34:54 | | | |
Резюме команд OpenLDAP

  • ldapsearch: Пошук записів дерева каталогу OpenLDAP.
  • ldapadd: Додає записи дерева каталогів у форматі LDIF.
  • ldapdelete: Deletes OpenLDAP directory tree entries.
  • ldapmodify: Змінити запис у дереві каталогу OpenLDAP.
  • ldapwhoami: Перевіряє ідентичність користувачів OpenLDAP.
  • ldapmodrdn: Оцінює DN-запис у дереві каталогу OpenLDAP.
  • ldapcompare: Визначає, чи належать значення DN і задане значення параметра одному елементу.
  • ldappasswd: Змініть запис користувача в дереві каталогу OpenLDAP для скидання пароля.
  • slaptest: Перевірте файл slapd.conf або каталог cn=configuration.
  • slapindex: Створює індекс дерева каталогів OpenLDAP для підвищення ефективності запитів.
  • slapcat: Перетворює дані у LDIF-файли для OpenLDAP.


Команда LDAPADD

Варіанти
опис
-x
Виконайте просту автентифікацію
-D
DN, який використовувався для зв'язку сервера
Адреса служби довідників
Прив'язати пароль DN
-f
Файли, які використовують LDIF-файли для додавання записів


Спочатку ми готуємо файл test.ldif з наступною командою:



Зміст такий:

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



Додайте команди наступним чином:



Після введення пароля він успішно додається, як показано на рисунку нижче:



Команда ldapmodify

Команда ldapmodify є фіксованою і переважно реалізує різні функції модифікації через конфігураційні файли.



Файл demo.ldif виглядає так, що означає, що параметр uidNumber користувача uid=xzz змінюється.



Командування ldappasswd

ldappasswd відкриває з'єднання з LDAP-сервером і змінює пароль для входу.

Варіанти
опис
-x
Виконайте просту автентифікацію
-D
DN, який використовувався для зв'язку сервера
Прив'язати пароль DN
Введіть пароль при запиті
-s
Pass, щоб встановити пароль для проходження
-a
Pass set old passWD to pass
Запит на налаштування старого passwd
означає сервер, який потрібно зв'язати
Використовуйте метод сесії SASL




Команда ldapsearch

Команда пошуку LDAP

[root@VM_0_9_centos ~]# ldapsearch -h
ldapsearch: option requires an argument -- 'h'
ldapsearch: unrecognized option -h
usage: ldapsearch [options] [filter [attributes...]]
where:
  фільтр, сумісний з RFC 4515, фільтр пошуку LDAP
  Атрибути Список описів атрибутів з розділеним пробілом
    які можуть включати:
      1.1 Відсутність атрибутів
      * усі атрибути користувача
      + усі операційні характеристики
Опції пошуку:
  -deref one від ніколи (за замовчуванням), завжди, пошук або пошук
  -A Retrieve лише імена атрибутів (без значень)
  Базовий DN на основі -b для пошуку
  -c Режим безперервної роботи (не зупинятися на помилках)
  -E [!] <ext>[=<extparam>] розширення пошуку (! вказує на критичність)
             [!] domainScope (область домену)
             !dontUseCopy (Не використовувати копію)
             [!] mv=<filter> (фільтр відповідних значень RFC 3876)
             [!] pr=<size>[/prompt|noprompt] (сторінка результатів/запит RFC 2696)
             [!] sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...]
                                         (Сортування серверної сторони RFC 2891)
             [!] підзаписи[=true|false] (RFC 3672 підзаписи)
             [!] sync=ro[/<cookie>] (RFC 4533 Оновлення синхронізації LDAP)
                     rp[/<cookie>][/<slimit>] (refreshAndPersist)
             [!] vlv=<before>/<after>(/<offset><count>/|:<value>)
                                         (ldapv3-vlv-09 перегляди віртуального списку)
             [!] deref=derefAttr:attr[,...] [; derefAttr:attr[,...] [; ...]]
             [!] <oid>[=:<b64value>] (загальне керування; Відсутність обробки відповіді)
  -f файл — операції зчитування з 'file'
  -Префікс F префікс URL для файлів (за замовчуванням: file:///tmp/)
  -l обмежує часовий ліміт (у секундах, або «none» або «max») для пошуку
  -L друкують відповіді у форматі LDIFv1
  -LL друкує відповіді у форматі LDIF без коментарів
  -LLL друкує відповіді у форматі LDIF без коментарів
             та версія
  -M увімкніть керування DSA IT-контролем (-MM для критичного значення)
  -P версія протоколу (за замовчуванням: 3)
  -s сфера один — базовий, один, підрозділ або дочірній (область пошуку)
  -S attr відсортуйте результати за атрибутом 'attr'
  -t записувати бінарні значення у файли у тимчасовій директорії
  -tt записувати всі значення у файли у тимчасовій директорії
  -T шлях запису файлів у каталог, визначений шляхом (за замовчуванням: /tmp)
  -u включають імена записів, зручних для користувача, у вихідному виході
  -z обмеження розміру (у записах, або «none» або «max») для пошуку
Поширені варіанти:
  -d level встановив рівень налагодження LDAP на 'level'
  -D binddn bind DN
  -e [!] <ext>[=<extparam>] загальні розширення (! вказує на критичність)
             [!] assert=<filter> (RFC 4528; рядок фільтра RFC 4515)
             [!] authzid=<authzid> (RFC 4370; "dn:<dn>" або "u:<user>")
             [!] Ланцюгування[=<resolveBehavior>[/<continuationBehavior>]]
                     один із «chainingPreferred», «chainingRequired»,
                     "Рекомендовані рекомендації", "Потрібні направлення"
             [!] manageDSAit (RFC 3296)
             [!] noop
             ppolicy
             [!] postread[=<attrs>] (RFC 4527; Список attr з розділеним комою)
             [!] preread[=<attrs>] (RFC 4527; Список attr з розділеним комою)
             [!] Розслабся
             [!] сесійний трекінг
             abandon, cancel, ignore (SIGINT надсилає abandon/cancel,
             або ігнорує відповідь; якщо критично, не чекає на SIGINT.
             Насправді це не керує)
  -h хост LDAP-сервер
  -H URI LDAP Єдиний ідентифікатор ресурсу
  -Я використовую інтерактивний режим SASL
  -n показує, що робити, але не роби це насправді.
  -N не використовують зворотний DNS для канонізації імені хоста SASL
  -O props властивості безпеки SASL
  -o <opt>[=<optparam>] загальні варіанти
             nettimeout=<timeout> (у секундах, або «none» або «max»)
             ldif-wrap=<width> (у стовпцях, або «ні» для відсутності обгортки)
  -p порт на LDAP-сервері
  -Q використовуй режим SASL Quiet
  -R реалм SASL
  -Authcid SASL автентифікаційна ідентичність
  -v працює в багатослівному режимі (діагностика стандартного виходу)
  -Інформація про версію друкованого видання V (тільки VV)
  -w passwd bind password (для простої автентифікації)
  -W запит для зв'язку з паролем
  -x Проста автентифікація
  -X authzid ідентичність авторизації SASL ("dn:<dn>" або "u:<user>")
  -y файл Читати пароль із файлу
  -Y механізм SASL
  -Z Start TLS-запит (-ZZ, щоб вимагати успішної відповіді)

Команда звучить так:


Результати запиту такі:


Запит до всіх користувачів:


Пояснення іменника LDAP

Клас об'єктів

Клас об'єкта LDAP — це модель даних, вбудована в LDAP. Кожен objectClass має власну структуру даних, наприклад, у нас є objectClass під назвою "Phone Book", який обов'язково матиме багато вбудованих атрибутів, таких як ім'я (uid), ID номер (uidNumber), ім'я пристрою (gid), домашня адреса (homeDirectory) тощо, водночас існує objectClass під назвою "Classmate Record", який має "телефонний довідник" Деякі атрибути (наприклад, uid, homeDirectory) також матимуть атрибути, яких немає в «телефонній довіднику» (наприклад, опис тощо).

Запис

Запис можна назвати записом, запис — це запис, базовий блок зберігання в LDAP; Його також можна розглядати як колекцію DN і набір атрибутів. Зверніть увагу, що запис може містити кілька objectClass, наприклад, zhang3 може існувати одночасно в «Телефонному довіднику» або в «Записі однокласника».

DN

Distinguished Name — унікальна відмінна назва запису в LDAP, повне DN-написання: uid=zhang3, ou=People, dc=163, dc=com. Лише запис у LDAP є унікальним для LDAP сервера.

Фільтр пошуку LDAP

Використовуйте фільтр для пошуку LDAP. Фільтр зазвичай складається з одиниці, наприклад (атрибут=значення), наприклад: (&(uid=ZHANGSAN)(objectclass=person)) вказує, що LDAP-запис користувача пошуку — це ZHANGSAN. Інший приклад: (&(|( uid= ZHANGSAN)(uid=LISI))(objectclass=person)), що означає, що пошук користувача з ідентифікатором пошуку — це ZHANGSAN, або LISI; Ви також можете використовувати * для представлення будь-якого значення, наприклад (uid=ZHANG*SAN), і шукати записи з uid-значеннями, починаючи з ZHANG і закінчуючи SAN. Крім того, згідно з різними правилами відповідності атрибутів LDAP, може існувати фільтр наступного вигляду: (&(createtimestamp>=20050301000000)(createtimestamp<=20050302000000)), який вказує, що час створення пошуку знаходиться між 20050301000000 та 20050302000000.

У Filter «&» означає «і»; “!” означає «не»; “|” означає «або». Залежно від правил відповідності, можна використовувати "=", "~=", ">=" та "<=".

Базовий DN

Базовий DN може бути "dc=163,dc=com" або "dc=People,dc=163,dc=com". Оскільки LDAP — це деревна структура даних, пошук почнеться з BaseDN після вказування бази, і ми можемо вказати область пошуку так: лише на основі пошуку (базовий), базовий прямий підрівень (один рівень) і на рівні всіх піддерев.

objectClass

У LDAP запис повинен містити атрибут objectClass і мати принаймні одне значення. Кожне значення буде використано як шаблон для зберігання даних за допомогою запису LDAP; Шаблон містить атрибут, який потрібно присвоїти запису, та необов'язковий атрибут. objectClass має сувору ієрархію, де топ і псевдонім розташовані зверху. Наприклад, objectClass організаторської особи підпорядкована особі, а особа підпорядкована топу.

objectClass можна поділити на такі 3 категорії:
Структурні: наприклад, особа та організаціяUnit;
Допоміжний: наприклад, extensibeObject;
Анотація: Наприклад, абстрактний objectClass не можна використовувати безпосередньо.
У схемі OpenLDAP визначено багато objectClasss, а назви деяких поширених objectClass наведені нижче.

  • Облік
  • Псевдонім
  • DCobject
  • Домен
  • ipHost
  • Організація
  • організаційна роль
  • організаційний підрозділ
  • Особа
  • організаційна особа
  • inetOrgPerson
  • Житлова особа
  • posixAccount
  • posixGroup


ObjectClass — це колекція атрибутів, і LDAP інкапсулює багато поширених об'єктів у людських організаціях і інкапсулює їх у класи об'єктів. Наприклад, персонал включає прізвище (sn), ім'я (cn), номер телефону (telephoneNumber), пароль (userPassword) та інші атрибути, а organizationalPerson — це клас спадкування особи; окрім вищезазначених атрибутів, він також включає титул, поштовий індекс (postalIndex) та поштову адресу (postalAddress) та інші атрибути.

Типи елементів можна легко визначити за допомогою класів об'єктів. Кожен запис може безпосередньо успадкувати кілька класів об'єктів, які успадковують різні властивості. Якщо є два класи об'єктів з однаковим атрибутом, після успадкування запису зберігається лише один атрибут. Клас об'єкта також визначає, які властивості є базовою інформацією і повинні містити (Must Required): які властивості є розширеною інформацією і можуть містити (May або Optional).

Існує три типи класів об'єктів: структурний, абстрактний і допоміжний. Структурні типи — це найпростіші типи, які визначають базові властивості тіла об'єкта, і кожен запис належить лише одному класу структурного об'єкта. Абстрактні типи можуть бути структурними типами або іншими абстрактними батьками типів, які організовують спільні частини властивостей об'єкта разом, що називаються шаблонами для інших класів, і записи не можуть безпосередньо інтегрувати абстрактні класи об'єктів. Допоміжний тип визначає розширені властивості об'єктної сутності. Хоча кожна смуга належить лише одному класу структурних об'єктів, вона може належати одночасно кільком допоміжним класам об'єктів.

Сам клас об'єкта може успадковувати один одного, тому кореневий клас класу об'єкта є верхнім абстрактним класом об'єкта. Візьмемо для прикладу найпоширеніші типи людей, їхній спадковий зв'язок показаний на рисунку:



Вбудовані атрибути accout: userid, description, host, localityName, organizationName, organizationalUnitName, див. Також;

Вбудовані атрибути inetOrgPerson: 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, mobile, o, pager, photo, preferredLanguage, roomNumber, secretary, uid, userCertificate тощо;

Як бачите, Accout має лише кілька попередніх і корисних атрибутів (цього точно достатньо для проходження верифікації входу), тоді як inetOrgPerson має багато вбудованих атрибутів, таких як номер телефону, номер мобільного телефону, вулична адреса, номер електронної пошти, адреса електронної пошти, номер кімнати, аватар, менеджер, номер працівника тощо.

Тому при налаштуванні LDAP рекомендується встановити тип objectClass як accout, якщо це лише для перевірки входу, а objectClass — inetOrgPerson, якщо ви хочете створити великий і всеохопний скарб інформації про працівників

Тут я зазвичай використовую 'inetOrgPerson', 'posixAccount', 'shadowAccount'.

Потрібні атрибути облікового запису — userid, тоді як потрібні атрибути posixAccount — cn, gidNumber, homeDirectory, uid, uidNumber; Необхідний атрибут shadowAccount — uid, а додаткові атрибути включають shadowExpire, shadowInactive, shadowMax, shadowMin, userPassword тощо. Найвища вимога властивості — objectClass (видно, що top та інші objectClass є спадковими відношеннями).

Атрибут

Атрибути схожі на змінні в програмуванні і можуть призначатися. Багато часто використовуваних атрибутів декларуються в OpenLDAP (користувачі також можуть визначати власні атрибути). Поширені значення атрибутів такі:

  • c: Кантрі.
  • CN:Common Name, що стосується назви об'єкта. Якщо йдеться про людину, потрібно використовувати її повне ім'я.
  • DC:Domain component, часто використовується для позначення частини доменного імені.
  • givenName: стосується імені людини, а не прізвища.
  • l: Позначає назву місця, наприклад, назву міста або іншої географічної території.
  • пошта: Електронна адреса.
  • o:organizationName, що стосується назви організації.
  • ou:organizationalUnitName, що позначає назву організаційного підрозділу.
  • SN: Прізвище — прізвище людини.
  • telephoneNumber: Номер телефону, який має містити код країни, в якій він перебуває.


Порада: objectClass — це спеціальний атрибут, який містить інші використані атрибути, а також сам себе.

Для різних класів об'єктів зазвичай існують деякі обов'язкові значення властивостей і деякі необов'язкові значення властивості. Наприклад, можна використовувати objectClass of person для представлення запису користувача в системі, і користувач у системі зазвичай повинен мати певну інформацію, таку як ім'я, номер телефону, пароль, опис тощо. Як показано на зображенні нижче, для особи встановіть ім'я та прізвище користувача через cn і sn, що є обов'язковим, тоді як інші атрибути є необов'язковими.

Нижче наведено список деяких часто використовуваних вимог objectClass, які є обов'язковими.

  • account:userid。
  • organization:o。
  • Особа: CN і SN.
  • організована особа: Те саме, що й особистість.
  • organizationalRole:cn。
  • organizationUnit:ou。
  • posixGroup:cn、gidNumber。
  • posixAccount:cn、gidNumber、homeDirectory、uid、uidNumber。

(Кінець)




Попередній:OpenLDAP: Не вдалося запустити OpenLDAP Server Daemon.
Наступний:Селектор Angular 9 Series (дев'ять#id) застосовується до сторінки
Опубліковано 19.05.2023 11:23:09 |
Дізнався
Дякую, що поділилися~~~
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com