「OpenLDAP」:修訂間差異

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
本頁面具有訪問限制。如果您看見此訊息,這代表您沒有訪問本頁面的權限。
行 37: 行 37:
 這邊會列出日常營運常用的指令。其中<code>ldap*</code>系列指令有一些共通參數:
 這邊會列出日常營運常用的指令。其中<code>ldap*</code>系列指令有一些共通參數:


* 表示操作使用者的<code>-D</code>,通常會使用管理員帳號操作, <code>-D 'cn=Manager,dc=example,dc=com'</code>。
* 表示操作使用者的<code>-D</code>,通常會使用管理員帳號操作, 像是<code>-D 'cn=Manager,dc=example,dc=com'</code>或是<code>-D 'cn=admin,dc=example,dc=com'</code>。
* 表示base的<code>-b</code>,像是<code>-b 'dc=example,dc=com'</code>。
* 表示base的<code>-b</code>,像是<code>-b 'dc=example,dc=com'</code>。



於 2018年3月30日 (五) 08:18 的修訂

OpenLDAP是一套LDAP伺服器軟體。

安裝

由於OpenLDAP 2.4在2007年十月發行,至今只有一直發行minor release,所以通常都可以透過系統的套件裝到合理的版本:

# apt install slapd

另外會安裝ldap-utils,主要是因為CLI下常用的工具不在OpenLDAP內提供,而是透過第三方的方式操作(像是ldapmodifyldapdelete這些指令):

# apt install ldap-utils

設定

Ubuntu 16.04內的版本預設會使用目錄結構設定檔(預設讀取/etc/ldap/slapd.d/整個目錄),但這跟網路上一般使用單檔設定不同(通常會是/etc/ldap/slapd.conf),所以我們要告知slapd使用檔案設定檔。

這要修改/etc/default/slapd的內容,將SLAPD_CONF參數從空的值改為/etc/ldap/slapd.conf

# Default location of the slapd.conf file or slapd.d cn=config directory. If
# empty, use the compiled-in default (/etc/ldap/slapd.d with a fallback to
# /etc/ldap/slapd.conf).
SLAPD_CONF=/etc/ldap/slapd.conf

同時我們要將範本複製過來修改(範本在/usr/share/slapd/slapd.conf這邊),裡面有一些變數需要設定:

  • @BACKEND@設為mdb
  • @SUFFIX@設為dc=example,dc=com
  • @ADMIN@設為cn=Manager,dc=example,dc=com

其中的dc=example,dc=com為範例,可以依照實際組織設定。

另外因為使用mdb,需要將dbconfig的參數都刪除掉(這些是給BerkeleyDB,也就是bdb使用)。

常用指令

這邊會列出日常營運常用的指令。其中ldap*系列指令有一些共通參數:

  • 表示操作使用者的-D,通常會使用管理員帳號操作,像是-D 'cn=Manager,dc=example,dc=com'或是-D 'cn=admin,dc=example,dc=com'
  • 表示base的-b,像是-b 'dc=example,dc=com'

這些參數可以透過~/.ldaprc的設定讓使用者不需要每次都輸入:

BASE dc=example,dc=com
BINDDN cn=Manager,dc=example,dc=com

另外密碼是每次都得輸入的項目:

  • 表示操作使用者密碼的-y,後面接檔案名稱,像是-y ~/passwd-Manager.txt。另外一種輸入密碼的方式為-W,表示程式執行時手動輸入密碼。

新增使用者

指令:

$ ldapmodify -x -y ~/passwd-Manager.txt -f user.ldif

對應的LDIF:

dn: uid=${USERNAME},ou=People,dc=example,dc=com
changetype: add
objectClass: inetOrgPerson
cn: ${USERNAME}
gn: ${FIRSTNAME}
sn: ${LASTNAME}
uid: ${USERNAME}
userPassword: ${PASSWORD_APR1MD5}

外部連結