This is a winsync plugin for the 389 directory server. http://port389.org The Posix Winsync Plugin syncs Posix attributes between 389 DS and MS AD for users and groups, if the attributes are available in one of the tow worlds. For syncing from AD to DS it will add the objectclass posixAccount and ShadowAccount or posixGroup for the ldap entry. For sync a user or group from DS to AD AD needs a nisdomain name, the nisdomin name I have stored in the upper container of the users and groups, e.g.: dn: dc=example,dc=dom nisDomain: example objectClass: top objectClass: domain objectClass: nisdomainobject dc: example It can be stored in any container above the user and group container and below the replicated DS subtree. The MSFU35 and the RFC2307 schema of AD is supported, but must configured in the plugin. User lock/unlock will sync and lock the user on DS with nsmanageddisabledrole. The code is borrowed from the freeIPA project. It is also possible to generate memberUid Attributes in Posix Groups corresponding the group members, if the members are Posix Users. After syncing from AD with a change in group membership, it will schedule a 'Member of Plugin' task, so that users get the memberOf attributes. For that the posix user get the objectclass inetUser Configuration The configuration entry DN is cn=Posix Winsync API,cn=plugins,cn=config there are 4 Config attributes: posixWinsyncMsSFUSchema -- set this true for the old MSFU schema on W2k3 AD's default: false posixWinsyncMapMemberUID -- set this false, if you don't want generate memberUid attributs in posix Groups default: true posixWinsyncCreateMemberOfTask -- create a task for the member of plugin to generate the memberOf attributes in a user, if a group membership in any user is changed while syncing. The postop-/preop plugins will not called through winsync, thats why create a task. default: false posixWinsyncLowerCaseUID: some customers use uppercase letters in samAccountName which is mapped to uid. uid should be case insensitve and works on Unix/Linux for users, but makes problems with supplementary groups (a least on Solaris) so you can set this to true, so that memberUid attributes will convert to lowercase. default: false