libc/winsup/cygwin/cygwin.ldif

254 lines
6.0 KiB
Plaintext
Raw Permalink Normal View History

* Makefile.in (install): Add install-ldif target. (install-ldif): New target to install cygwin.ldif. * cygheap.h (class cygheap_pwdgrp): Rename pfx_t to nss_pfx_t. Add PFX to enum value. Add nss_scheme_method enum and nss_scheme_t structure. Add home_scheme, shell_scheme and gecos_scheme members. (NSS_SCHEME_MAX): Define. (cygheap_pwdgrp::get_home): Declare. (cygheap_pwdgrp::get_shell): Declare. (cygheap_pwdgrp::get_gecos): Declare. * cygwin.ldif: New file. * ldap.cc (std_user_attr): New array, just defining the standard attributes. (group_attr): Add cygwinUnixGid. (user_attr): Convert to macro pointing to cygheap->pg.ldap_user_attr. (cygheap_pwdgrp::init_ldap_user_attr): New method. (cyg_ldap::fetch_ad_account): Call cygheap_pwdgrp::init_ldap_user_attr if user_attr initialization is required. Fix comment. (cyg_ldap::get_string_attribute): Implement taking attribute name as argument. * ldap.h: Drop unused macros. (cyg_ldap::get_gecos): Remove. (cyg_ldap::get_home): Remove. (cyg_ldap::get_shell): Remove. (cyg_ldap::get_string_attribute): Declare name argument variant public. * uinfo.cc (cygheap_user::ontherange): Fix indentation. (cygheap_pwdgrp::init): Initialize new home_scheme, shell_scheme and gecos_scheme members. Align comment. (NSS_NCMP): Define comparison macro. (NSS_CMP): Ditto. (cygheap_pwdgrp::nss_init_line): Use aforementioned macros throughout. Fix comment handling. Add db_home, db_shell and db_gecos handling. (fetch_from_description): New function to fetch XML-style attributes from (description) string. (fetch_from_path): New function to evaluate path string with wildcards. (cygheap_pwdgrp::get_home): New methods to fetch pw_dir value. (cygheap_pwdgrp::get_shell): Ditto for pw_shell. (cygheap_pwdgrp::get_gecos): Ditto for pw_gecos. (colon_to_semicolon): Move up. (pwdgrp::fetch_account_from_windows): Convert home, shell, gecos variables to char*. Drop statement breaking extended group info. Fetch home, shell and gecos values using new methods. Use fetch_from_description calls to fetch UNIX id and primary groups from SAM comment field. Accommodate uxid being a char* now. Accommodate the fact that extended info is malloc'ed, rather then alloca'ed. Create linebuf content as multibyte string. Create line buffer by just calling cstrdup.
2014-11-26 20:46:59 +01:00
# =========================================================================
#
# Schema Extension for Cygwin User and Group auxiliary classes
#
# Extend your Active Directory using
#
# ldifde -i -f <path>\<this>.ldif -b <username> <domain> <password> \
# -k -c "CN=schema,CN=Configuration,DC=X" #schemaNamingContext
#
# Remember:
# - you have to be schema admin for your active directory
# - you have to run the above command directly from your schema master
#
# For further information read
# http://technet.microsoft.com/en-us/magazine/2008.05.schema.aspx
#
# ----------------------------------------------------------------------
#
# Explanation for the OIDs:
#
# Value Meaning Description
# 1 ISO Identifies the root authority.
# 3 IANA Group designation assigned by ISO.
# 6.1.4.1.2312 Red Hat Organization assigned by IANA.
# 15 Cygwin Assigned by Organization.
# Y Object Type Number defining the different object type
# (category) such as classSchema or
# attributeSchema. For example, 5 defines
# object class.
# Z Object Number identifying a particular object
# within the category. For example, the user
# class has the number 9 assigned to it.
#
# ----------------------------------------------------------------------
# Attribute definition for cygwinHome
dn: CN=cygwin-Home,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-Home
attributeID: 1.3.6.1.4.1.2312.15.2.1
# attributeSyntax 2.5.5.12 is String(Unicode) with oMSyntax == 64
# see http://technet.microsoft.com/en-us/library/cc961740.aspx
attributeSyntax: 2.5.5.12
isSingleValued: TRUE
adminDisplayName: cygwin-Home
adminDescription: cygwin-Home
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: cygwinHome
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinShell
dn: CN=cygwin-Shell,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-Shell
attributeID: 1.3.6.1.4.1.2312.15.2.2
attributeSyntax: 2.5.5.12
isSingleValued: TRUE
adminDisplayName: cygwin-Shell
adminDescription: cygwin-Shell
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: cygwinShell
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinGecos
dn: CN=cygwin-Gecos,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-Gecos
attributeID: 1.3.6.1.4.1.2312.15.2.3
attributeSyntax: 2.5.5.12
isSingleValued: TRUE
adminDisplayName: cygwin-Gecos
adminDescription: cygwin-Gecos
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: cygwinGecos
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinFstab
dn: CN=cygwin-Fstab,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-Fstab
attributeID: 1.3.6.1.4.1.2312.15.2.4
attributeSyntax: 2.5.5.12
isSingleValued: FALSE
adminDisplayName: cygwin-Fstab
adminDescription: cygwin-Fstab
oMSyntax: 64
searchFlags: 1
lDAPDisplayName: cygwinFstab
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinUnixUid
dn: CN=cygwin-UnixUid,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-UnixUid
attributeID: 1.3.6.1.4.1.2312.15.2.5
# attributeSyntax 2.5.5.9 is Integer with oMSyntax == 2
attributeSyntax: 2.5.5.9
isSingleValued: TRUE
adminDisplayName: cygwin-UnixUid
adminDescription: cygwin-UnixUid
oMSyntax: 2
searchFlags: 1
lDAPDisplayName: cygwinUnixUid
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attribute definition for cygwinUnixGid
dn: CN=cygwin-UnixGid,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: cygwin-UnixGid
attributeID: 1.3.6.1.4.1.2312.15.2.6
attributeSyntax: 2.5.5.9
isSingleValued: TRUE
adminDisplayName: cygwin-UnixGid
adminDescription: cygwin-UnixGid
oMSyntax: 2
searchFlags: 1
lDAPDisplayName: cygwinUnixGid
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# cygwin-User auxiliary class
dn: CN=cygwin-User,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: classSchema
cn: cygwin-User
governsID: 1.3.6.1.4.1.2312.15.1.1
mayContain: cygwinHome
mayContain: cygwinShell
mayContain: cygwinGecos
mayContain: cygwinFstab
mayContain: cygwinUnixUid
rDNAttID: cn
adminDisplayName: cygwin-User
adminDescription: cygwin-User
objectClassCategory: 3
lDAPDisplayName: cygwinUser
name: cygwin-User
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# cygwin-Group auxiliary class
dn: CN=cygwin-Group,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemaadd
objectClass: top
objectClass: classSchema
cn: cygwin-Group
governsID: 1.3.6.1.4.1.2312.15.1.2
mayContain: cygwinUnixGid
rDNAttID: cn
adminDisplayName: cygwin-Group
adminDescription: cygwin-Group
objectClassCategory: 3
lDAPDisplayName: cygwinGroup
name: cygwin-Group
systemOnly: FALSE
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attach cygwin-User to User
dn: CN=User,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemamodify
add: auxiliaryClass
auxiliaryClass: cygwinUser
-
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
# Attach cygwin-Group to Group
dn: CN=Group,CN=Schema,CN=Configuration,DC=X
changetype: ntdsschemamodify
add: auxiliaryClass
auxiliaryClass: cygwinGroup
-
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-