selftest/Samba4: make use of get_cmd_env_vars() to setup all relevant env variables
[samba.git] / source3 / script / tests / test_smbclient_kerberos.sh
1 #!/bin/sh
2
3 if [ $# -lt 6 ]; then
4         cat <<EOF
5 Usage: test_smbclient_kerberos.sh USERNAME REALM PASSWORD SERVER SMBCLIENT TARGET
6 EOF
7         exit 1
8 fi
9
10 USERNAME="$1"
11 REALM=$2
12 PASSWORD="$3"
13 SERVER="$4"
14 smbclient="$5"
15 TARGET="$6"
16 shift 6
17
18 incdir=$(dirname $0)/../../../testprogs/blackbox
19 . ${incdir}/subunit.sh
20 . ${incdir}/common_test_fns.inc
21
22 failed=0
23
24 samba_kinit=kinit
25 if test -x ${BINDIR}/samba4kinit; then
26         samba_kinit=${BINDIR}/samba4kinit
27 fi
28
29 samba_kdestroy=kdestroy
30 if test -x ${BINDIR}/samba4kdestroy; then
31         samba_kdestroy=${BINDIR}/samba4kdestroy
32 fi
33
34 KRB5CCNAME_PATH="${PREFIX}/ccache_smbclient_kerberos"
35 KRB5CCNAME="FILE:${KRB5CCNAME_PATH}"
36 export KRB5CCNAME
37
38 # For ad_dc_fips this should succeed as Kerberos is set to required by default
39 test_smbclient "smbclient.smb3.kerberos[//${SERVER}/tmp]" \
40         "ls; quit" //${SERVER}/tmp \
41         -U${USERNAME}%${PASSWORD} -mSMB3 ||
42         failed=$(expr $failed + 1)
43
44 test_smbclient "smbclient.smb3.kerberos.required[//${SERVER}/tmp]" \
45         "ls; quit" //${SERVER}/tmp \
46         --use-kerberos=required -U${USERNAME}%${PASSWORD} -mSMB3 ||
47         failed=$(expr $failed + 1)
48
49 test_smbclient "smbclient.smb3.kerberos.desired[//${SERVER}/tmp]" \
50         "ls; quit" //${SERVER}/tmp \
51         --use-kerberos=desired -U${USERNAME}%${PASSWORD} -mSMB3 ||
52         failed=$(expr $failed + 1)
53
54 if [ "$TARGET" = "ad_dc_fips" ] || [ "$TARGET" = "ad_member_fips" ]; then
55         test_smbclient_expect_failure "smbclient.smb3.kerberos.off[//${SERVER}/tmp]" \
56                 "ls; quit" //${SERVER}/tmp \
57                 --use-kerberos=off -U${USERNAME}%${PASSWORD} -mSMB3 ||
58                 failed=$(expr $failed + 1)
59 else
60         test_smbclient "smbclient.smb3.kerberos.off[//${SERVER}/tmp]" \
61                 "ls; quit" //${SERVER}/tmp \
62                 --use-kerberos=off -U${USERNAME}%${PASSWORD} -mSMB3 ||
63                 failed=$(expr $failed + 1)
64 fi
65
66 kerberos_kinit $samba_kinit ${USERNAME}@${REALM} ${PASSWORD}
67 test_smbclient "smbclient.smb3.kerberos.ccache[//${SERVER}/tmp]" \
68         "ls; quit" //${SERVER}/tmp \
69         --use-krb5-ccache=${KRB5CCNAME} -mSMB3 ||
70         failed=$(expr $failed + 1)
71 test_smbclient "smbclient.smb3.kerberos.desired[//${SERVER}/tmp]" \
72         "ls; quit" //${SERVER}/tmp \
73         --use-kerberos=desired -U${USERNAME}%${PASSWORD} -mSMB3 ||
74         failed=$(expr $failed + 1)
75
76 $samba_kdestroy
77
78 rm -rf $KRB5CCNAME_PATH
79
80 testok "$0" "$failed"