return $self->setup_s3dc("$path/s3dc");
} elsif ($envname eq "secshare") {
return $self->setup_secshare("$path/secshare");
+ } elsif ($envname eq "maptoguest") {
+ return $self->setup_maptoguest("$path/maptoguest");
} elsif ($envname eq "ktest") {
return $self->setup_ktest("$path/ktest");
} elsif ($envname eq "secserver") {
$ctx->{realm} = $dcvars->{REALM};
$ctx->{dnsname} = lc($dcvars->{REALM});
$ctx->{kdc_ipv4} = $dcvars->{SERVER_IP};
- Samba::mk_krb5_conf($ctx);
+ Samba::mk_krb5_conf($ctx, "");
$ret->{KRB5_CONFIG} = $ctx->{krb5_conf};
my $plugin_s4_dc_options = "
workgroup = $dcvars->{DOMAIN}
realm = $dcvars->{REALM}
- security=ads
+
+ security = ads
+ domain logons = yes
passdb backend = samba4
auth methods = guest samba4
- domain logons = yes
+ server signing = on
+
+ rpc_server:epmapper = disabled
+ rpc_server:rpcecho = disabled
+ rpc_server:dssetup = disabled
+ rpc_server:svctl = disabled
+ rpc_server:ntsvcs = disabled
+ rpc_server:eventlog = disabled
+ rpc_server:initshutdown = disabled
+
+ rpc_server:winreg = embedded
+ rpc_server:srvsvc = embedded
+ rpc_server:netdfs = embedded
+ rpc_server:wkssvc = embedded
+ rpc_server:spoolss = embedded
+
rpc_server:lsarpc = external
rpc_server:netlogon = external
rpc_server:samr = external
- server signing = on
+
+ rpc_daemon:epmd = disabled
+ rpc_daemon:lsasd = disabled
+ rpc_daemon:spoolssd = disabled
+
+ rpc_server:tcpip = no
+
+[IPC\$]
+ vfs objects = dfs_samba4
";
my $ret = $self->provision($prefix,
chmod 0777, "$prefix/share";
$self->check_or_start($ret,
- "no", "yes", "yes");
+ "no", "no", "yes");
$self->wait_for_start($ret);
$ctx->{realm} = "KTEST.SAMBA.EXAMPLE.COM";
$ctx->{dnsname} = lc($ctx->{realm});
$ctx->{kdc_ipv4} = "0.0.0.0";
- Samba::mk_krb5_conf($ctx);
+ Samba::mk_krb5_conf($ctx, "");
$ret->{KRB5_CONFIG} = $ctx->{krb5_conf};
return $ret;
}
+sub setup_maptoguest($$)
+{
+ my ($self, $path) = @_;
+
+ print "PROVISIONING maptoguest...";
+
+ my $options = "
+map to guest = bad user
+";
+
+ my $vars = $self->provision($path,
+ "maptoguest",
+ 7,
+ "maptoguestpass",
+ $options);
+
+ $vars or return undef;
+
+ $self->check_or_start($vars,
+ "yes", "no", "yes");
+
+ if (not $self->wait_for_start($vars)) {
+ return undef;
+ }
+
+ $self->{vars}->{s3maptoguest} = $vars;
+
+ return $vars;
+}
+
sub stop_sig_term($$) {
my ($self, $pid) = @_;
kill("USR1", $pid) or kill("ALRM", $pid) or warn("Unable to kill $pid: $!");
return $pid;
}
-sub check_or_start($$$$) {
+sub check_or_start($$$$$) {
my ($self, $env_vars, $nmbd, $winbindd, $smbd) = @_;
unlink($env_vars->{NMBD_TEST_LOG});
$ENV{NSS_WRAPPER_GROUP} = $env_vars->{NSS_WRAPPER_GROUP};
$ENV{NSS_WRAPPER_WINBIND_SO_PATH} = $env_vars->{NSS_WRAPPER_WINBIND_SO_PATH};
+ $ENV{UID_WRAPPER} = "1";
+
if ($nmbd ne "yes") {
$SIG{USR1} = $SIG{ALRM} = $SIG{INT} = $SIG{QUIT} = $SIG{TERM} = sub {
my $signame = shift;
$ENV{NSS_WRAPPER_GROUP} = $env_vars->{NSS_WRAPPER_GROUP};
$ENV{NSS_WRAPPER_WINBIND_SO_PATH} = $env_vars->{NSS_WRAPPER_WINBIND_SO_PATH};
+ $ENV{UID_WRAPPER} = "1";
+
if ($winbindd ne "yes") {
$SIG{USR1} = $SIG{ALRM} = $SIG{INT} = $SIG{QUIT} = $SIG{TERM} = sub {
my $signame = shift;
@preargs = split(/ /, $ENV{WINBINDD_VALGRIND});
}
- print "Starting winbindd with config $env_vars->{SERVERCONFFILE})\n";
+ print "Starting winbindd with config $env_vars->{SERVERCONFFILE}\n";
exec(@preargs, Samba::bindir_path($self, "winbindd"), "-F", "--no-process-group", "--stdout", "-s", $env_vars->{SERVERCONFFILE}, @optargs) or die("Unable to start winbindd: $!");
}
$ENV{NSS_WRAPPER_GROUP} = $env_vars->{NSS_WRAPPER_GROUP};
$ENV{NSS_WRAPPER_WINBIND_SO_PATH} = $env_vars->{NSS_WRAPPER_WINBIND_SO_PATH};
+ $ENV{UID_WRAPPER} = "1";
+
if ($smbd ne "yes") {
$SIG{USR1} = $SIG{ALRM} = $SIG{INT} = $SIG{QUIT} = $SIG{TERM} = sub {
my $signame = shift;
map readonly = no
store dos attributes = yes
create mask = 755
+ dos filemode = yes
vfs objects = $vfs_modulesdir_abs/xattr_tdb.so $vfs_modulesdir_abs/streams_depot.so
printing = vlp
lpq cache time = 0
ncalrpc dir = $prefix_abs/ncalrpc
- rpc_server:epmapper = embedded
+ rpc_server:epmapper = external
+ rpc_server:spoolss = external
+ rpc_server:lsarpc = external
+ rpc_server:samr = external
+ rpc_server:netlogon = external
+ rpc_server:tcpip = yes
+
+ rpc_daemon:epmd = fork
+ rpc_daemon:spoolssd = fork
+ rpc_daemon:lsasd = fork
resolv:host file = $dns_host_file
+ # The samba3.blackbox.smbclient_s3 test uses this to test that
+ # sending messages works, and that the %m sub works.
message command = mv %s $shrdir/message.%m
# Begin extra options
print CONF "
[tmp]
path = $shrdir
+ comment = smb username is [%U]
[tmpguest]
path = $shrdir
guest ok = yes
copy = print1
[lp]
copy = print1
+[xcopy_share]
+ path = $shrdir
+ comment = smb username is [%U]
+ create mask = 777
+ force create mode = 777
[print\$]
copy = tmp
";