1#!/bin/sh 2# Blackbox test for wbinfo 3if [ $# -lt 4 ]; then 4cat <<EOF 5Usage: test_wbinfo.sh DOMAIN USERNAME PASSWORD TARGET 6EOF 7exit 1; 8fi 9 10DOMAIN=$1 11USERNAME=$2 12PASSWORD=$3 13TARGET=$4 14shift 4 15 16failed=0 17samba4bindir="$BUILDDIR/bin" 18wbinfo="$samba4bindir/wbinfo$EXEEXT" 19 20. `dirname $0`/../../testprogs/blackbox/subunit.sh 21 22testfail() { 23 name="$1" 24 shift 25 cmdline="$*" 26 echo "test: $name" 27 $cmdline 28 status=$? 29 if [ x$status = x0 ]; then 30 echo "failure: $name" 31 else 32 echo "success: $name" 33 fi 34 return $status 35} 36 37knownfail() { 38 name="$1" 39 shift 40 cmdline="$*" 41 echo "test: $name" 42 $cmdline 43 status=$? 44 if [ x$status = x0 ]; then 45 echo "failure: $name [unexpected success]" 46 status=1 47 else 48 echo "knownfail: $name" 49 status=0 50 fi 51 return $status 52} 53 54# List users 55testit "wbinfo -u against $TARGET" $wbinfo -u || failed=`expr $failed + 1` 56# List groups 57testit "wbinfo -g against $TARGET" $wbinfo -g || failed=`expr $failed + 1` 58# Convert netbios name to IP 59# Does not work yet 60knownfail "wbinfo -N against $TARGET" $wbinfo -N $NETBIOSNAME || failed=`expr $failed + 1` 61# Convert IP to netbios name 62# Does not work yet 63knownfail "wbinfo -I against $TARGET" $wbinfo -I $SERVER_IP || failed=`expr $failed + 1` 64 65# Convert name to SID 66testit "wbinfo -n against $TARGET" $wbinfo -n "$DOMAIN/$USERNAME" || failed=`expr $failed + 1` 67admin_sid=`$wbinfo -n "$DOMAIN/$USERNAME" | cut -d " " -f1` 68echo "$DOMAIN/$USERNAME resolved to $admin_sid" 69 70testit "wbinfo -s $admin_sid against $TARGET" $wbinfo -s $admin_sid || failed=`expr $failed + 1` 71admin_name=`$wbinfo -s $admin_sid | cut -d " " -f1| tr a-z A-Z` 72echo "$admin_sid resolved to $admin_name" 73 74tested_name=`echo $DOMAIN/$USERNAME | tr a-z A-Z` 75 76echo "test: wbinfo -s check for sane mapping" 77if test x$admin_name != x$tested_name; then 78 echo "$admin_name does not match $tested_name" 79 echo "failure: wbinfo -s check for sane mapping" 80 failed=`expr $failed + 1` 81else 82 echo "success: wbinfo -s check for sane mapping" 83fi 84 85testit "wbinfo -n on the returned name against $TARGET" $wbinfo -n $admin_name || failed=`expr $failed + 1` 86test_sid=`$wbinfo -n $tested_name | cut -d " " -f1` 87 88echo "test: wbinfo -n check for sane mapping" 89if test x$admin_sid != x$test_sid; then 90 echo "$admin_sid does not match $test_sid" 91 echo "failure: wbinfo -n check for sane mapping" 92 failed=`expr $failed + 1` 93else 94 echo "success: wbinfo -n check for sane mapping" 95fi 96 97testit "wbinfo -U against $TARGET" $wbinfo -U 30000 || failed=`expr $failed + 1` 98 99echo "test: wbinfo -U check for sane mapping" 100sid_for_30000=`$wbinfo -U 30000` 101if test x$sid_for_30000 != "xS-1-22-1-30000"; then 102 echo "uid 30000 mapped to $sid_for_30000, not S-1-22-1-30000" 103 echo "failure: wbinfo -U check for sane mapping" 104 failed=`expr $failed + 1` 105else 106 echo "success: wbinfo -U check for sane mapping" 107fi 108 109admin_uid=`$wbinfo -S $admin_sid` 110 111testit "wbinfo -G against $TARGET" $wbinfo -G 30000 || failed=`expr $failed + 1` 112 113echo "test: wbinfo -G check for sane mapping" 114sid_for_30000=`$wbinfo -G 30000` 115if test x$sid_for_30000 != "xS-1-22-2-30000"; then 116 echo "gid 30000 mapped to $sid_for_30000, not S-1-22-2-30000" 117 echo "failure: wbinfo -G check for sane mapping" 118 failed=`expr $failed + 1` 119else 120 echo "success: wbinfo -G check for sane mapping" 121fi 122 123testit "wbinfo -S against $TARGET" $wbinfo -S "S-1-22-1-30000" || failed=`expr $failed + 1` 124 125echo "test: wbinfo -S check for sane mapping" 126uid_for_sid=`$wbinfo -S S-1-22-1-30000` 127if test 0$uid_for_sid -ne 30000; then 128 echo "S-1-22-1-30000 mapped to $uid_for_sid, not 30000" 129 echo "failure: wbinfo -S check for sane mapping" 130 failed=`expr $failed + 1` 131else 132 echo "success: wbinfo -S check for sane mapping" 133fi 134 135testfail "wbinfo -S against $TARGET using invalid SID" $wbinfo -S "S-1-22-2-30000" && failed=`expr $failed + 1` 136 137testit "wbinfo -Y against $TARGET" $wbinfo -Y "S-1-22-2-30000" || failed=`expr $failed + 1` 138 139echo "test: wbinfo -Y check for sane mapping" 140gid_for_sid=`$wbinfo -Y S-1-22-2-30000` 141if test 0$gid_for_sid -ne 30000; then 142 echo "S-1-22-2-30000 mapped to $gid_for_sid, not 30000" 143 echo "failure: wbinfo -Y check for sane mapping" 144 failed=`expr $failed + 1` 145else 146 echo "success: wbinfo -Y check for sane mapping" 147fi 148 149testfail "wbinfo -Y against $TARGET using invalid SID" $wbinfo -Y "S-1-22-1-30000" && failed=`expr $failed + 1` 150 151testit "wbinfo -t against $TARGET" $wbinfo -t || failed=`expr $failed + 1` 152 153#didn't really work anyway 154knownfail "wbinfo --trusted-domains against $TARGET" $wbinfo --trusted-domains || failed=`expr $failed + 1` 155knownfail "wbinfo --all-domains against $TARGET" $wbinfo --all-domains || failed=`expr $failed + 1` 156 157testit "wbinfo --own-domain against $TARGET" $wbinfo --own-domain || failed=`expr $failed + 1` 158 159echo "test: wbinfo --own-domain against $TARGET check output" 160own_domain=`$wbinfo --own-domain` 161if test x$own_domain = x$DOMAIN; then 162 echo "success: wbinfo --own-domain against $TARGET check output" 163else 164 echo "Own domain reported as $own_domain instead of $DOMAIN" 165 echo "failure: wbinfo --own-domain against $TARGET check output" 166fi 167 168# this does not work 169knownfail "wbinfo --sequence against $TARGET" $wbinfo --sequence 170 171# this is stubbed out now 172testit "wbinfo -D against $TARGET" $wbinfo -D $DOMAIN || failed=`expr $failed + 1` 173 174testit "wbinfo -i against $TARGET" $wbinfo -i "$DOMAIN/$USERNAME" || failed=`expr $failed + 1` 175 176testit "wbinfo --uid-info against $TARGET" $wbinfo --uid-info $admin_uid 177 178# this does not work 179knownfail "wbinfo --group-info against $TARGET" $wbinfo --group-info "S-1-22-2-0" 180knownfail "wbinfo --gid-info against $TARGET" $wbinfo --gid-info 30001 181knownfail "wbinfo -r against $TARGET" $wbinfo -r "$DOMAIN/$USERNAME" 182 183testit "wbinfo --user-domgroups against $TARGET" $wbinfo --user-domgroups $admin_sid || failed=`expr $failed + 1` 184 185testit "wbinfo --user-sids against $TARGET" $wbinfo --user-sids $admin_sid || failed=`expr $failed + 1` 186 187testit "wbinfo -a against $TARGET with domain creds" $wbinfo -a "$DOMAIN/$USERNAME"%"$PASSWORD" || failed=`expr $failed + 1` 188 189testit "wbinfo --getdcname against $TARGET" $wbinfo --getdcname=$DOMAIN 190 191testit "wbinfo -p against $TARGET" $wbinfo -p || failed=`expr $failed + 1` 192 193testit "wbinfo -K against $TARGET with domain creds" $wbinfo -K "$DOMAIN/$USERNAME"%"$PASSWORD" || failed=`expr $failed + 1` 194 195testit "wbinfo --separator against $TARGET" $wbinfo --separator || failed=`expr $failed + 1` 196 197exit $failed 198