dsdb: Audit group membership changes
[nivanova/samba-autobuild/.git] / selftest / target / Samba4.pm
index 51a175b25e8f1488e9791007f4dd1f6991f9747c..7abc16e1a7af5fd7a3428f5bb96d59fabdf19c5b 100755 (executable)
@@ -877,7 +877,7 @@ userPrincipalName: testdenied_upn\@$ctx->{realm}.upn
        }
 
        # Create to users alice and bob!
-       my $user_account_array = ["alice", "bob"];
+       my $user_account_array = ["alice", "bob", "jane"];
 
        foreach my $user_account (@{$user_account_array}) {
                my $samba_tool_cmd = "";
@@ -892,6 +892,23 @@ userPrincipalName: testdenied_upn\@$ctx->{realm}.upn
                }
        }
 
+       my $ldbmodify = "";
+       $ldbmodify .= "KRB5_CONFIG=\"$ret->{KRB5_CONFIG}\" ";
+       $ldbmodify .= "KRB5CCNAME=\"$ret->{KRB5_CCACHE}\" ";
+       $ldbmodify .= Samba::bindir_path($self, "ldbmodify");
+
+       my $base_dn = "DC=".join(",DC=", split(/\./, $ctx->{realm}));
+       my $user_dn = "cn=jane,cn=users,$base_dn";
+
+       open(LDIF, "|$ldbmodify -H $ctx->{privatedir}/sam.ldb");
+       print LDIF "dn: $user_dn
+changetype: modify
+replace: userPrincipalName
+userPrincipalName: jane.doe\@$ctx->{realm}
+-
+";
+       close(LDIF);
+
        return $ret;
 }
 
@@ -1386,6 +1403,7 @@ sub provision_vampire_dc($$$)
        $cmd .= "$samba_tool domain join $ret->{CONFIGURATION} $dcvars->{REALM} DC --realm=$dcvars->{REALM}";
        $cmd .= " -U$dcvars->{DC_USERNAME}\%$dcvars->{DC_PASSWORD} --domain-critical-only";
        $cmd .= " --machinepass=machine$ret->{PASSWORD} --use-ntvfs";
+       $cmd .= " --backend-store=mdb";
 
        unless (system($cmd) == 0) {
                warn("Join failed\n$cmd");
@@ -1506,6 +1524,9 @@ sub provision_ad_dc_ntvfs($$)
        lsa over netlogon = yes
         rpc server port = 1027
         auth event notification = true
+       dsdb event notification = true
+       dsdb password event notification = true
+       dsdb group change notification = true
        server schannel = auto
        ";
        my $ret = $self->provision($prefix,
@@ -1878,6 +1899,9 @@ sub provision_ad_dc($$$$$$)
 
        server schannel = auto
         auth event notification = true
+       dsdb event notification = true
+       dsdb password event notification = true
+       dsdb group change notification = true
         $smbconf_args
 ";
 
@@ -1920,6 +1944,8 @@ sub provision_ad_dc($$$$$$)
        copy = print1
 ";
 
+       my $extra_provision_options = undef;
+       push (@{$extra_provision_options}, "--backend-store=mdb");
        print "PROVISIONING AD DC...\n";
        my $ret = $self->provision($prefix,
                                   "domain controller",
@@ -1932,7 +1958,7 @@ sub provision_ad_dc($$$$$$)
                                   undef,
                                   $extra_smbconf_options,
                                   $extra_smbconf_shares,
-                                  undef);
+                                  $extra_provision_options);
        unless (defined $ret) {
                return undef;
        }