summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorGeza Gemes <geza@kzsdabas.hu>2012-07-12 16:05:04 +0200
committerAndrew Bartlett <abartlet@samba.org>2012-07-13 06:00:17 +0200
commit70de501d6a628e8b08a93134753e25e9f037c995 (patch)
tree7f617169e85c3e9cd1f949b1f663ff60b7addd22 /source4
parent5a9ce8b94acf201ddb3d8e34dd962955284f1c5f (diff)
downloadsamba-70de501d6a628e8b08a93134753e25e9f037c995.tar.gz
samba-70de501d6a628e8b08a93134753e25e9f037c995.tar.bz2
samba-70de501d6a628e8b08a93134753e25e9f037c995.zip
s4-provision: Provide YP/NIS subtree to allow ADUC to see and set rfc2307 attrs
When provisioning with --use_rfc2307=yes populate the subtree: CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN} This makes it possible to manipulate the posix attributes via ADUC (commit message adjusted by abartlet) Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4')
-rw-r--r--source4/scripting/python/samba/provision/__init__.py27
-rwxr-xr-xsource4/setup/provision4
-rw-r--r--source4/setup/ypServ30.ldif507
3 files changed, 536 insertions, 2 deletions
diff --git a/source4/scripting/python/samba/provision/__init__.py b/source4/scripting/python/samba/provision/__init__.py
index d9d1ce9eab..192130ea1c 100644
--- a/source4/scripting/python/samba/provision/__init__.py
+++ b/source4/scripting/python/samba/provision/__init__.py
@@ -1590,6 +1590,27 @@ def sanitize_server_role(role):
except KeyError:
raise ValueError(role)
+def provision_fake_ypserver(logger, samdb, domaindn, netbiosname, nisdomain, maxuid, maxgid):
+ """Creates AD entries for the fake ypserver
+ needed for being able to manipulate posix attrs via ADUC
+ """
+ samdb.transaction_start()
+ try:
+ logger.info("Setting up fake yp server settings")
+ setup_add_ldif(samdb, setup_path("ypServ30.ldif"), {
+ "DOMAINDN": domaindn,
+ "NETBIOSNAME": netbiosname,
+ "NISDOMAIN": nisdomain,
+ })
+ except Exception:
+ samdb.transaction_cancel()
+ raise
+ else:
+ samdb.transaction_commit()
+ if maxuid != None:
+ pass
+ if maxgid != None:
+ pass
def provision(logger, session_info, credentials, smbconf=None,
targetdir=None, samdb_fill=FILL_FULL, realm=None, rootdn=None,
@@ -1605,7 +1626,7 @@ def provision(logger, session_info, credentials, smbconf=None,
ol_mmr_urls=None, ol_olc=None, slapd_path="/bin/false",
useeadb=False, am_rodc=False,
lp=None, use_ntvfs=False,
- use_rfc2307=False):
+ use_rfc2307=False, maxuid=None, maxgid=None):
"""Provision samba4
:note: caution, this wipes all existing data!
@@ -1898,6 +1919,10 @@ def provision(logger, session_info, credentials, smbconf=None,
result.backend_result = backend_result
+ if use_rfc2307:
+ provision_fake_ypserver(logger=logger, samdb=samdb, domaindn=names.domaindn, netbiosname=names.netbiosname,
+ nisdomain=(names.domain).lower(), maxuid=maxuid, maxgid=maxgid)
+
return result
diff --git a/source4/setup/provision b/source4/setup/provision
index 339b05e038..2df718e4ec 100755
--- a/source4/setup/provision
+++ b/source4/setup/provision
@@ -124,6 +124,7 @@ parser.add_option("--ol-mmr-urls", type="string", metavar="LDAPSERVER",
help="List of LDAP-URLS [ ldap://<FQHN>:<PORT>/ (where <PORT> has to be different than 389!) ] separated with comma (\",\") for use with OpenLDAP-MMR (Multi-Master-Replication), e.g.: \"ldap://s4dc1:9000,ldap://s4dc2:9000\"")
parser.add_option("--use-xattrs", type="choice", choices=["yes", "no", "auto"], help="Define if we should use the native fs capabilities or a tdb file for storing attributes likes ntacl, auto tries to make an inteligent guess based on the user rights and system capabilities", default="auto")
parser.add_option("--use-ntvfs", action="store_true", help="Use NTVFS for the fileserver (default = no)")
+parser.add_option("--use-rfc2307", action="store_true", help="Use AD to store posix attributes (default = no)")
opts = parser.parse_args()[0]
@@ -257,7 +258,8 @@ try:
serverrole=opts.server_role, dom_for_fun_level=dom_for_fun_level,
backend_type=opts.ldap_backend_type,
ldapadminpass=opts.ldapadminpass, ol_mmr_urls=opts.ol_mmr_urls,
- useeadb=eadb, next_rid=opts.next_rid, lp=lp, use_ntvfs=(opts.use_ntvfs))
+ useeadb=eadb, next_rid=opts.next_rid, lp=lp, use_ntvfs=(opts.use_ntvfs),
+ use_rfc2307=(opts.use_rfc2307))
except ProvisioningError, e:
print str(e)
sys.exit(1)
diff --git a/source4/setup/ypServ30.ldif b/source4/setup/ypServ30.ldif
new file mode 100644
index 0000000000..6103266521
--- /dev/null
+++ b/source4/setup/ypServ30.ldif
@@ -0,0 +1,507 @@
+dn: CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+schemaVersion: 40
+
+dn: CN=mail,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=byaddr,CN=mail,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Aliases
+msSFU30FieldSeparator:: Og==
+msSFU30IntraFieldSeparator: ,
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30MapFilter: (objectCategory=msSFU30MailAliases)
+
+dn: CN=aliases,CN=mail,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator:: Og==
+msSFU30IntraFieldSeparator: ,
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30MapFilter: (objectCategory=msSFU30MailAliases)
+
+dn: CN=${NISDOMAIN},CN=mail,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=services,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=byname,CN=services,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: CN
+msSFU30FieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: CN
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30ResultAttributes: CN
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=ipService)
+
+dn: CN=${NISDOMAIN},CN=services,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=bootparams,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=bydefaults,CN=bootparams,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: " "
+msSFU30SearchAttributes: bootParameter
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: bootParameter
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (&(objectCategory=Device)(bootParameter=*))
+
+dn: CN=${NISDOMAIN},CN=bootparams,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=netgroup,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=bydefaults,CN=netgroup,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: ,
+msSFU30SearchAttributes: NisNetgroupTriple
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: NisNetgroupTriple
+msSFU30MapFilter: (objectCategory=NisNetgroup)
+
+dn: CN=byuser,CN=netgroup,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30NetgroupUserAtDomain
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: ,
+msSFU30SearchAttributes: msSFU30Name
+msSFU30SearchAttributes: MemberNisNetgroup
+msSFU30SearchAttributes: msSFU30NetgroupUserAtDomain
+msSFU30ResultAttributes: MemberNisNetgroup
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=NisNetgroup)
+
+dn: CN=byhost,CN=netgroup,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30NetgroupHostAtDomain
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: ,
+msSFU30SearchAttributes: msSFU30Name
+msSFU30SearchAttributes: MemberNisNetgroup
+msSFU30SearchAttributes: msSFU30NetgroupHostAtDomain
+msSFU30ResultAttributes: MemberNisNetgroup
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=NisNetgroup)
+
+dn: CN=${NISDOMAIN},CN=netgroup,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=netmasks,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=byaddr,CN=netmasks,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: ipNetworkNumber
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: " "
+msSFU30SearchAttributes: ipNetmaskNumber
+msSFU30SearchAttributes: ipNetworkNumber
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: ipNetmaskNumber
+msSFU30ResultAttributes: ipNetworkNumber
+msSFU30MapFilter: (&(objectCategory=ipNetwork)(ipNetmaskNumber=*))
+
+dn: CN=${NISDOMAIN},CN=netmasks,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=hosts,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=byaddr,CN=hosts,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: ipHostNumber
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: msSFU30Name
+msSFU30SearchAttributes: ipHostNumber
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30ResultAttributes: msSFU30Name
+msSFU30ResultAttributes: ipHostNumber
+msSFU30MapFilter: (objectCategory=Computer)
+
+dn: CN=byname,CN=hosts,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Aliases
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: msSFU30Name
+msSFU30SearchAttributes: ipHostNumber
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30ResultAttributes: msSFU30Name
+msSFU30ResultAttributes: ipHostNumber
+msSFU30MapFilter: (objectCategory=Computer)
+
+dn: CN=${NISDOMAIN},CN=hosts,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=ethers,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=byaddr,CN=ethers,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: macAddress
+msSFU30FieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Name
+msSFU30SearchAttributes: macAddress
+msSFU30ResultAttributes: msSFU30Name
+msSFU30ResultAttributes: macAddress
+msSFU30MapFilter: (&(objectCategory=Device)(macAddress=*))
+
+dn: CN=byname,CN=ethers,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Name
+msSFU30SearchAttributes: macAddress
+msSFU30ResultAttributes: msSFU30Name
+msSFU30ResultAttributes: macAddress
+msSFU30MapFilter: (&(objectCategory=Device)(macAddress=*))
+
+dn: CN=${NISDOMAIN},CN=ethers,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=networks,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=byaddr,CN=networks,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: ipNetworkNumber
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: ipNetworkNumber
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30ResultAttributes: ipNetworkNumber
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=ipNetwork)
+
+dn: CN=byname,CN=networks,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Aliases
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: ipNetworkNumber
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30ResultAttributes: ipNetworkNumber
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=ipNetwork)
+
+dn: CN=${NISDOMAIN},CN=networks,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=protocols,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=bynumber,CN=protocols,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: ipProtocolNumber
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: ipProtocolNumber
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30ResultAttributes: ipProtocolNumber
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=ipProtocol)
+
+dn: CN=byname,CN=protocols,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator: " "
+msSFU30IntraFieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: ipProtocolNumber
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30ResultAttributes: ipProtocolNumber
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=ipProtocol)
+
+dn: CN=${NISDOMAIN},CN=protocols,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=rpc,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=bynumber,CN=rpc,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: oncRpcNumber
+msSFU30FieldSeparator: " "
+msSFU30SearchAttributes: msSFU30Aliases
+msSFU30SearchAttributes: oncRpcNumber
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Aliases
+msSFU30ResultAttributes: oncRpcNumber
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=oncRpc)
+
+dn: CN=${NISDOMAIN},CN=rpc,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=netid,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=byname,CN=netid,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator: " "
+msSFU30SearchAttributes: msSFU30KeyValues
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30KeyValues
+msSFU30MapFilter: (objectCategory=msSFU30NetId)
+
+dn: CN=${NISDOMAIN},CN=netid,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=passwd,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=byuid,CN=passwd,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: uidNumber
+msSFU30FieldSeparator:: Og==
+msSFU30SearchAttributes: loginShell
+msSFU30SearchAttributes: unixHomeDirectory
+msSFU30SearchAttributes: gecos
+msSFU30SearchAttributes: gidNumber
+msSFU30SearchAttributes: uidNumber
+msSFU30SearchAttributes: unixUserPassword
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: loginShell
+msSFU30ResultAttributes: unixHomeDirectory
+msSFU30ResultAttributes: gecos
+msSFU30ResultAttributes: gidNumber
+msSFU30ResultAttributes: uidNumber
+msSFU30ResultAttributes: unixUserPassword
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (uidNumber=*)
+
+dn: CN=byname,CN=passwd,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator:: Og==
+msSFU30SearchAttributes: loginShell
+msSFU30SearchAttributes: unixHomeDirectory
+msSFU30SearchAttributes: gecos
+msSFU30SearchAttributes: gidNumber
+msSFU30SearchAttributes: uidNumber
+msSFU30SearchAttributes: unixUserPassword
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: loginShell
+msSFU30ResultAttributes: unixHomeDirectory
+msSFU30ResultAttributes: gecos
+msSFU30ResultAttributes: gidNumber
+msSFU30ResultAttributes: uidNumber
+msSFU30ResultAttributes: unixUserPassword
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (uidNumber=*)
+
+dn: CN=${NISDOMAIN},CN=passwd,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=shadow,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=bydefaults,CN=shadow,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator:: Og==
+msSFU30IntraFieldSeparator:: Og==
+msSFU30SearchAttributes: shadowFlag
+msSFU30SearchAttributes: shadowExpire
+msSFU30SearchAttributes: shadowInactive
+msSFU30SearchAttributes: shadowWarning
+msSFU30SearchAttributes: shadowMax
+msSFU30SearchAttributes: shadowMin
+msSFU30SearchAttributes: shadowLastChange
+msSFU30SearchAttributes: unixUserPassword
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: shadowFlag
+msSFU30ResultAttributes: shadowExpire
+msSFU30ResultAttributes: shadowInactive
+msSFU30ResultAttributes: shadowWarning
+msSFU30ResultAttributes: shadowMax
+msSFU30ResultAttributes: shadowMin
+msSFU30ResultAttributes: shadowLastChange
+msSFU30ResultAttributes: unixUserPassword
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (uidNumber=*)
+
+dn: CN=${NISDOMAIN},CN=shadow,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=group,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=bygid,CN=group,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: gidNumber
+msSFU30FieldSeparator:: Og==
+msSFU30IntraFieldSeparator: ,
+msSFU30SearchAttributes: memberUid
+msSFU30SearchAttributes: gidNumber
+msSFU30SearchAttributes: unixUserPassword
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: memberUid
+msSFU30ResultAttributes: gidNumber
+msSFU30ResultAttributes: unixUserPassword
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (&(objectCategory=group)(gidNumber=*))
+
+dn: CN=byname,CN=group,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator:: Og==
+msSFU30IntraFieldSeparator: ,
+msSFU30SearchAttributes: memberUid
+msSFU30SearchAttributes: gidNumber
+msSFU30SearchAttributes: unixUserPassword
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: memberUid
+msSFU30ResultAttributes: gidNumber
+msSFU30ResultAttributes: unixUserPassword
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (&(objectCategory=group)(gidNumber=*))
+
+dn: CN=${NISDOMAIN},CN=group,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}
+
+dn: CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: container
+
+dn: CN=bydefaults,CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30NISMapConfig
+msSFU30KeyAttributes: msSFU30Name
+msSFU30FieldSeparator:: IA==
+msSFU30IntraFieldSeparator:: IA==
+msSFU30SearchAttributes: msSFU30Name
+msSFU30ResultAttributes: msSFU30Name
+msSFU30MapFilter: (objectCategory=msSFU30YpServers)
+
+dn: CN=${NISDOMAIN},CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System,${DOMAINDN}
+objectClass: top
+objectClass: msSFU30DomainInfo
+msSFU30MasterServerName: ${NETBIOSNAME}
+msSFU30OrderNumber: 10000
+msSFU30Domains: ${NISDOMAIN}