Added resolv.conf search multidomain support

This commit is contained in:
Андрей Лимачко 2023-02-13 20:31:22 +04:00
parent e51e2f62b6
commit baf89ab40d
Signed by untrusted user: liannnix
GPG Key ID: 1D8EEB2E408272C0

View File

@ -376,19 +376,23 @@ check_resolv_conf()
compare_resolv_conf_with_default_realm() compare_resolv_conf_with_default_realm()
{ {
echo "SEARCH_DOMAIN = '$SEARCH_DOMAIN'" echo "SEARCH_DOMAINS = '$SEARCH_DOMAINS'"
echo "KRB5_DEFAULT_REALM = '$KRB5_DEFAULT_REALM'" echo "KRB5_DEFAULT_REALM = '$KRB5_DEFAULT_REALM'"
echo echo
local domain= local domain=
local realm= local realm=
domain=$(echo "$SEARCH_DOMAIN" | tr '[:upper:]' '[:lower:]') local retval=2
domains=$(echo "$SEARCH_DOMAINS" | tr '[:upper:]' '[:lower:]')
realm=$(echo "$KRB5_DEFAULT_REALM" | tr '[:upper:]' '[:lower:]') realm=$(echo "$KRB5_DEFAULT_REALM" | tr '[:upper:]' '[:lower:]')
if test -z "$realm"; then test -z "$realm" && return $retval
return 2 test -z "$domains" && return $retval
fi
test -n "$domain" || return 2 for domain in $domains; do
test "$domain" = "$realm" || return 2 test "$domain" = "$realm" && retval=0
done
return $retval
} }
check_smb_conf() check_smb_conf()
@ -678,22 +682,26 @@ init_vars()
SMB_NETBIOS_NAME=$(testparm -l -v -s 2>/dev/null | grep "^\s*netbios name\s*=" | sed -e 's/^\s*netbios name\s*=\s*//' -e 's/\s*$//') SMB_NETBIOS_NAME=$(testparm -l -v -s 2>/dev/null | grep "^\s*netbios name\s*=" | sed -e 's/^\s*netbios name\s*=\s*//' -e 's/\s*$//')
fi fi
SEARCH_DOMAIN= SEARCH_DOMAINS=
local search_line=
if test -f /etc/resolv.conf; then if test -f /etc/resolv.conf; then
SEARCH_DOMAIN=$(grep "^search\s\+" /etc/resolv.conf || true | sed -e 's/^search\s\+//' -e 's/\s/\n/' | head -1 ) search_line=$(grep "^search\s\+" /etc/resolv.conf)
SEARCH_DOMAINS=$(echo $search_line | sed -e 's/^search\s\+//' -e 's/\s\+$//' )
fi fi
KRB5_DEFAULT_REALM= KRB5_DEFAULT_REALM=
local krb5_default_realm_line=
if test -e /etc/krb5.conf; then if test -e /etc/krb5.conf; then
KRB5_DEFAULT_REALM=$(grep "^\s*default_realm\s\+" /etc/krb5.conf || true | sed -e 's/^\s*default_realm\s*=\s*//' -e 's/\s*$//') krb5_default_realm_line=$(grep "^\s*default_realm\s\+" /etc/krb5.conf)
KRB5_DEFAULT_REALM=$( echo "$krb5_default_realm_line" | sed -e 's/^\s*default_realm\s*=\s*//' -e 's/\s*$//')
fi fi
domain=$(echo "$SEARCH_DOMAIN" | tr '[:upper:]' '[:lower:]')
realm=$(echo "$KRB5_DEFAULT_REALM" | tr '[:upper:]' '[:lower:]') realm=$(echo "$KRB5_DEFAULT_REALM" | tr '[:upper:]' '[:lower:]')
DOMAIN_DOMAIN="$domain"
if test -n "$realm"; then if test -n "$realm"; then
DOMAIN_DOMAIN="$realm" DOMAIN_DOMAIN="$realm"
else
DOMAIN_DOMAIN=$(echo $SEARCH_DOMAINS | cut -d ' ' -f 1 | tr '[:upper:]' '[:lower:]')
fi fi
SYSTEM_AUTH="$(/usr/sbin/control system-auth)" SYSTEM_AUTH="$(/usr/sbin/control system-auth)"