20090114 LPIC レベル3

By | 2009年11月23日

■目次
301 概念、アーキテクチャおよび設計
 301.1 LDAPの概念とアーキテクチャ 重要度3
 301.2 ディレクトリ設計 重要度2
 301.3 スキーマ 重要度3

■301.3 スキーマ 重要度3
スキーマファイル:例(core.schema:基本的なobjectclassを定義したもの)。
slapd.confのincludeディレクティブに記述する。
スキーマファイルにて、オブジェクトクラス(objectclass)と属性(attributetype)を定義する。
オブジェクトクラス:以下に、オブジェクトクラスの定義を示す。
# cat /usr/local/etc/openldap/schema/nis.schema |grep -A 5 posixGroup |egrep -v “^#|^$”
objectclass ( 1.3.6.1.1.1.2.2 NAME ‘posixGroup’ :OID(全世界的に一意)とNAME(名前)
DESC ‘Abstraction of a group of accounts’ :このobjectclassの解説
SUP top STRUCTURAL :SUP(ここで指定した機能を継承する。topの機能を継承する)。
MUST ( cn $ gidNumber ):必要属性を記載。gidNumberを属性で指定しなければならない。
MAY ( userPassword $ memberUid $ description ) ):許可属性を記載。パスワードを指定可能。

# cat /usr/local/etc/openldap/schema/nis.schema |grep -A 3 shadowMax |egrep -v “^#|^$”
attributetype ( 1.3.6.1.1.1.1.7 NAME ‘shadowMax’ :OIDと名前
EQUALITY integerMatch :本属性をキーワードとして検索時、整数として照合
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) :1.3.6.1.4.1.1466.115.121.1.27整数

■付録(よく使用する属性・オブジェクトクラス)
基本的なスキーマファイル:core.schema,cosine.schema,nis.schema, inetorgperson.schema)

# cat /usr/local/etc/openldap/schema/core.schema |grep -A 1 NAME |egrep -v “^#|^$”
(抜粋)
attributetype ( 2.5.4.4 NAME ( ‘sn’ ‘surname’ )
DESC ‘RFC2256: last (family) name(s) for which the entity is known by’

attributetype ( 2.5.4.5 NAME ‘serialNumber’
DESC ‘RFC2256: serial number of the entity’

attributetype ( 2.5.4.11 NAME ( ‘ou’ ‘organizationalUnitName’ )
DESC ‘RFC2256: organizational unit this object belongs to’

attributetype ( 2.5.4.12 NAME ‘title’
DESC ‘RFC2256: title associated with the entity’

attributetype ( 2.5.4.20 NAME ‘telephoneNumber’
DESC ‘RFC2256: Telephone Number’

objectclass ( 2.5.6.6 NAME ‘person’
DESC ‘RFC2256: a person’

objectclass ( 1.3.6.1.1.3.1 NAME ‘uidObject’
DESC ‘RFC2377: uid object’

# cat /usr/local/etc/openldap/schema/nis.schema |grep -A 1 NAME |egrep -v “^#|^$”

attributetype ( 1.3.6.1.1.1.1.2 NAME ‘gecos’
DESC ‘The GECOS field; the common name’

attributetype ( 1.3.6.1.1.1.1.3 NAME ‘homeDirectory’
DESC ‘The absolute path to the home directory’

attributetype ( 1.3.6.1.1.1.1.4 NAME ‘loginShell’
DESC ‘The path to the login shell’

attributetype ( 1.3.6.1.1.1.1.5 NAME ‘shadowLastChange’
EQUALITY integerMatch

attributetype ( 1.3.6.1.1.1.1.6 NAME ‘shadowMin’
EQUALITY integerMatch

attributetype ( 1.3.6.1.1.1.1.7 NAME ‘shadowMax’
EQUALITY integerMatch

attributetype ( 1.3.6.1.1.1.1.8 NAME ‘shadowWarning’
EQUALITY integerMatch

attributetype ( 1.3.6.1.1.1.1.9 NAME ‘shadowInactive’
EQUALITY integerMatch

attributetype ( 1.3.6.1.1.1.1.10 NAME ‘shadowExpire’
EQUALITY integerMatch

attributetype ( 1.3.6.1.1.1.1.11 NAME ‘shadowFlag’
EQUALITY integerMatch

attributetype ( 1.3.6.1.1.1.1.12 NAME ‘memberUid’
EQUALITY caseExactIA5Match

objectclass ( 1.3.6.1.1.1.2.0 NAME ‘posixAccount’
DESC ‘Abstraction of an account with POSIX attributes’

objectclass ( 1.3.6.1.1.1.2.1 NAME ‘shadowAccount’
DESC ‘Additional attributes for shadow passwords’

objectclass ( 1.3.6.1.1.1.2.2 NAME ‘posixGroup’
DESC ‘Abstraction of a group of accounts’