У меня есть общий ресурс CIFS, который представляет долю домов пользователей на одном и том же UNC-пути для каждого пользователя. Для аутентификации используется билет Kerberos, который пользователь пересылает через свой сеанс SSH. Общий ресурс CIFS предоставляется autofs в моей конфигурации.
Строка в auto.master:
/cifs /etc/auto.cifs
auto.cifs
* -fstype=cifs,multiuser,cruid=${UID},sec=krb5 ://server/path/
Сервер является членом домена, который реализован с помощью sssd и realmd.
sssd.conf
[sssd]
domains = DOMAIN
config_file_version = 2
services = nss, pam, autofs
default_domain_suffix = DOMAIN
[domain/DOMAIN]
ad_domain = DOMAIN
krb5_realm = REALM
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
override_homedir = /cifs/%u
default_shell = /bin/bash
access_provider = ad
krb5_ccname_template=FILE:%d/krb5cc_%U
(Я заменил реальный домен и царство)
Идея заключалась в том, что пользователь, который подключается через SSH, получает свой домашний каталог с помощью директивы override_homedir sssd. Но теперь это сообщение отображается при входе в систему:
Could not chdir to home directory /cifs/user: No such file or directory
Но если я сделаю ls / cifs / user после входа в систему, это сработает.
Соответственно, я подозреваю, что chdir для / cifs / user выполняется до того, как билет kerberos станет доступен для autofs. Таким образом, монтировка не может пройти аутентификацию.
Об этом дополнительно свидетельствует следующая ошибка:
>> mount error(126): Required key not available
>> Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount(generic): failed to mount //server/path/ (type cifs) on /cifs/user
Есть ли у кого-нибудь идеи, как я могу заставить его работать (возможно, с autofs или без него), что пользовательский дом указывает на общий ресурс cifs?
С уважением, Ян