[devel] Обновление до krb5-1.15.1

Evgeny Sinelnikov sin на altlinux.org
Пн Авг 21 00:27:58 MSK 2017


20 августа 2017 г., 19:19 пользователь Alexander Bokovoy
<ab at altlinux.org> написал:
> 2017-08-20 13:16 GMT+03:00 Evgeny Sinelnikov <sin at altlinux.org>:
>> 20 августа 2017 г., 9:08 пользователь Alexander Bokovoy
>> <ab at altlinux.org> написал:
>>> 2017-08-20 6:20 GMT+03:00 Evgeny Sinelnikov <sin at altlinux.org>:
>>>> Здравствуйте,
>>>>
>>>> в связи с тем, что патчи от 1.16.x всё-таки имеют смысл обновление
>>>> затянулось. В итоге было решено две проблемы:
>>>>
>>>> Первая потребовала вот такого патча:
>>>>
>>>> diff --git a/krb5/src/tests/gssapi/t_ccselect.py
>>>> b/krb5/src/tests/gssapi/t_ccselect.py
>>>> index 6be6b4e..47d9ce6 100755
>>>> --- a/krb5/src/tests/gssapi/t_ccselect.py
>>>> +++ b/krb5/src/tests/gssapi/t_ccselect.py
>>>> @@ -53,7 +53,7 @@ if 'No Kerberos credentials available' not in output:
>>>>  ccdir = os.path.join(r1.testdir, 'cc')
>>>>  ccname = 'DIR:' + ccdir
>>>>  r1.env['KRB5CCNAME'] = ccname
>>>> -r2.env['KRB5CCNAME'] = ccname
>>>> +r2.env['KRB5CCNAME'] = ccname + '2'
>>>> .
>>>>  # Use .k5identity from testdir and not from the tester's homedir.
>>>>  r1.env['HOME'] = r1.testdir
>>>>
>>>> Может быть кто-нибудь подскажет как оно работает в Fedora?
>>> ccname DIR:... -- это коллекция ccaches, а не один. Может хранить
>>> билеты из разных доменов. Смысл теста как раз в том, чтобы проверить,
>>> выбирает ли ccselect правильный билет из коллекции по имени принципала
>>> из соответствующего домена.
>>>
>>>
>>>> Смысл в том, что на один и тот же кеш ключей задётся два разных kinit.
>>> Это не один и тот же ccache. Внутри коллекции отдельные ccache
>>> хранятся отдельными файлами (в DIR:, в других типах коллекций они
>>> хранятся иными способами). Каждый отдельный ccache в коллекции
>>> соответствует своему домену. Поэтому kinit foo at BAR.Z и kinit foo at Z.BAR
>>> могут сохранить соответствующие билеты в одной коллекции.
>>>
>>> Не надо ломать то, что вы не понимаете.
>>
>> Спасибо, я очень надеялся, что вы поясните. Давайте, разбирёмся в деталях.
>>
>> А каков тогда критерий выбора из коллекции? По имени host at localhost'
>> можно выбрать как host/localhost.localdomain at KRBTEST2.COM, так и
>> host/localhost.localdomain at KRBTEST.COM. Разве не так?
>>
>> Или смысл fallback в том, чтобы проигнорировать @KRBTEST2.COM для
>> host/localhost.localdomain и найти его для alice?
>> Или в том, что host at localhost - это не host/localhost.localdomain и
>> его, вообще нет в CC, и поэтому нужно взять @KRBTEST.COM?
> При работе с ccache collection код использует тот реалм, который
> указан в имени принципала. Если он там отсутствует, то применяется
> тот, который указан в качестве умолчания в krb5.conf.
>
> Далее, если в krb5.conf есть dns_canonicalize_hostname=true, то
> localhost будет разрешен через getaddrinfo() и превратится в
> localhost.localdomain.
> Поскольку реалм не указан и прямого соответствия в domain_realm секции
> krb5.conf нет, то используется реалм по умолчанию.
>
>> _____________________
>>
>> ./t_ccselect.py:
>>
>> [...]
>> gsslocal = 'h:host at localhost'
>> [...]
>> # Show current ccache
>> r1.run(['../../clients/klist/klist', '-A'])
>>
>> # Check ccache selection using a fallback realm (default realm).
>> output = r1.run(['./t_ccselect', gsslocal])
>> if output != (alice + '\n'):
>>     fail('alice not chosen via default realm fallback')
>> output = r2.run(['./t_ccselect', gsslocal])
>> if output != (zaphod + '\n'):
>>     fail('zaphod not chosen via default realm fallback')
>> [...]
>>
>> *** [33] Executing: ../../clients/klist/klist -A
>> Ticket cache: DIR::/usr/src/RPM/BUILD/krb5-1.15.1/src/tests/gssapi/testdir/cc/tktDK3fgK
>> Default principal: zaphod at KRBTEST2.COM
>>
>> Valid starting     Expires            Service principal
>> 08/20/17 10:03:33  08/21/17 10:03:33  krbtgt/KRBTEST2.COM at KRBTEST2.COM
>> 08/20/17 10:03:33  08/21/17 10:03:33  host/localhost.localdomain at KRBTEST2.COM
>> 08/20/17 10:03:33  08/21/17 10:03:33  host/foo.krbtest2.com@
>> 08/20/17 10:03:33  08/21/17 10:03:33  host/foo.krbtest2.com at KRBTEST2.COM
>>
>> Ticket cache: DIR::/usr/src/RPM/BUILD/krb5-1.15.1/src/tests/gssapi/testdir/cc/tkt
>> Default principal: alice at KRBTEST.COM
>>
>> Valid starting     Expires            Service principal
>> 08/20/17 10:03:33  08/21/17 10:03:33  krbtgt/KRBTEST.COM at KRBTEST.COM
>> 08/20/17 10:03:33  08/21/17 10:03:33  host/localhost.localdomain at KRBTEST.COM
>> 08/20/17 10:03:33  08/21/17 10:03:33  host/foo.krbtest.com@
>> 08/20/17 10:03:33  08/21/17 10:03:33  host/foo.krbtest.com at KRBTEST.COM
>> *** [33] Completed with return code 0
>> *** [34] Executing: ./t_ccselect h:host at localhost
>> gss_accept_sec_context: Unspecified GSS failure.  Minor code may
>> provide more information
>> gss_accept_sec_context: Request ticket server
>> host/localhost.localdomain at KRBTEST2.COM not found in keytab (ticket
>> kvno 1)
>> *** [34] Completed with return code 1
>> *** Failure: ./t_ccselect failed with code 1.
>> *** Last command (#34): ./t_ccselect h:host at localhost
>> *** Output of last command:
>> gss_accept_sec_context: Unspecified GSS failure.  Minor code may
>> provide more information
>> gss_accept_sec_context: Request ticket server
>> host/localhost.localdomain at KRBTEST2.COM not found in keytab (ticket
>> kvno 1)
> Можешь добавить дамп окружений до исполнения этого теста?

Мне доступен chroot в hasher'е. Могу. Но что есть "дамп окружений" и
как его получить ?



-- 
Sin (Sinelnikov Evgeny)


Подробная информация о списке рассылки Devel