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

Evgeny Sinelnikov sin на altlinux.org
Вс Авг 20 13:16:52 MSK 2017


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?


_____________________

./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)

Use --debug=NUM to run a command under a debugger.  Use
--stop-after=NUM to stop after a daemon is started in order to
attach to it with a debugger.  Use --help to see other options.


[builder at localhost gssapi]$
KRB5CCNAME=DIR:/usr/src/RPM/BUILD/krb5-1.15.1/src/tests/gssapi/testdir/cc
../../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



-- 
Sin (Sinelnikov Evgeny)


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