Рейтинг:0

(21.10) клиент gssd не может видеть кеш учетных данных пользователя при монтировании nfsv4 + kerberos

флаг pr

Я пытаюсь сделать пользовательское подключение NFSv4 ноутбука (spigot, 21.10) к серверу (двойка, 20.04 LTS) с помощью Kerberos и по какой-то причине rpc.gssd не может видеть мой кеш учетных данных. Обратите внимание, что это на 100% проблема на стороне клиента, поскольку сервер NFS уже отлично работает с клиентом Mac.

В моем /etc/fstab на ноуте у меня есть следующее:

deuce:/home/dorian /net/dorian nfs4 sec=krb5p,soft,user,noauto 0 0

Когда я пытаюсь устанавливать что как я:

dorian@spigot:~$ mount -t nfs4 -vvvv двойка:/home/dorian
mount.nfs4: тайм-аут установлен на сб 18 декабря 10:41:06 2021
mount.nfs4: попытка текстовых параметров «sec=krb5p,soft,vers=4.2,addr=172.16.0.254,clientaddr=172.16.0.19»
mount.nfs4: mount(2): Отказано в доступе
mount.nfs4: доступ запрещен сервером при монтировании deuce:/home/dorian

rpc.gssd -f -vvv выдает следующее:

handle_gssd_upcall: 'mech=krb5 uid=0 service=* enctypes=18,17,16,3,1,2' (nfs/clnt12)
krb5_use_machine_creds: uid 0 tgtname (нулевой)
Полное имя хоста для «deuce.office.srs.biz» — «deuce.office.srs.biz».
Полное имя хоста для «spigot» — «spigot».
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи keytab для «[email protected]»
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи таблицы ключей для «[email protected]»
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи keytab для «root/[email protected]»
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи keytab для «nfs/[email protected]»
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи keytab для «host/[email protected]»
ОШИБКА: файл таблицы ключей «/etc/krb5.keytab» не найден при запуске сканирования таблицы ключей для «ФАЙЛ: /etc/krb5.keytab»
ОШИБКА: файл таблицы ключей «/etc/krb5.keytab» не найден при запуске сканирования таблицы ключей для «ФАЙЛ: /etc/krb5.keytab»
ОШИБКА: файл таблицы ключей «/etc/krb5.keytab» не найден при запуске сканирования таблицы ключей для «ФАЙЛ: /etc/krb5.keytab»
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи keytab для «SPIGOT$@»
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи keytab для «root/spigot@»
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи keytab для «nfs/spigot@»
Файл таблицы ключей «/etc/krb5.keytab» не найден при получении записи keytab для «host/spigot@»
ОШИБКА: файл таблицы ключей «/etc/krb5.keytab» не найден при запуске сканирования таблицы ключей для поиска «ФАЙЛ: /etc/krb5.keytab»
ОШИБКА: файл таблицы ключей «/etc/krb5.keytab» не найден при запуске сканирования таблицы ключей для поиска «ФАЙЛ: /etc/krb5.keytab»
ОШИБКА: файл таблицы ключей «/etc/krb5.keytab» не найден при запуске сканирования таблицы ключей для поиска «ФАЙЛ: /etc/krb5.keytab»
ОШИБКА: gssd_refresh_krb5_machine_credential: в таблице ключей /etc/krb5.keytab не найдено пригодной для использования записи таблицы ключей для соединения с хостом deuce.office.srs.biz
ОШИБКА: Не найдены учетные данные для подключения к серверу deuce.office.srs.biz
делать сброс ошибок

(В основном это нытье об отсутствии keytab; если бы keytab присутствовал, вместо этого он ныл бы о том, что в нем нет принципалов.)

Другими словами, это даже не пытаться для чтения кэша Kerberos. Действительно, это говорит идентификатор пользователя = 0 что имеет смысл, потому что rpc.gssd действительно запускается от имени root. Но источник gssd_proc.c предполагает, что это должно передать вызывающему пользователю перед попыткой поиска кэша учетных данных. Однако это не похоже на то, что он действительно делает это. Скорее предполагается получить uid из волшебного файла в том странном rpc_pipefs смонтировать, и если я strace rpc.gssd -f -vvv я вижу, что значение в этом файле voodoo RPC равно мех = krb5 uid = 0 сервис = * ¦, так что все, что должно было установить это для uid моего пользователя, этого не делает.

(Стоит отметить, что на основе источника, что попытка использования субъекта-службы инициируется комбинацией сервис= присутствует в этом файле pipefs вместе с идентификатор пользователя = 0.)

Итак, мой вопрос: что отвечает за настройку содержимого этого файла (/run/rpc_pipefs/nfs/$CLIENT/krb5), и какое заклинание мне нужно произнести, чтобы оно говорило правильно?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.