Назад | Перейти на главную страницу

Расположение кеша билетов Kerberos в Windows для нескольких пользователей

Я использую несколько драйверов odbc, подключающихся к hive и impala, и в большей части документации указано, что местоположение билета Kerberos должно определяться переменной окружения KRB5CCNAME, например C: \ temp \ kr5ccache

Эта настройка работает нормально, но я хотел бы предоставить нескольким пользователям возможность подключать ODBC с разными учетными данными, поэтому расположение кеша билетов не может быть статическим, а должно зависеть от пользователя. Итак, мой вопрос в том, как настроить переменную env в Windows Server 2012, которая будет отличаться для каждого пользователя. Что-то вроде unix ~ / .tmp / krb5ccache.

Спасибо

А ~ тильда, встречающаяся в качестве первого символа аргумента в оболочке Unix / Linux / bash, совпадает с $HOME переменная окружения. Эквивалент Windows %USERPROFILE%.

Вы можете использовать любую пользовательскую переменную, начиная со строки, расширенной до. Попробуйте свой собственный с открытого cmd окно: set | find /I "%USERNAME%" и результат выглядит как

APPDATA=C:\Users\{username}\AppData\Roaming
LOCALAPPDATA=C:\Users\{username}\AppData\Local
PSModulePath=C:\Users\{username}\Documents\WindowsPowerShell\Modules
USERPROFILE=C:\Users\{username}

Следовательно, вы можете использовать что-то вроде следующего фрагмента кода

set "KRB5CCNAME=%USERPROFILE%\kr5ccache"
rem ensure that above directory exists:
2>NUL md "%KRB5CCNAME%"