2021-01-13 11:54:40 +01:00
#!/bin/sh
2022-04-22 15:34:12 +02:00
incdir = $( dirname $0 ) /../../../testprogs/blackbox
2021-01-13 11:54:40 +01:00
. $incdir /subunit.sh
. $incdir /common_test_fns.inc
failed = 0
smbclient = " $BINDIR /smbclient "
smbcontrol = " $BINDIR /smbcontrol "
ldbmodify = " $BINDIR /ldbmodify "
ldbsearch = " $BINDIR /ldbsearch "
wbinfo = " $BINDIR /wbinfo "
global_inject_conf = $( dirname $SMB_CONF_PATH ) /global_inject.conf
SERVER_FQDN = $( echo " $SERVER . $REALM " | awk '{print tolower($0)}' )
TRUST_BASE_DN = $( $ldbsearch -H ldap://$TRUST_SERVER -b "" -s base defaultNamingContext | awk '/^defaultNamingContext/ {print $2}' )
2022-04-22 15:34:12 +02:00
if [ $? -ne 0 ] ; then
echo "Could not find trusted base DN" | subunit_fail_test "test_idmap_ad"
exit 1
2021-01-13 11:54:40 +01:00
fi
#
# Add POSIX ids to trusted domain
#
2022-04-22 15:34:12 +02:00
add_posix_ids( )
{
cat <<EOF | $ldbmodify -H ldap://$TRUST_SE RVER \
-U " $TRUST_DOMAIN \Administrator% $TRUST_PASSWORD "
2021-01-13 11:54:40 +01:00
dn: CN = Administrator,CN= Users,$TRUST_BASE_DN
changetype: modify
add: uidNumber
uidNumber: 2500000
EOF
2022-04-22 15:34:12 +02:00
cat <<EOF | $ldbmodify -H ldap://$TRUST_SE RVER \
-U " $TRUST_DOMAIN \Administrator% $TRUST_PASSWORD "
2021-01-13 11:54:40 +01:00
dn: CN = Domain Users,CN= Users,$TRUST_BASE_DN
changetype: modify
add: gidNumber
gidNumber: 2500001
EOF
2022-04-22 15:34:12 +02:00
cat <<EOF | $ldbmodify -H ldap://$TRUST_SE RVER \
-U " $TRUST_DOMAIN \Administrator% $TRUST_PASSWORD "
2021-01-13 11:54:40 +01:00
dn: CN = Domain Admins,CN= Users,$TRUST_BASE_DN
changetype: modify
add: gidNumber
gidNumber: 2500002
EOF
}
#
# Remove POSIX ids from trusted domain
#
2022-04-22 15:34:12 +02:00
remove_posix_ids( )
{
cat <<EOF | $ldbmodify -H ldap://$TRUST_SE RVER \
-U " $TRUST_DOMAIN \Administrator% $TRUST_PASSWORD "
2021-01-13 11:54:40 +01:00
dn: CN = Administrator,CN= Users,$TRUST_BASE_DN
changetype: modify
delete: uidNumber
uidNumber: 2500000
EOF
2022-04-22 15:34:12 +02:00
cat <<EOF | $ldbmodify -H ldap://$TRUST_SE RVER \
-U " $TRUST_DOMAIN \Administrator% $TRUST_PASSWORD "
2021-01-13 11:54:40 +01:00
dn: CN = Domain Users,CN= Users,$TRUST_BASE_DN
changetype: modify
delete: gidNumber
gidNumber: 2500001
EOF
2022-04-22 15:34:12 +02:00
cat <<EOF | $ldbmodify -H ldap://$TRUST_SE RVER \
-U " $TRUST_DOMAIN \Administrator% $TRUST_PASSWORD "
2021-01-13 11:54:40 +01:00
dn: CN = Domain Admins,CN= Users,$TRUST_BASE_DN
changetype: modify
delete: gidNumber
gidNumber: 2500002
EOF
}
add_posix_ids
2022-04-22 15:34:12 +02:00
echo "" >$global_inject_conf
2021-01-13 11:54:40 +01:00
$smbcontrol winbindd reload-config
$wbinfo -p
2022-04-22 15:34:12 +02:00
test_smbclient "test_winbind_ignore_domains_ok_ntlm_ip" "ls" " // $SERVER_IP /tmp " -U $TRUST_DOMAIN /$TRUST_USERNAME %$TRUST_PASSWORD || failed = $( expr $failed + 1)
test_smbclient "test_winbind_ignore_domains_ok_ntlm_fqdn" "ls" " // $SERVER_FQDN /tmp " -U $TRUST_DOMAIN /$TRUST_USERNAME %$TRUST_PASSWORD || failed = $( expr $failed + 1)
test_smbclient "test_winbind_ignore_domains_ok_krb5" "ls" " // $SERVER_FQDN /tmp " -U $TRUST_USERNAME @$TRUST_REALM %$TRUST_PASSWORD -k || failed = $( expr $failed + 1)
2021-01-13 11:54:40 +01:00
2022-04-22 15:34:12 +02:00
echo " winbind:ignore domains = $TRUST_DOMAIN " >$global_inject_conf
2021-01-13 11:54:40 +01:00
$smbcontrol winbindd reload-config
$wbinfo -p
2022-04-22 15:34:12 +02:00
test_smbclient_expect_failure "test_winbind_ignore_domains_fail_ntlm_ip" "ls" " // $SERVER_IP /tmp " -U $TRUST_DOMAIN /$TRUST_USERNAME %$TRUST_PASSWORD || failed = $( expr $failed + 1)
test_smbclient_expect_failure "test_winbind_ignore_domains_fail_ntlm_fqdn" "ls" " // $SERVER_FQDN /tmp " -U $TRUST_DOMAIN /$TRUST_USERNAME %$TRUST_PASSWORD || failed = $( expr $failed + 1)
test_smbclient_expect_failure "test_winbind_ignore_domains_fail_krb5" "ls" " // $SERVER_FQDN /tmp " -U $TRUST_USERNAME @$TRUST_REALM %$TRUST_PASSWORD -k || failed = $( expr $failed + 1)
2021-01-13 11:54:40 +01:00
2022-04-22 15:34:12 +02:00
echo "" >$global_inject_conf
2021-01-13 11:54:40 +01:00
$smbcontrol winbindd reload-config
$wbinfo -p
remove_posix_ids
testok $0 $failed