SSSD/AD: различия между версиями

Материал из ALT Linux Wiki
(pam_mount: дополнительная настройка параметра success в /etc/pam.d/system-auth-sss)
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
Подготовка клиентской станции (подключение к домену AD), настройка и установка аутентификации и авторизации c помощью сервиса SSSD.
Подготовка клиентской станции (подключение к домену AD), настройка и установка аутентификации и авторизации c помощью сервиса SSSD.


= Подключение к домену =
== Подключение к домену ==
Нижеописанная процедура настройки автоматизирована с помощью пакета {{pkg|task-auth-ad-sssd}} и введения в домен через ЦУС (acc) - {{pkg|alterator-auth}} версии >=0.31
Нижеописанная процедура настройки автоматизирована с помощью пакета {{pkg|task-auth-ad-sssd}} и введения в домен через ЦУС (acc) {{pkg|alterator-auth}} версии >=0.31
  $ su -
  $ su -
  # apt-get update; apt-get install task-auth-ad-sssd
  # apt-get update; apt-get install task-auth-ad-sssd
  # acc
  # acc
{{note|Однако ознакомиться со всей статьей никто не запрещает}}
{{note|Однако ознакомиться со всей статьей никто не запрещает.}}


==Настройки сети==
=== Настройки сети ===


Для подключением к домену проводим проверку настроек сети:
Для подключением к домену проводим проверку настроек сети:
* в качестве первичного DNS (первая запись nameserver в /etc/resolv.conf) должен быть указан DNS-сервер домена
* в качестве первичного DNS (первая запись nameserver в {{path|/etc/resolv.conf}}) должен быть указан DNS-сервер домена:
  domain dom.loc
  domain dom.loc
  search dom.loc
  search dom.loc
Строка 22: Строка 22:
client2.dom.loc</source>
client2.dom.loc</source>


==Настройки kerberos==
=== Настройки kerberos ===


Далее проверяем клиентские настройки kerberos через DNS. В данном случае, для домена '''dom.loc.''':
Далее проверяем клиентские настройки kerberos через DNS. В данном случае, для домена '''dom.loc.''':
Строка 29: Строка 29:
$ dig _kerberos._tcp.dom.loc SRV | grep ^_kerberos
$ dig _kerberos._tcp.dom.loc SRV | grep ^_kerberos
_kerberos._tcp.dom.loc. 900    IN      SRV    0 100 88 server.dom.loc.</source>
_kerberos._tcp.dom.loc. 900    IN      SRV    0 100 88 server.dom.loc.</source>
И задаем их в файле /etc/krb5.conf
И задаем их в файле {{path|/etc/krb5.conf}}:
* kerberos-имя домена ("рилма", realm):
* kerberos-имя домена ("рилма", realm):
   default_realm = DOM.LOC
   default_realm = DOM.LOC
Строка 49: Строка 49:
         renew until 20.12.2016 04:13:18</source>
         renew until 20.12.2016 04:13:18</source>


==Настройки samba==
=== Настройки samba ===


Для подключения рабочей станции в домену требуется утилита ''net'' из пакета '''samba-common-tools''', кроме того стоит сразу установить пакет samba-client с набором клиентских утилит:
Для подключения рабочей станции в домену требуется утилита ''net'' из пакета {{pkg|samba-common-tools}}, кроме того стоит сразу установить пакет {{pkg|samba-client}} с набором клиентских утилит:
  # apt-get install samba-client
  # apt-get install samba-client


В файле /etc/samba/smb.conf, минимально, необходимо задать следующие параметры в секции [global]:
В файле {{path|/etc/samba/smb.conf}}, минимально, необходимо задать следующие параметры (в секции [global]):
* kerberos-имя домена:
* kerberos-имя домена:
  realm = DOM.LOC
  realm = DOM.LOC
Строка 63: Строка 63:
* уровень безопасности Active Directory:
* уровень безопасности Active Directory:
  security = ADS
  security = ADS
* Метод хранения kerberos-ключей рабочей станции:
* метод хранения kerberos-ключей рабочей станции:
  kerberos method = system keytab
  kerberos method = system keytab
* алгоритм преобразования SID'ов:
* алгоритм преобразования SID'ов:
Строка 104: Строка 104:
         browseable = No
         browseable = No
         printable = Yes</source>
         printable = Yes</source>
