macOS Serverでユーザまたはグループを読み込むファイルを作成する
文字区切りファイルは、ワークグループマネージャを使用するか、Open DirectoryマスターのLDAPディレクトリ内のアカウントを書き出すdsexport
を使って作成できます。スクリプト、データベースアプリケーション、スプレッドシートアプリケーションなどを使って、手動で文字区切りファイルを作成することも可能です。
ファイルの最初のレコードはレコード記述です。レコード記述には、ファイル内の各アカウントレコードのフォーマットを指定します。レコード記述には3通りあります:
完全なレコード記述
省略表現
StandardUserRecord
を使用省略表現
StandardGroupRecord
を使用
ファイル内のその他のレコードは、ユーザまたはグループアカウントの説明です。これらは、レコード記述で指定されたフォーマットでエンコードされています。文字区切りファイル内の # で始まる行は読み込み時に無視されます。
レコード記述を指定する
レコード記述では、文字区切りファイル内の各レコードのフィールドを指定し、区切り文字を指定して、レコード内の特殊文字の前に置かれるエスケープ文字を指定します。
次の要素を順番にスペースで区切って指定してから、レコード記述をエンコードします。
レコード終了指示子(16進表記)
エスケープ文字(16進表記)
フィールド区切り文字(16進表記)
値区切り文字(16進表記)
ファイル内のアカウントのタイプ(
dsRecTypeStandard:Users
またはdsRecTypeStandard:Groups
)各アカウントレコードに含まれる属性数
属性リスト
ユーザアカウントの場合、属性リストに以下の項目を含める必要があります。ただし、ファイルの読み込み時に開始UIDとデフォルトのプライマリグループIDを指定した場合は、UIDとPrimaryGroupIDを省略可能です:
RecordName (ユーザ名)
パスワード
UniqueID(UID)
PrimaryGroupID
RealName(ユーザのフルネーム)
さらに、次の項目を含めることができます:
UserShell(デフォルトのシェル)
NFSHomeDirectory (ユーザのホームフォルダのパス)
「Open Directory Administration」に説明が記載されているその他のユーザデータのタイプ
グループアカウントの場合、属性リストに以下の項目を含める必要があります:
RecordName(グループ名)
PrimaryGroupID(グループID)
GroupMembership
以下にレコード記述の例を示します:
0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Users 7
RecordName Password UniqueID PrimaryGroupID
RealName NFSHomeDirectory UserShell
以下は、上記のレコード記述に指定されたフォーマットでエンコードされたレコードです:
anne:Adl47E$:408:20:A. Johnsons, M.D.:/Network/Servers/somemac/Homes/anne:/bin/csh
レコードは、コロンで区切られた複数の値で構成されます。ダブルコロン(::)は、値が欠落していることを示します。
注記:コロン(:)はフィールド区切り文字です。属性の記述にコロンが含まれている場合は、区切り文字扱いされないように、エスケープ文字としてバックスラッシュ(\)を前置します。フィールド区切り文字がコロン以外の文字である場合、エスケープ文字は不要です。
ユーザアカウントを読み込む前に、手動でパスワードを設定するか、デフォルトのパスワードを既知の値に設定します。ユーザレコードの読み込み後、最初のログイン時にユーザにパスワードの変更を求めるパスワードポリシーを設定できます。
パスワードは、ワークグループマネージャやその他の方法では書き出せません。
省略表現StandardUserRecordを使用
文字区切りの読み込みファイルの最初のレコードにStandardUserRecord
が含まれる場合、次のようなレコード記述であると考えられます:
0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Users 7
RecordName Password UniqueID PrimaryGroupID
RealName NFSHomeDirectory UserShell
例のユーザアカウントは次のようになります:
anne:Adl47E$:408:20:A. Lo, M.D.:/Network/Servers/somemac/Homes/anne:/bin/csh
省略表現StandardGroupRecordを使用
文字区切りの読み込みファイルの最初のレコードにStandardGroupRecord
が含まれる場合、次のようなレコード記述であると考えられます:
0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Groups 4
RecordName Password PrimaryGroupID GroupMembership
以下は、上記のレコード記述に指定されたフォーマットでエンコードされたレコードです:
students:Ad147:88:johnson,miller,clark,chen,wong