diff options
author | Gerald Carter <jerry@samba.org> | 2003-07-01 14:40:47 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-07-01 14:40:47 +0000 |
commit | 4ef35ae91af666801bc5391e45372328cf1d47a1 (patch) | |
tree | 3797a02991a429be1fd4e18de7434556d97e9000 /examples | |
parent | a3fdb5536c3938453b3b56c02bfaf8fab3913619 (diff) | |
download | samba-4ef35ae91af666801bc5391e45372328cf1d47a1.tar.gz |
starting to sync for 3.0beta2
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/LDAP/convertSambaAccount | 56 | ||||
-rw-r--r-- | examples/LDAP/samba.schema | 2 | ||||
-rw-r--r-- | examples/pdb/sambapdb.dtd | 46 |
3 files changed, 81 insertions, 23 deletions
diff --git a/examples/LDAP/convertSambaAccount b/examples/LDAP/convertSambaAccount index f5b49ff0957..5b7febd6a04 100755 --- a/examples/LDAP/convertSambaAccount +++ b/examples/LDAP/convertSambaAccount @@ -15,8 +15,8 @@ use Net::LDAP::LDIF; my ( $domain, $domsid ); my ( $ldif, $ldif2 ); my ( $entry, @objclasses, $obj ); -my ( $is_samba_account ); -my ( %attr_map, $key ); +my ( $is_samba_account, $is_samba_group ); +my ( %attr_map, %group_attr_map, $key ); if ( $#ARGV != 2 ) { print "Usage: convertSambaAccount domain_sid input_ldif output_ldif\n"; @@ -41,6 +41,11 @@ if ( $#ARGV != 2 ) { acctFlags => 'sambaAcctFlags', ); +%group_attr_map = ( + ntSid => 'sambaSID', + ntGroupType => 'sambaGroupType', +); + $domsid = $ARGV[0]; $ldif = Net::LDAP::LDIF->new ($ARGV[1], "r") @@ -65,37 +70,44 @@ while ( !$ldif->eof ) { ## @objclasses = $entry->get_value( "objectClass" ); undef ( $is_samba_account ); + undef ( $is_samba_group ); foreach $obj ( @objclasses ) { if ( "$obj" eq "sambaAccount" ) { $is_samba_account = 1; + } elsif ( "$obj" eq "sambaGroupMapping" ) { + $is_samba_group = 1; } } - if ( !defined ( $is_samba_account ) ) { - $ldif2->write_entry( $entry ); - next; - } - - ## - ## start editing the sambaAccount - ## + if ( defined ( $is_samba_account ) ) { + ## + ## start editing the sambaAccount + ## - $entry->delete( 'objectclass' => [ 'sambaAccount' ] ); - $entry->add( 'objectclass' => 'sambaSamAccount' ); + $entry->delete( 'objectclass' => [ 'sambaAccount' ] ); + $entry->add( 'objectclass' => 'sambaSamAccount' ); - $entry->add( 'sambaSID' => $domsid."-".$entry->get_value( "rid" ) ); - $entry->delete( 'rid' ); + $entry->add( 'sambaSID' => $domsid."-".$entry->get_value( "rid" ) ); + $entry->delete( 'rid' ); - if ( $entry->get_value( "primaryGroupID" ) ) { - $entry->add( 'sambaPrimaryGroupSID' => $domsid."-".$entry->get_value( "primaryGroupID" ) ); - $entry->delete( 'primaryGroupID' ); - } + if ( $entry->get_value( "primaryGroupID" ) ) { + $entry->add( 'sambaPrimaryGroupSID' => $domsid."-".$entry->get_value( "primaryGroupID" ) ); + $entry->delete( 'primaryGroupID' ); + } - foreach $key ( keys %attr_map ) { - if ( $entry->get_value($key) ) { - $entry->add( $attr_map{$key} => $entry->get_value($key) ); - $entry->delete( $key ); + foreach $key ( keys %attr_map ) { + if ( defined($entry->get_value($key)) ) { + $entry->add( $attr_map{$key} => $entry->get_value($key) ); + $entry->delete( $key ); + } + } + } elsif ( defined ( $is_samba_group ) ) { + foreach $key ( keys %group_attr_map ) { + if ( defined($entry->get_value($key)) ) { + $entry->add( $attr_map{$key} => $entry->get_value($key) ); + $entry->delete( $key ); + } } } diff --git a/examples/LDAP/samba.schema b/examples/LDAP/samba.schema index 98879540451..067f5a497dc 100644 --- a/examples/LDAP/samba.schema +++ b/examples/LDAP/samba.schema @@ -132,7 +132,7 @@ # description $ userWorkstations $ primaryGroupID $ domain )) #objectclass ( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' SUP top AUXILIARY -# DESC 'Samba Auxilary Account' +# DESC 'Samba Auxiliary Account' # MUST ( uid $ rid ) # MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $ # logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $ diff --git a/examples/pdb/sambapdb.dtd b/examples/pdb/sambapdb.dtd new file mode 100644 index 00000000000..1f4054ddec4 --- /dev/null +++ b/examples/pdb/sambapdb.dtd @@ -0,0 +1,46 @@ +<!ELEMENT samba:crypt (#PCDATA)* > +<!ATTLIST samba:crypt type CDATA #REQUIRED > + +<!ELEMENT samba:password (samba:crypt*) > +<!ATTLIST samba:password last_set CDATA #IMPLIED + must_change CDATA #IMPLIED + can_change CDATA #IMPLIED> + +<!ELEMENT samba:group (#PCDATA)* > +<!ATTLIST samba:group sid CDATA #REQUIRED + gid CDATA #IMPLIED > + +<!ELEMENT samba:domain (#PCDATA)* > +<!ELEMENT samba:fullname (#PCDATA)* > +<!ELEMENT samba:nt_username (#PCDATA)* > +<!ELEMENT samba:logon_script (#PCDATA)* > +<!ELEMENT samba:profile_path (#PCDATA)* > +<!ELEMENT samba:logon_time (#PCDATA)* > +<!ELEMENT samba:logoff_time (#PCDATA)* > +<!ELEMENT samba:kickoff_time (#PCDATA)* > +<!ELEMENT samba:logon_divs (#PCDATA)* > +<!ELEMENT samba:hours_len (#PCDATA)* > +<!ELEMENT samba:unknown_3 (#PCDATA)* > +<!ELEMENT samba:unknown_5 (#PCDATA)* > +<!ELEMENT samba:unknown_6 (#PCDATA)* > +<!ELEMENT samba:homedir (#PCDATA)* > +<!ELEMENT samba:unknown_str (#PCDATA)* > +<!ELEMENT samba:dir_drive (#PCDATA)* > +<!ELEMENT samba:munged_dial (#PCDATA)* > +<!ELEMENT samba:acct_desc (#PCDATA)* > +<!ELEMENT samba:acct_ctrl (#PCDATA)* > +<!ELEMENT samba:workstations (#PCDATA)* > + +<!ELEMENT samba:user ( samba:group?, samba:domain?, samba:nt_username?, samba:fullname?, samba:homedir?, samba:dir_drive?, samba:logon_script?, samba:profile_path?, samba:password?, samba:acct_ctrl?,samba:unknown_3?, samba:logon_divs?, samba:hours_len?, samba:logon_time?, samba:logoff_time?, samba:kickoff_time?, samba:unknown_5?, samba:unknown_6?, samba:unknown_str?, samba:munged_dial?, samba:acct_desc?, samba:workstations? ) > + +<!ATTLIST samba:user sid CDATA #REQUIRED + uid CDATA #IMPLIED + name CDATA #REQUIRED> + +<!ELEMENT samba:users (samba:user*) > + +<!ELEMENT samba (samba:users?) > + +<!ATTLIST samba + xmlns CDATA #FIXED 'http://samba.org/~jelmer/sambapdb.dtd'> + |