Ошибка {{path|rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)}} до перезагрузки исправляется командой:
Ошибка '''rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)''' до перезагрузки исправляется командой:
<pre># ulimit -n 16384</pre>
<pre># ulimit -n 16384</pre>
Что бы лимиты действовали и после перезагрузки необходимо отредактировать файл {{path|/etc/security/limits.conf}}:
Что бы лимиты действовали и после перезагрузки необходимо отредактировать файл {{path|/etc/security/limits.conf}}:
Строка 110: Строка 110:
root            -      nofile          16384</pre>
root            -      nofile          16384</pre>


==Подключение к домену==fgnhjfghdfgh
=== Подключение к домену ===


<source lang="text"># net ads join -U administrator
<source lang="text"># net ads join -U administrator
Строка 117: Строка 117:
Joined 'CLIENT2' to dns domain 'dom.loc'</source>
Joined 'CLIENT2' to dns domain 'dom.loc'</source>


Проверка наличия kerberos-ключей для рабочей станции
Проверка наличия kerberos-ключей для рабочей станции:
<source lang="text"># klist -k -e
<source lang="text"># klist -k -e
Keytab name: FILE:/etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
Строка 138: Строка 138:
   7 CLIENT2$@DOM.LOC (arcfour-hmac)</source>
   7 CLIENT2$@DOM.LOC (arcfour-hmac)</source>


= Настройка SSSD =
== Настройка SSSD ==


==Установка sssd-модуля==
=== Установка sssd-модуля ===


Для работы с Active Directory в SSSD имеется специальный AD-провайдер:
Для работы с Active Directory в SSSD имеется специальный AD-провайдер:
  apt-get install sssd-ad
  # apt-get install sssd-ad


Минимальный конфигурационный файл (/etc/sssd/sssd.conf) для sssd-ad выглядит следующим образом:
Минимальный конфигурационный файл ({{path|/etc/sssd/sssd.conf}}) для sssd-ad выглядит следующим образом:
<source lang="text">[sssd]
<source lang="text">[sssd]
config_file_version = 2
config_file_version = 2
Строка 178: Строка 178:
Опция '''use_fully_qualified_names = True''' включает режим полных имён (включая домен) для пользователей и групп.
Опция '''use_fully_qualified_names = True''' включает режим полных имён (включая домен) для пользователей и групп.


Опция '''fallback_homedir = /home/%d/%u''' задает домашнюю папку для доменных пользователей. При такой записи %d означает FQDN. Здесь вручную можно указать имя рабочей группы, например /home/DOM/%u
Опция '''fallback_homedir = /home/%d/%u''' задает домашнюю папку для доменных пользователей. При такой записи %d означает FQDN. Здесь вручную можно указать имя рабочей группы, например /home/DOM/%u.


Опция '''cache_credentials''' включает режим кэширования аутентификационных данных (полезно при недоступности домена)
Опция '''cache_credentials''' включает режим кэширования аутентификационных данных (полезно при недоступности домена).


Опция '''user''' позволяет задать имя пользователя, под которым будет исполняться непривилегированная часть службы SSSD
Опция '''user''' позволяет задать имя пользователя, под которым будет исполняться непривилегированная часть службы SSSD.


