diff options
author | Noel Power <noel.power@suse.com> | 2016-09-29 16:50:58 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2016-10-03 19:49:19 +0200 |
commit | ebfe3c85d0bbdf5d5f7459ddd61e3b44c3ec2bd3 (patch) | |
tree | 3f2c141739ac03f66d8e985385e7929a83c47c92 /selftest | |
parent | c514fb6b62a904b7aaea17a78ea05299e0f462a1 (diff) | |
download | samba-ebfe3c85d0bbdf5d5f7459ddd61e3b44c3ec2bd3.tar.gz |
Add a blackbox tests for id & getent to test domain@realm type credentials
Using domain@realm credentials has been problematic when
global conf setting "winbind use default domain" is enabled, this patch
creates a new s4member_dflt_domain environment (where
"winbind use default domain" is enabled) and runs getent & id against the
normal s4member & and new s4member_dflt_domain environments
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12298
Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'selftest')
-rw-r--r-- | selftest/target/Samba.pm | 1 | ||||
-rwxr-xr-x | selftest/target/Samba4.pm | 34 |
2 files changed, 31 insertions, 4 deletions
diff --git a/selftest/target/Samba.pm b/selftest/target/Samba.pm index d60358e0dcd..24484c970e7 100644 --- a/selftest/target/Samba.pm +++ b/selftest/target/Samba.pm @@ -307,6 +307,7 @@ sub get_interface($) $interfaces{"fileserver"} = 35; $interfaces{"fakednsforwarder1"} = 36; $interfaces{"fakednsforwarder2"} = 37; + $interfaces{"s4member_dflt"} = 38; # update lib/socket_wrapper/socket_wrapper.c # #define MAX_WRAPPED_INTERFACES 40 diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm index 176b3c34998..a09abea5934 100755 --- a/selftest/target/Samba4.pm +++ b/selftest/target/Samba4.pm @@ -965,9 +965,9 @@ $extra_smbconf_shares return $self->provision_raw_step2($ctx, $ret); } -sub provision_s4member($$$) +sub provision_s4member($$$$$) { - my ($self, $prefix, $dcvars) = @_; + my ($self, $prefix, $dcvars, $hostname, $more_conf) = @_; print "PROVISIONING MEMBER...\n"; my $extra_smb_conf = " passdb backend = samba_dsdb @@ -986,9 +986,12 @@ rpc_server:spoolss = embedded rpc_daemon:spoolssd = embedded rpc_server:tcpip = no "; + if ($more_conf) { + $extra_smb_conf = $extra_smb_conf . $more_conf . "\n"; + } my $ret = $self->provision($prefix, "member server", - "s4member", + $hostname, "SAMBADOMAIN", "samba.example.com", "2008", @@ -1988,6 +1991,11 @@ sub setup_env($$$) $self->setup_ad_dc_ntvfs("$path/ad_dc_ntvfs"); } return $self->setup_subdom_dc("$path/subdom_dc", $self->{vars}->{ad_dc_ntvfs}); + } elsif ($envname eq "s4member_dflt_domain") { + if (not defined($self->{vars}->{ad_dc_ntvfs})) { + $self->setup_ad_dc_ntvfs("$path/ad_dc_ntvfs"); + } + return $self->setup_s4member_dflt_domain("$path/s4member_dflt_domain", $self->{vars}->{ad_dc_ntvfs}); } elsif ($envname eq "s4member") { if (not defined($self->{vars}->{ad_dc_ntvfs})) { $self->setup_ad_dc_ntvfs("$path/ad_dc_ntvfs"); @@ -2026,7 +2034,7 @@ sub setup_s4member($$$) { my ($self, $path, $dc_vars) = @_; - my $env = $self->provision_s4member($path, $dc_vars); + my $env = $self->provision_s4member($path, $dc_vars, "s4member"); if (defined $env) { if (not defined($self->check_or_start($env, "standard"))) { @@ -2039,6 +2047,24 @@ sub setup_s4member($$$) return $env; } +sub setup_s4member_dflt_domain($$$) +{ + my ($self, $path, $dc_vars) = @_; + + my $env = $self->provision_s4member($path, $dc_vars, "s4member_dflt", + "winbind use default domain = yes"); + + if (defined $env) { + if (not defined($self->check_or_start($env, "standard"))) { + return undef; + } + + $self->{vars}->{s4member_dflt_domain} = $env; + } + + return $env; +} + sub setup_rpc_proxy($$$) { my ($self, $path, $dc_vars) = @_; |