1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/nsswitch/tests/test_idmap_rid.sh
Ralph Boehme b680ceebf8 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
2017-04-07 00:05:02 +02:00

67 lines
1.5 KiB
Bash
Executable File

#!/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