{{Attention|Пока не решена задача [[https://bugzilla.altlinux.org/show_bug.cgi?id=34124 #34124]] опция '''user''' должна быть задана, как '''root'''.}}
{{Attention|Пока не решена задача [[https://bugzilla.altlinux.org/show_bug.cgi?id=34124 #34124]] опция '''user''' должна быть задана, как '''root'''.}}


==Настройка авторизации==
=== Настройка авторизации ===


Авторизационные NSS-базы GLibc настраиваются в файле /etc/nsswitch.conf
Авторизационные NSS-базы GLibc настраиваются в файле {{path|/etc/nsswitch.conf}}.
При использовании sssd, требуется внести исправления в следующие строчки:
При использовании sssd, требуется внести исправления в следующие строчки:
<source lang="text"># grep sss /etc/nsswitch.conf
<source lang="text"># grep sss /etc/nsswitch.conf
Строка 197: Строка 197:
netgroup:  files sss</source>
netgroup:  files sss</source>


==Настройка аутентификации==
=== Настройка аутентификации ===


Для изменения настроек аутентификации (параметров PAM) в ALT Linux используется утилита ''control'':
Для изменения настроек аутентификации (параметров PAM) в ALT Linux используется утилита ''control'':
  # control system-auth sss
  # control system-auth sss


==Запуск и проверка сервиса sssd==
=== Запуск и проверка сервиса sssd ===


Если все настройки выполнены правильно, то после запуска сервиса sssd:
Если все настройки выполнены правильно, то после запуска сервиса sssd:
Строка 230: Строка 230:
# systemctl start sssd</pre>}}
# systemctl start sssd</pre>}}


= Подключение файловых ресурсов =
== Подключение файловых ресурсов ==


Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).
Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).


== Через pam_mount ==
{{:pam_mount}}
 
В этом случае заданный ресурс подключается с заданного сервера <u>автоматически при каждом входе</u> доменным пользователем.
 
1. Устанавливаем {{pkg|pam_mount}}:
apt-get install pam_mount
 
2. Прописываем pam_mount в схему {{path|/etc/pam.d/system-auth-sss}}:
 
(перед {{term|auth            substack        system-auth-sss-only}})
auth            optional        pam_mount.so
и в секцию session:
session        optional        pam_mount.so
 
Дополнительно, в секциях auth и session нужно изменить параметр success=4 на success=5, так как изменилась нумерация строк.
 
3. Устанавливаем правило монтирования ресурса в файле {{path|/etc/security/pam_mount.conf.xml}} (перед тегом <cifsmount>):
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source>
где
* '''uid="10000-2000200000"''' — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD)
* '''server="c228"''' — имя сервера с ресурсом
* '''path="sysvol"''' — имя файлового ресурса
* '''mountpoint="~/share"''' — путь монтирования в домашней папке пользователя
Опционально можно добавить
* '''sgrp="group_name"''' — имя группы, при членстве пользователя в которой, папка будет примонтирована
{{Attention|Обязательно указывайте настоящее имя сервера в параметре {{term|server}}, а не имя домена}}
 
{{Attention|По умолчанию для монтирования используется smb версии 1.0, если у вас он отключен, то укажите в параметрах версию 2 или 3.
<source lang="xml"><volume uid="10000-2000200000" fstype="cifs" server="c228" path="sysvol" mountpoint="~/share" options="sec=krb5,vers=2.0,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /></source>
}}
 
Для проверки можно попробовать смонтировать ресурс в сессии:
<source> mount.cifs //server/share /mnt/  -o vers=2.0,user=altlinux</source>
Также можно проверить доступность ресурса с помощью smbclient, например:
<source>
smbclient -L server -U altlinux -m SMB2
</source>


== Ссылки ==
== Ссылки ==

Текущая версия от 08:14, 17 августа 2022

Подготовка клиентской станции (подключение к домену AD), настройка и установка аутентификации и авторизации c помощью сервиса SSSD.

Подключение к домену

Нижеописанная процедура настройки автоматизирована с помощью пакета task-auth-ad-sssd и введения в домен через ЦУС (acc) — alterator-auth версии >=0.31

$ su -
# apt-get update; apt-get install task-auth-ad-sssd
# acc
Примечание: Однако ознакомиться со всей статьей никто не запрещает.


Настройки сети

Для подключением к домену проводим проверку настроек сети:

  • в качестве первичного DNS (первая запись nameserver в /etc/resolv.conf) должен быть указан DNS-сервер домена:
domain dom.loc
search dom.loc
nameserver 192.168.1.148

обычно, в таком качестве выступает один или несколько, контроллеров домена:

$ host dom.loc
dom.loc has address 192.168.1.148
  • имя подключаемого, клиентского узла должно быть определено, как FQDN. Например, для рабочей станции client2 в домене dom.loc:
$ hostname 
client2.dom.loc

Настройки kerberos

Далее проверяем клиентские настройки kerberos через DNS. В данном случае, для домена dom.loc.:

$ dig _kerberos._udp.dom.loc SRV | grep ^_kerberos
_kerberos._udp.dom.loc. 900     IN      SRV     0 100 88 server.dom.loc.
$ dig _kerberos._tcp.dom.loc SRV | grep ^_kerberos
_kerberos._tcp.dom.loc. 900     IN      SRV     0 100 88 server.dom.loc.

И задаем их в файле /etc/krb5.conf:

  • kerberos-имя домена ("рилма", realm):
 default_realm = DOM.LOC
  • отключаем поиск kerberos-имени домена через DNS:
 dns_lookup_realm = false
  • оставляем (или включаем) поиск kerberos-настроек домена через DNS:
 dns_lookup_kdc = true

Если настройки сети и kerberos выполнены правильно, то мы может получить kerberos TGT от контроллера домена:

$ kinit administrator
Password for administrator@DOM.LOC: 
Warning: Your password will expire in 21 days on Пн 09 янв 2017 15:35:39
$ klist 
Ticket cache: KEYRING:persistent:500:krb_ccache_Bw75rEI
Default principal: administrator@DOM.LOC

Valid starting       Expires              Service principal
19.12.2016 04:13:25  19.12.2016 14:13:25  krbtgt/DOM.LOC@DOM.LOC
        renew until 20.12.2016 04:13:18

Настройки samba

Для подключения рабочей станции в домену требуется утилита net из пакета samba-common-tools, кроме того стоит сразу установить пакет samba-client с набором клиентских утилит:

# apt-get install samba-client

В файле /etc/samba/smb.conf, минимально, необходимо задать следующие параметры (в секции [global]):

  • kerberos-имя домена:
realm = DOM.LOC
  • краткое имя домена, соответствующее имени рабочей группы:
workgroup = DOM
  • имя рабочей станции в сетевом окружении:
netbios name = CLIENT2
  • уровень безопасности Active Directory:
security = ADS
  • метод хранения kerberos-ключей рабочей станции:
kerberos method = system keytab
  • алгоритм преобразования SID'ов:
idmap config * : backend = tdb


Набор полученных настроек можно проверить с помощью утилиты testparm:

$ testparm 
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER

Press enter to see a dump of your service definitions

# Global parameters
[global]
        realm = DOM.LOC
        server string = Samba Server Version %v
        workgroup = DOM
        log file = /var/log/samba/log.%m
        max log size = 50
        kerberos method = system keytab
        security = ADS
        idmap config * : backend = tdb
        cups options = raw


[homes]
        comment = Home Directories
        browseable = No
        read only = No


[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = No
        printable = Yes

Ошибка rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) до перезагрузки исправляется командой:

# ulimit -n 16384

Что бы лимиты действовали и после перезагрузки необходимо отредактировать файл /etc/security/limits.conf:

*                -       nofile          16384
root             -       nofile          16384

Подключение к домену

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- DOM
Joined 'CLIENT2' to dns domain 'dom.loc'

Проверка наличия kerberos-ключей для рабочей станции:

# klist -k -e
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   7 host/client2.dom.loc@DOM.LOC (des-cbc-crc) 
   7 host/CLIENT2@DOM.LOC (des-cbc-crc) 
   7 host/client2.dom.loc@DOM.LOC (des-cbc-md5) 
   7 host/CLIENT2@DOM.LOC (des-cbc-md5) 
   7 host/client2.dom.loc@DOM.LOC (aes128-cts-hmac-sha1-96) 
   7 host/CLIENT2@DOM.LOC (aes128-cts-hmac-sha1-96) 
   7 host/client2.dom.loc@DOM.LOC (aes256-cts-hmac-sha1-96) 
   7 host/CLIENT2@DOM.LOC (aes256-cts-hmac-sha1-96) 
   7 host/client2.dom.loc@DOM.LOC (arcfour-hmac) 
   7 host/CLIENT2@DOM.LOC (arcfour-hmac) 
   7 CLIENT2$@DOM.LOC (des-cbc-crc) 
   7 CLIENT2$@DOM.LOC (des-cbc-md5) 
   7 CLIENT2$@DOM.LOC (aes128-cts-hmac-sha1-96) 
   7 CLIENT2$@DOM.LOC (aes256-cts-hmac-sha1-96) 
   7 CLIENT2$@DOM.LOC (arcfour-hmac)

Настройка SSSD

Установка sssd-модуля

Для работы с Active Directory в SSSD имеется специальный AD-провайдер:

# apt-get install sssd-ad

Минимальный конфигурационный файл (/etc/sssd/sssd.conf) для sssd-ad выглядит следующим образом:

[sssd]
config_file_version = 2
services = nss, pam

domains = DOM.LOC
debug_level = 1

; Should be used until ALT#34124 will be resolved
user = root

[nss]
debug_level = 1

[pam]
debug_level = 1

[domain/DOM.LOC]
 id_provider = ad
 auth_provider = ad
 chpass_provider = ad

;ldap_id_mapping = False
 default_shell = /bin/bash
 fallback_homedir = /home/%d/%u
;use_fully_qualified_names = True
;cache_credentials = true

Опция ldap_id_mapping = False позволяет включить использование POSIX атрибутов, определённых в Active Directory, вместо встроенной, однозначной трансляции SID'ов. Основная проблема применения POSIX-атрибутов состоит в том, что они могут быть не заданы. В этом случае сервис sssd не загрузится.

Опция use_fully_qualified_names = True включает режим полных имён (включая домен) для пользователей и групп.

Опция fallback_homedir = /home/%d/%u задает домашнюю папку для доменных пользователей. При такой записи %d означает FQDN. Здесь вручную можно указать имя рабочей группы, например /home/DOM/%u.

Опция cache_credentials включает режим кэширования аутентификационных данных (полезно при недоступности домена).

Опция user позволяет задать имя пользователя, под которым будет исполняться непривилегированная часть службы SSSD.

Внимание! Пока не решена задача [#34124] опция user должна быть задана, как root.


Настройка авторизации

Авторизационные NSS-базы GLibc настраиваются в файле /etc/nsswitch.conf. При использовании sssd, требуется внести исправления в следующие строчки:

# grep sss /etc/nsswitch.conf
passwd:     files sss
shadow:     tcb files sss
group:      files sss
services:   files sss
netgroup:   files sss

Настройка аутентификации

Для изменения настроек аутентификации (параметров PAM) в ALT Linux используется утилита control:

# control system-auth sss

Запуск и проверка сервиса sssd

Если все настройки выполнены правильно, то после запуска сервиса sssd:

# service sssd start

будут доступны авторизационные данные для пользователя administrator:

# getent passwd administrator
administrator:*:1310400500:1310400513:Administrator:/home/DOM.LOC/administrator:/bin/bash
# id administrator
uid=1310400500(administrator) gid=1310400513(domain users) группы=1310400513(domain users),1310400520(group policy creator owners),1310400519(enterprise admins),1310400512(domain admins),1310400518(schema admins),1310400572(denied rodc password replication group)
# su - administrator
[administrator@client2 ~]$ whoami 
administrator
[administrator@client2 ~]$ pwd
/home/DOM.LOC/administrator

Или для administrator@dom.loc, если установлена опция use_fully_qualified_names = True:

# id administrator@dom.loc
uid=1310400500(administrator@DOM.LOC) gid=1310400513(domain users@DOM.LOC) группы=1310400513(domain users@DOM.LOC),1310400520(group policy creator owners@DOM.LOC),1310400519(enterprise admins@DOM.LOC),1310400512(domain admins@DOM.LOC),1310400518(schema admins@DOM.LOC),1310400572(denied rodc password replication group@DOM.LOC)
Внимание! Если машина до этого была в других доменах или есть проблемы со входом пользователей рекомендуется очистить кэш sssd:
# systemctl stop sssd
# rm -f /var/lib/sss/db/*
# rm -f /var/lib/sss/mc/*
# systemctl start sssd


Подключение файловых ресурсов

Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).


Заданный файловый ресурс подключается с заданного сервера автоматически при каждом входе доменным пользователем.

1. Устанавливаем pam_mount:

# apt-get install pam_mount

Если осуществляется подключение файловых ресурсов по протоколу CIFS (SMB), то установите cifs-utils:

# apt-get install cifs-utils
Внимание! Для того, чтобы файловые ресурсы, подключенные с помощью pam_mount, корректно отключались при завершении сеанса, установите пакет systemd-settings-enable-kill-user-processes и перезагрузите систему:
# apt-get install systemd-settings-enable-kill-user-processes


2. Прописываем pam_mount в схему аутентификации по умолчанию. В конец файла (/etc/pam.d/system-auth) добавьте строки

session         [success=1 default=ignore] pam_succeed_if.so  service = systemd-user quiet
session         optional        pam_mount.so disable_interactive

Параметр disable_interactive нужен для того, чтобы pam_mount не спрашивал пароль. Первая строка предназначена для того, чтобы не монтировать дважды при запуске systemd --user. Подробнее: https://wiki.archlinux.org/title/pam_mount#Login_manager_configuration

Пример файла /etc/pam.d/system-auth при аутентификации доменного пользователя под SSSD:

#%PAM-1.0

auth            [success=4 perm_denied=ignore default=die]      pam_localuser.so
auth            [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
auth            [default=1]     pam_permit.so
auth            substack        system-auth-sss-only
auth            [default=1]     pam_permit.so
auth            substack        system-auth-local-only
auth            substack        system-auth-common

account         [success=4 perm_denied=ignore default=die]      pam_localuser.so
account         [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
account         [default=1]     pam_permit.so
account         substack        system-auth-sss-only
account         [default=1]     pam_permit.so
account         substack        system-auth-local-only
account         substack        system-auth-common

password        [success=4 perm_denied=ignore default=die]      pam_localuser.so
password        [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
password        [default=1]     pam_permit.so
password        substack        system-auth-sss-only
password        [default=1]     pam_permit.so
password        substack        system-auth-local-only
password        substack        system-auth-common

session         [success=4 perm_denied=ignore default=die]      pam_localuser.so
session         [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet
session         [default=1]     pam_permit.so
session         substack        system-auth-sss-only
session         [default=1]     pam_permit.so
session         substack        system-auth-local-only
session         substack        system-auth-common
session         [success=1 default=ignore] pam_succeed_if.so  service = systemd-user
session         optional        pam_mount.so disable_interactive

3. Устанавливаем правило монтирования ресурса в файле /etc/security/pam_mount.conf.xml:

<volume uid="10000-2000200000"
        fstype="cifs"
        server="c253.test.alt"
        path="sysvol"
        mountpoint="~/share"
        options="sec=krb5i,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/>

где

  • uid="10000-2000200000" — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD);
  • server="c253.test.alt" — имя сервера с ресурсом;
  • path="sysvol" — имя файлового ресурса;
  • mountpoint="~/share" — путь монтирования в домашней папке пользователя.

Опционально можно добавить:

  • sgrp="group_name" — имя группы, при членстве пользователя в которой, папка будет примонтирована.
Внимание! Обязательно указывайте настоящее имя сервера в параметре server, а не имя домена


Параметр sec=krb5i более безопасный, но требует больше вычислительных ресурсов. Вместо него можно указать sec=krb5.

Пример файла /etc/security/pam_mount.conf.xml:

С комментариями для изучения
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">

<!--
  См. pam_mount.conf(5) для описания.
-->

<pam_mount>

<!-- 
  Отладка должна быть раньше всего остального,
  т.к. этот файл все равно считываются за
  один проход сверху вниз
-->
<debug enable="0" />

<!-- Определение монтируемых томов -->
<volume uid="10000-2000200000"
        fstype="cifs"
        server="c253.test.alt"
        path="sysvol"
        mountpoint="~/share"
        options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />


<!--
  pam_mount parameters: General tunables
-->

<!--
<luserconf name=".pam_mount.conf.xml" />
-->

<!--
Обратите внимание, что если закомментировать mntoptions, то будут заданы значения по умолчанию.
Необходимо явно инициализировать его пустой строкой чтобы сбросить значения на по-умолчанию.
-->

<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec" />

<!--
<mntoptions deny="suid,dev" />
<mntoptions allow="*" />
<mntoptions deny="*" />
-->

<mntoptions require="nosuid,nodev" />

<!--
  Требуется наличие ofl из hxtools
-->

<logout wait="0" hup="no" term="no" kill="no" />

<!-- Параметры pam_mount: связанные тома -->

<mkmountpoint enable="1" remove="true" />

</pam_mount>
Без комментариев для "продакшена"
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">

<pam_mount>

<debug enable="0" />

<volume uid="10000-2000200000"
        fstype="cifs"
        server="c253.test.alt"
        path="sysvol"
        mountpoint="~/share"
        options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />


<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec" />

<mntoptions require="nosuid,nodev" />

<logout wait="0" hup="no" term="no" kill="no" />

<mkmountpoint enable="1" remove="true" />

</pam_mount>

Для отладки подключения замените в файле /etc/security/pam_mount.conf.xml

 <debug enable="0" />

на

 <debug enable="1" />

При этом отладочные сообщения будут показываться в журнале Journald.

Вы можете сменить механизм монтирования отдав его на откуп systemd. Для этого в pam_mount.xml.conf можно задать\переопределить опции cifsmount, umount

  <cifsmount>systemd-mount -A -G -q -t cifs %(COMBOPATH) %(MNTPT) -o uid=%(USERUID),gid=%(USERGID),username=%(USER),%(OPTIONS)</cifsmount>
  <umount>systemd-mount -u %(MNTPT)</umount>

Советы

  • Для того, чтобы подключенная папка не показывалась на рабочем столе Mate, следует в параметры добавить x-gvfs-hide.
  • Если при выходе пользователя всё равно файловый ресурс остаётся подключенным, отмонтируйте его и удалите файл /run/pam_mount/<имя_пользователя>

Ссылки

Ссылки