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

многопользовательское крепление kerberos cifs из AD PDC

Я пытаюсь смонтировать папку cifs на сервере ubuntu с многопользовательской поддержкой из Windows DC.

Я могу получить пользовательские билеты kerberos как root на сервере и смонтировать каталог с помощью kerberos без каких-либо проблем. Но я не хочу монтировать каталог как пользователь, он должен быть установлен как многопользовательский и доступен для всех пользователей на сервере.

Возможно, это просто общий вопрос о понимании, может, вы поправите меня, что здесь не так.

Я экспортировал файл keytab на DC и поместил его как глобальный файл keytab /etc/krb5.keytab

root@remote:/etc# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   3 cifs/remote.mbeya.domain@MBEYA.domain (des-cbc-md5) 

Но я все еще не могу смонтировать каталог, потому что ключ недоступен ошибка монтирования (126): требуемый ключ недоступен

syslog показывает мне это:

May 17 11:37:22 remote cifs.upcall: key description: cifs.spnego;0;0;3f000000;ver=0x2;host=nina.mbeya.domain.org;ip4=10.10.10.17;sec=krb5;uid=0x0;creduid=0x0;user=root;pid=0x599b
May 17 11:37:22 remote cifs.upcall: ver=2
May 17 11:37:22 remote cifs.upcall: host=nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: ip=10.10.10.17
May 17 11:37:22 remote cifs.upcall: sec=1
May 17 11:37:22 remote cifs.upcall: uid=0
May 17 11:37:22 remote cifs.upcall: creduid=0
May 17 11:37:22 remote cifs.upcall: user=root
May 17 11:37:22 remote cifs.upcall: pid=22939
May 17 11:37:22 remote cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_1000
May 17 11:37:22 remote cifs.upcall: find_krb5_cc: /tmp/krb5cc_1000 is owned by 1000, not 0
May 17 11:37:22 remote cifs.upcall: krb5_get_init_creds_keytab: -1765328378
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: getting service ticket for cifs/nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: cifs_krb5_get_req: unable to resolve (null) to ccache
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328245)
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: getting service ticket for host/nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: cifs_krb5_get_req: unable to resolve (null) to ccache
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328245)

Я ценю любой вклад по этому поводу.

Спасибо

Вы заметили, что вы можете получить «пользовательские билеты Kerberos как root», но у вас есть ошибка «ключ недоступен».

find_krb5_cc: /tmp/krb5cc_1000 is owned by 1000, not 0

Эта ошибка означает, что mount.cifs не имеет доступа к билету Kerberos, поскольку не принадлежит пользователю root (идентификатор пользователя: 0), который вызывает mount.cifs. Я предполагаю, что корень билетов Kerberos, полученный с паролем пользователя, был предназначен для использования только этим пользователем.

Теперь почему mount хочет, чтобы билет принадлежал root? Эта часть первой строки:

uid=0x0;creduid=0x0;user=root;

может быть причиной. Mount.cifs в настоящее время выполненный как корень. Вы можете попробовать изменить uid и creduid на useruid пользователя.

Я не знаю, откуда вы вызываете mount.cifs, так что извините, если это немного расплывчато. Не могли бы вы дать команду mount.cifs, которую вы выполняете, и ее параметры?

Что касается общего ресурса, «доступного для всех пользователей на сервере»: у меня pam_mount запускается после того, как пользователь входит в систему и монтирует общий ресурс с его именем пользователя, паролем и их билетом Kerberos, поэтому я не использую keytab. Я вызываю эту команду монтирования:

mount -t cifs //<SERVER>/<VOLUME> <MOUNTPOINT> -o username=%(USER),sec=krb5,domain=<DOMAIN>,cruid=%(USERUID),uid=%(USERUID),gid=%(USERGID),rw

Добавьте авторизованных пользователей в одну группу. Также установите file_mode = и dir_mode = на правильные разрешения для группы, чтобы иметь доступ для чтения / записи к файлу, что-то вроде 770.