mirror of
https://github.com/samba-team/samba.git
synced 2025-01-08 21:18:16 +03:00
selftest: tests idmap mapping with idmap_rid
This adds two blackbox tests that run wbinfo --sids-to-unix-ids: o a non-existing SID from the primary domain should return a mapping o a SID with a bogus (and therefor unknown) domain must not return a mapping Bug: https://bugzilla.samba.org/show_bug.cgi?id=11961 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org> Autobuild-User(master): Ralph Böhme <slow@samba.org> Autobuild-Date(master): Fri Apr 7 00:05:02 CEST 2017 on sn-devel-144
This commit is contained in:
parent
ef10b43469
commit
b680ceebf8
66
nsswitch/tests/test_idmap_rid.sh
Executable file
66
nsswitch/tests/test_idmap_rid.sh
Executable file
@ -0,0 +1,66 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Test id mapping with various SIDs and idmap_rid
|
||||
#
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo Usage: $0 DOMAIN RANGE_START
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DOMAIN="$1"
|
||||
RANGE_START="$2"
|
||||
|
||||
wbinfo="$VALGRIND $BINDIR/wbinfo"
|
||||
failed=0
|
||||
|
||||
. `dirname $0`/../../testprogs/blackbox/subunit.sh
|
||||
|
||||
DOMAIN_SID=$($wbinfo -n "@$DOMAIN" | cut -f 1 -d " ")
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "Could not find domain SID" | subunit_fail_test "test_idmap_rid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Find an unused uid and SID
|
||||
RID=66666
|
||||
MAX_RID=77777
|
||||
while true ; do
|
||||
id $RID
|
||||
if [ $? -ne 0 ] ; then
|
||||
SID="$DOMAIN_SID-$RID"
|
||||
$wbinfo -s $SID
|
||||
if [ $? -ne 0 ] ; then
|
||||
break
|
||||
fi
|
||||
fi
|
||||
RID=$(expr $RID + 1)
|
||||
if [ $RID -eq $MAX_RID ] ; then
|
||||
echo "Could not find free SID" | subunit_fail_test "test_idmap_rid"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
#
|
||||
# Test 1: Using non-existing SID to check backend returns a mapping
|
||||
#
|
||||
|
||||
EXPECTED_ID=$(expr $RID + $RANGE_START)
|
||||
out="$($wbinfo --sids-to-unix-ids=$SID)"
|
||||
echo "wbinfo returned: \"$out\", expecting \"$SID -> uid/gid $EXPECTED_ID\""
|
||||
test "$out" = "$SID -> uid/gid $EXPECTED_ID"
|
||||
ret=$?
|
||||
testit "Unknown RID from primary domain returns a mapping" test $ret -eq 0 || failed=$(expr $failed + 1)
|
||||
|
||||
#
|
||||
# Test 2: Using bogus SID with bad domain part to check idmap backend does not generate a mapping
|
||||
#
|
||||
|
||||
SID=S-1-5-21-1111-2222-3333-666
|
||||
out="$($wbinfo --sids-to-unix-ids=$SID)"
|
||||
echo "wbinfo returned: \"$out\", expecting \"$SID -> unmapped\""
|
||||
test "$out" = "$SID -> unmapped"
|
||||
ret=$?
|
||||
testit "Bogus SID returns unmapped" test $ret -eq 0 || failed=$(expr $failed + 1)
|
||||
|
||||
exit $failed
|
@ -330,7 +330,7 @@ rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sh
|
||||
|
||||
local = ["local.nss"]
|
||||
|
||||
idmap = ["idmap.rfc2307", "idmap.alloc"]
|
||||
idmap = ["idmap.rfc2307", "idmap.alloc", "idmap.rid"]
|
||||
|
||||
rap = ["rap.basic", "rap.rpc", "rap.printing", "rap.sam"]
|
||||
|
||||
@ -400,6 +400,8 @@ for t in tests:
|
||||
plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rfc2307.sh"), '$DOMAIN', 'Administrator', '2000000', 'Guest', '2000001', '"Domain Users"', '2000002', 'DnsAdmins', '2000003', 'ou=idmap,dc=samba,dc=example,dc=com', '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD'])
|
||||
elif t == "idmap.alloc":
|
||||
plantestsuite(t, "ad_member_rfc2307", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_nss.sh"), '$DOMAIN'])
|
||||
elif t == "idmap.rid":
|
||||
plantestsuite(t, "ad_member_idmap_rid", [os.path.join(samba3srcdir, "../nsswitch/tests/test_idmap_rid.sh"), '$DOMAIN', '2000000'])
|
||||
elif t == "raw.acls":
|
||||
plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
|
||||
plansmbtorture4testsuite(t, "nt4_dc", '//$SERVER_IP/nfs4acl_simple -U$USERNAME%$PASSWORD', description='nfs4acl_xattr-simple')
|
||||
|
Loading…
Reference in New Issue
Block a user