#
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License. 
#  
#   EXAMPLE.COM is reserved for testing according to this RFC:
#
#   http://www.rfc-editor.org/rfc/rfc2606.txt
#

dn: ou=users,dc=example,dc=com
objectclass: top
objectclass: organizationalunit
ou: users

dn: uid=akarasulu,ou=users,dc=example,dc=com
cn: Alex Karasulu
sn: Karasulu
givenname: Alex
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Jacksonville
uid: akarasulu
krb5PrincipalName: akarasulu@EXAMPLE.COM
krb5KeyVersionNumber: 0
mail: akarasulu@example.com
telephonenumber: +1 904 982 6882
facsimiletelephonenumber: +1 904 982 6883
roomnumber: 666
userpassword: maxwell

dn: uid=erodriguez,ou=users,dc=example,dc=com
cn: Enrique Rodriguez
sn: Rodriguez
givenname: Enrique
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: erodriguez
krb5PrincipalName: erodriguez@EXAMPLE.COM
krb5KeyVersionNumber: 0
mail: erodriguez@example.com
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: kerby

dn: uid=krbtgt,ou=users,dc=example,dc=com
cn: Kerberos Server
sn: Server
givenname: Kerberos
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: krbtgt
krb5PrincipalName: krbtgt/EXAMPLE.COM@EXAMPLE.COM
krb5KeyVersionNumber: 0
mail: erodriguez@example.com
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: kahuna

dn: uid=hostssh,ou=users,dc=example,dc=com
cn: SSH Service
sn: Service
givenname: SSH
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: hostssh
krb5PrincipalName: host/www.example.com@EXAMPLE.COM
krb5KeyVersionNumber: 0
mail: erodriguez@example.com
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: randall

dn: uid=dns1,ou=users,dc=example,dc=com
cn: DNS Service
sn: Service
givenname: DNS
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: dns1
krb5PrincipalName: DNS/dns1.icann.org@EXAMPLE.COM
krb5KeyVersionNumber: 0
mail: erodriguez@example.com
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: randall

dn: uid=kadmin,ou=users,dc=example,dc=com
cn: Changepw Server
sn: Server
givenname: Changepw
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: kadmin
krb5PrincipalName: kadmin/changepw@EXAMPLE.COM
krb5KeyVersionNumber: 0
mail: erodriguez@example.com
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: kahuna
