summaryrefslogtreecommitdiff
path: root/selftest
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2012-11-23 01:35:30 +0100
committerStefan Metzmacher <metze@samba.org>2012-12-03 08:48:25 +0100
commit46f2dfa7a51487e1b21c329dfb2e4cac3e6ada11 (patch)
tree2c44d63aa1f064c9197d5bd1fa92e4d130b41aa8 /selftest
parent11ca06338670c3aa1ad6928232f2c582116f42e8 (diff)
downloadsamba-46f2dfa7a51487e1b21c329dfb2e4cac3e6ada11.tar.gz
samba-46f2dfa7a51487e1b21c329dfb2e4cac3e6ada11.tar.bz2
samba-46f2dfa7a51487e1b21c329dfb2e4cac3e6ada11.zip
selftest:Samba3: provision the BUILTIN\Users group if the environment runs winbindd
Note that in order to create a local group (alias), the id-allocator of id-mapping is needed, so this can only work if winbindd is running. Signed-off-by: Michael Adam <obnox@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'selftest')
-rwxr-xr-xselftest/target/Samba3.pm24
1 files changed, 24 insertions, 0 deletions
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 99f126c96d..ea2e21d6f3 100755
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -1158,6 +1158,30 @@ sub wait_for_start($$$$$)
return 1;
}
+ if ($winbindd eq "yes") {
+ # note: creating builtin groups requires winbindd for the
+ # unix id allocator
+ $ret = system("WINBINDD_SOCKET_DIR=" . $envvars->{WINBINDD_SOCKET_DIR} . " " . Samba::bindir_path($self, "net") ." $envvars->{CONFIGURATION} sam createbuiltingroup Users");
+ if ($ret != 0) {
+ print "Failed to create BUILTIN\\Users group\n";
+ return 0;
+ }
+ my $count = 0;
+ do {
+ system(Samba::bindir_path($self, "net") . " $envvars->{CONFIGURATION} cache flush");
+ $ret = system("WINBINDD_SOCKET_DIR=" . $envvars->{WINBINDD_SOCKET_DIR} . " " . Samba::bindir_path($self, "wbinfo") . " --sid-to-gid=S-1-5-32-545");
+ if ($ret != 0) {
+ sleep(2);
+ }
+ $count++;
+ } while ($ret != 0 && $count < 10);
+ if ($count == 10) {
+ print "WINBINDD not reachable after 20 seconds\n";
+ teardown_env($self, $envvars);
+ return 0;
+ }
+ }
+
print $self->getlog_env($envvars);
return 1;