Для автоматического монтирования разделяемых файловых ресурсов при входе пользователя используется pam модуль pam_mount, предоставляемый пакетом pam_mount, то есть для автоматического монтирования разделяемых файловых ресурсов на компьютере-клиенте должны быть установлены пакет cifs-utils и pam_mount:
Если вы используете РЕД ОС версии 7.1 или 7.2, выполните команду:
yum install cifs-utils pam_mount
Если вы используете РЕД ОС версии 7.3 и старше, выполните команду:
dnf install cifs-utils pam_mount
Настройка модуля pam_mount осуществляется с помощью конфигурационного файла /etc/security/pam_mount.conf.xml
Описание возможностей модуля pam_mount и формат его конфигурационного файла приведены в руководстве man для pam_mount и pam_mount.conf.
Для монтирования с помощью pam-mount разделямых файловых ресурсов в конфигурационном файле должны быть указаны параметра монтируемого тома, например:
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> <!-- See pam_mount.conf(5) for a description. --> <pam_mount> <!-- debug should come before everything else, since this file is still processed in a single pass from top-to-bottom --> <debug enable="1" /> <!-- Volume definitions --> <logout wait="50000" hup="1" term="1" kill="1" /> <cifsmount>mount.cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS) </cifsmount> <!-- pam_mount parameters: General tunables --> <!-- Описание тома, который должен монтироваться --> <volume fstype="cifs" server="127.0.0.1" path="share1" mountpoint="/media/%(USER)" options="user=username,pass=password,sec=ntlm"/> <!-- <luserconf name=".pam_mount.conf.xml" /> --> <!-- Note that commenting out mntoptions will give you the defaults. You will need to explicitly initialize it with the empty string to reset the defaults to nothing. --> <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" /> <!-- <mntoptions deny="suid,dev" /> <mntoptions allow="*" /> <mntoptions deny="*" /> --> <mntoptions require="nosuid,nodev" /> <logout wait="0" hup="no" term="no" kill="no" /> <!-- pam_mount parameters: Volume-related --> <mkmountpoint enable="1" remove="true" /> </pam_mount>
server — машина, откуда производится монтирование. Обычно, если сеть не является доменной структурой, допустимо использование IPv4 адреса.
path — каталог, который необходимо смонтировать с сервера
mountpoint — точка монтированя, другими словами — куда монтировать ресурс.
options — атрибуты монтирования
В приведённом выше примере разделяемый ресурс при входе любого пользователя монтируется в каталог /media/username. При этом выбраны опции монтирования, позволяющие осуществлять доступ к смонтированным данным в соответствии с правилами мандатного разграничения доступа. Если указать в параметрах тома mountpoint=/home/%(USER)/share1, то разделяемый ресурс будет монтироваться в подкаталог /share1/ домашнего каталога пользователя.
Для того, чтобы монтирование корректно выполнялось при входе с ненулевой меткой безопасности, нужно изменить PAM-стек так, чтобы автоматическое монтирование с помощью pam_mount выполнялось после определения значений мандатных атрибутов пользователя и создания домашнего каталога. Для этого:
Добавить в файлы /etc/pam.d/postlogin вызова соответствующих модулей :
session optional pam_mount.so
Использование Kerberos при использовании модуля pam_mount
При использовании с аутентификацией Kerberos в строке опций монтирования должен быть указан параметр аутентификации sec=krb5i (предпочтительно с точки зрения безопасности, но требует больше ресурсов) или sec=krb5. В этом случае при монтировании будет использоваться текущий кэш Kerberos пользователя. Так же можно будет добавить атрибут disable_interactive к модулю pam_mount
session optional pam_mount.so disable_interactive
Атрибут disable_interactive необходим, чтобы модуль не запрашивал пароль пользователя повторно
В строке опций монтирования должен присутствовать параметр cruid=%(USER), поскольку монтирование во время создания сессии выполняется от имени привилегированного пользователя.
Для точки монтирования mountpoint должен быть указан отдельный каталог, например: /media/ad_share.
Пример:
path="share" mountpoint="/media/ad_share" options="user=%(USER),rw,setuids,perm,soft,sec=krb5i,cruid=%(USERUID),iocharset=utf8"
при подключении сетевой папки на windows server 2003 в опции монтирования надо дописать параметр vers=1.0, а так же логин и пароль не должны содержать крилических символов