Рейтинг:0

Ошибки при монтировании общего ресурса Windows (cifs) с помощью pam_mount

флаг cn
ZDV

У меня есть компьютер с Ubuntu 21.10, подключенный к контроллеру домена Samba AD. Все работает отлично - Kerberos работает (может получить билеты с помощью kinit), работает winbind (может получить информацию о пользователях и группах), я могу войти в систему с учетными данными домена.

И монтирование общих ресурсов вручную тоже работает, как с авторизацией Kerberos, так и с авторизацией ntlmssp:

sudo mount -t cifs //сервер/путь /mount/point -o имя_пользователя=ПОЛЬЗОВАТЕЛЬ,домен=ДОМЕН,sec=ntlmssp
sudo mount -t cifs //сервер/путь /mount/point -o имя_пользователя=ПОЛЬЗОВАТЕЛЬ,домен=ДОМЕН,sec=krb5

Установка имени пользователя, такого как username=USER@DOMAIN, тоже работает.

Проблема в том, что я не могу заставить pam_mount работать, когда пользователь входит в систему через gnome!

Использование krb5 в pam_mount.conf.xml следующим образом

<volume
      fstype="cifs"
      server="server"
      path="path"
      mountpoint="mount/point"
      options="sec=krb5"
  />

Выдает ошибку в auth.conf

(mount.c:72): ошибка монтирования (126): требуемый ключ недоступен

Использование ntlmssp в pam_mount.conf.xml следующим образом

<volume
      fstype="cifs"
      server="server"
      path="path"
      mountpoint="mount/point"
      options="sec=ntlmssp"
  />

Выдает другую ошибку в auth.conf

(pam_mount.c:173): conv->conv(...): ошибка диалога 

После включения отладки в pam_mount я также вижу точную команду монтирования, которую она выполняет, в auth.log, и она идентична тем, которые работают выше, когда я запускаю их вручную.

Я пробовал следующее:

  • играл с параметрами монтирования в разных комбинациях: vers=3.0, _netdev,user,sec
  • заставил Kerberos хранить билеты в файлах в /tmp/krb5cc_%u с конфигурацией pam_winbind
  • перечитал кучу форумов

Любые идеи?

Рейтинг:0
флаг cn
ZDV

Я наконец-то понял. Вот рабочая конфигурация тома pam_mount:

<volume sgrp="DOMAIN\domain users" fstype="cifs" server="my.server.com" path="path/to/share" mountpoint="/mount/point" options="sec=krb5,cruid=%(USERUID),noexec,rw,nofail" />

Важнейшими требованиями оказались:

  • доменное имя сервера. Kerberos не может выдавать билеты для ips, поэтому нужно указать доменное имя.
  • cruid=%(USERUID) вариант.Mount выполняется от имени root и по умолчанию ищет файл билета, принадлежащий пользователю root, поэтому мы должны установить идентификатор пользователя фактического владельца билета.
  • sgrp="ДОМЕН\пользователи домена" атрибут. pam_mount запускается при каждом новом сеансе аутентификации, включая системных пользователей, таких как gdm. Получив неудачную попытку входа в систему, подключив общий ресурс, он, похоже, кэширует его и терпит неудачу даже для авторизованного пользователя. Поэтому нам нужно явно указать пользователей, для которых мы хотим смонтировать общий ресурс. Это можно сделать с помощью ряда атрибутов пользовательского управления, доступных в pam_mount.

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

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