openldap菜鳥入門

2021-09-13 10:13:48 字數 4544 閱讀 5732

一、openldap安裝

1.yum進行安裝

yum install openldap openldap-services openldap-services-sql openldap-clients

2.拷貝db檔案至ldap資料來源所在目錄

cp /usr/share/openldap-services/db_config.example /var/lib/ldap

3.修改檔案所屬組和使用者

chown ldap.ldap -r /etc/openldap/slapd.d

chown ldap.ldap -r /var/lib/ldap

4.啟動

方法一:

systemctl start slapd

方法二:

slapd -f /etc/openldap/slapd.d -h 『ldap:/// ldapi:/// ldaps:///』 -u ldap -g ldap -d 256

二、openldap的配置檔案

1.安裝openldap會有預設的配置在 /etc/openldap/slapd.d 是已經配好的。很難知道他是怎麼配置的。但是不用擔心 ,在/usr/share/openldap-services/有個sldap.ldif檔案就是該預設配置的方法

2.自定義配置檔案

vim /etc/openldap/slapd.conf

引入模型

include /etc/openldap/core.schema

引入其他配置檔案

include /etc/openldap/access.conf

載入其他模組

moduleload back_ldap.la

程序id檔案

piddile /etc/openldap/slapd.pid

啟動引數檔案

argsfile /etc/openldap/slapd.argsfile

對dn做訪問限制

access to dn='dc=test,dc=com'

by * none (任何人不可訪問)

by * read (所有人可檢視)

by * write (所有人可寫)

by cn=admin,dc=test,dc=com read(指定某個人)

對屬性做訪問限制

access to attr=mail

by * none (任何人不可訪問)

by * read (所有人可檢視)

by * write (所有人可寫)

by cn=admin,dc=test,dc=com read(指定某個人)

對過濾條件做訪問限制

access to filter="(objectclass=user)"

by * none (任何人不可訪問)

by * read (所有人可檢視)

by * write (所有人可寫)

by cn=admin,dc=test,dc=com read(指定某個人)

預設資料來源配置

database hdb

suffix "dc=test,dc=com"

rootdn "cn=admin,dc=test,dc=com"

rootpw secret

directory /var/lib/ldap

ad**

前提必須引入模組 back-ldap.la

database ldap

suffix 'dc=ad,dc=com'

uri "ldap:"

idassert-bind bindmethod=****** binddn='cn=admin,dc=ad,dc=com' credentials='secret' mode=self

三、ldif詳解

1.ldif檔案規範

1)ldif檔案每行的結尾不允許有空格或者製表符

2)ldif檔案允許相關屬性可以重複賦值並使用

3)ldif檔案必須以.ldif結尾

4)ldif檔案中以#開頭的為注釋,可作為注釋使用

5)ldif檔案所有的賦值方式為: 屬性:[空格]屬性值

6)ldif檔案通過空行來分隔不同條目,空行前是乙個條目,空行後是乙個條目

2.ldif語法格式

dn: 條目名 唯一

objectclass(物件類): 屬性值

ldap屬性名: 屬性值

四、ldap增、刪、改、查操作

1.操作配置檔案

1)查詢

ldapsearch -y external -h ldapi:/// -b 『dc=test,dc=com』

2)刪除

ldapdelete -y external -h ldapi:/// 『dc=test,dc=com』

3)新增

ldapadd -y external -h ldapi:/// -f add_entry.ldif

4)修改

ldapmodify -y external -h ldapi:/// -f modify_entry.ldif

2.運算元據

1)查詢

ldapsearch -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 -b 『ou=users,dc=test,dc=com』 -h ldap:

2)刪除

ldapdelete -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 『ou=users,dc=test,dc=com』 -h ldap:

3)新增

ldapadd -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 -h ldap: -f add_entry.ldif

4)修改

ldapmodify -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 -h ldap: -f add_entry.ldif

3.新增條目示例

cat > add_base.ldif << eof

dn: dc=test,dc=com

o: test

dc: test

objectclass: top

objectclass: dcobject

objectclass: organization

dn: ou=users,dc=test,dc=com

ou: users

objectclass: top

obejctclass: organizationalunit

eofldapadd -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 -h ldap: -f add_base.ldif

4.ldap物件類說明

物件類分為: 抽象類、結構類、輔助類

每個條目必須擁有乙個抽象類(top)和乙個結構類

5.modify詳解

modify是支援細粒度的增刪改操作

1)首先我們新增乙個使用者

cat > user.ldif << eof

dn: cn=name,ou=users,dc=test,dc=com

objectclass: top

objectclass: user

cn: name

cnname: name

mail: [email protected]

userpassword: secret

eofldapadd -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 -h ldap: -f auser.ldif

2)刪除屬性

cat > delete_mail.ldif >> eof

dn: cn=name,ou=users,dc=test,dc=com

changetype: modify

delete: mail

eofldapmodify -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 -h ldap: -f delete_mail.ldif

3)修改屬性

cat > update_name.ldif >> eof

dn: cn=name,ou=users,dc=test,dc=com

changetype: modify

replace: cn

cn: newname

eofldapmodify -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 -h ldap: -f update_name.ldif

3)新增屬性

cat > add_mail.ldif >> eof

dn: cn=name,ou=users,dc=test,dc=com

changetype: modify

add: mail

mail: [email protected]

eofldapmodify -x -w 『secret』 -d 『cn=admin,dc=test,dc=com』 -h ldap: -f add_mail.ldif

菜鳥入門Java

定義名為number的類,其中有兩個整型資料成員n1和n2,應宣告為私有。編寫構造方法,賦予n1和n2初始值,再為該類定義加 addition 減 subtration 乘 multiplication 除 division 等公有成員方法,分別對兩個成員變數執行加 減 乘 除的運算。在main方法...

centos Swoole 菜鳥入門

安裝配置位址 build complete.don t forget to run make test installing shared extensions usr lib64 php modules 安裝成功後的installing shared extensions 後邊的位址 usr li...

Django菜鳥入門

ps d python m pip install upgrade pip 公升級pip ps d pip install django 2.2 最好用pip來裝django框架 c python37 lib site packages django c python37 scripts 新增環境變...