У нас есть несколько клиентов Ubuntu, которые монтируют защищенные Kerberos дома NFS. Сервер прекрасно работает с существующими клиентами, поэтому мы можем предположить, что ldap и kerberos в порядке.
Нам удалось настроить ldap на клиентах ubuntu, и kinit может получить нам билеты для пользователей ldap. Когда root получает root-билет с помощью kinit, мы можем смонтировать общие ресурсы nfs.
Чтобы пользователи могли монтировать свои дома, мы настроили autofs. Однако это не работает, поскольку кажется, что autofs выполняет монтирование как «root». Однако у root нет билетов, поэтому монтировать не удастся - см. Прилагаемую выдержку журнала из rpc.gssd. Обратите внимание, что наша установка kerberos использует не принципалы машины, а принципалы пользователей. Как мы можем заставить autofs передавать правильный uid в gssd?
handling gssd upcall (/var/lib/nfs/rpc_pipefs/nfs/clnt10)
handle_gssd_upcall: 'mech=krb5 uid=0 '
handling krb5 upcall (/var/lib/nfs/rpc_pipefs/nfs/clnt10)
process_krb5_upcall: service is '<null>'
getting credentials for client with uid 0 for server purple.physcip.uni-stuttgart.de
CC file '/tmp/krb5cc_554' being considered, with preferred realm 'PURPLE.PHYSCIP.UNI-STUTTGART.DE'
CC file '/tmp/krb5cc_554' owned by 554, not 0
WARNING: Failed to create krb5 context for user with uid 0 for server purple.physcip.uni-stuttgart.de
Ubuntu 11.10 Desktop Autofs5
Выход кинит. Идентификатор пользователя - 65678. Область и имя пользователя изменены с целью соблюдения конфиденциальности.
usr01@ubuntuclnt01:/$ klist
Ticket cache: FILE:/tmp/krb5cc_65678_ed3816
Default principal: usr01@REALM
Valid starting Expires Service principal
11/18/11 17:18:57 11/19/11 03:18:57 krbtgt/REALM
renew until 11/19/11 17:18:57
Обновить: Если обнаружен отчет об ошибке 2,5-летней давности, описывающий именно это явление. https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/368153#5
Кажется, что (ubuntu) linux не может уживаться с защищенными домашними томами Kerberos по дизайну - в то время как практически любая другая операционная система может это сделать - даже Mac OSX!