Pam mount

Материал из База знаний Etersoft
Перейти к: навигация, поиск

Автоматическое монтирование сетевых ресурсов с помощью pam_mount

Введение

PAM(Pluggable Authentication Modules) - подключаемые модули аутентификации. Они позволяют произвести аутентификацию пользователя, управлять распределением системных ресурсов, а так же выполнять какие-либо операции перед тем, как пользователь получит доступ к системным службам.

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

Установка

yum install pam_mount или apt-get install pam_mount (нужное подчеркнуть).


Общие положения

Для работы pam_mount необходимо подключить его, определив в /etc/pam.d/auth*.

Все инструкции, в которых указывается "что" и "для какого пользователя" хранятся в виде обычного xml-файла в /etc/security/pam_mount.conf.xml. Настройки хранящиеся в этом файле едины для всех пользователей, если нужно определить индивидуальные настройки для конкрентного пользователя, то они задаются в домашнем каталоге пользователя в файле .pam_mount.conf.xml (он обязатьно должен быть скрытым).

 */etc/pam.d/auth - в разных системах файл описывающий подключение pam-модулей обслуживающих авторизацию пользователя называются по разному:
 /etc/pam.d/auth - Debian
 /etc/pam.d/login - Ubuntu
 /etc/pam.d/system-auth - Mandriva, ALT Linux.

Подключение pam_mount

Модуль должен подключаться в файле описывающем авторизацию пользователя в системе(все в контексте /etc/pam.d), на примере ALT Linux это /etc/pam.d/system-auth:

 auth            optional        pam_mount.so ## обязательно в секции auth, потому что для подключения некоторых сетевых ресурсов требуется пароль(smbfs/cifs,ftp), который вводится при авторизации
 auth		  required	  pam_tcb.so shadow fork prefix=$2a$ count=8 nullok use_first_pass ## последний параметр говорит использовать пароль, который вводился для первого описаного модуля.
 account         required	  pam_tcb.so shadow fork
 password	  required	  pam_passwdqc.so config=/etc/passwdqc.conf
 session	  required	  pam_tcb.so
 session         required	  pam_mktemp.so
 session	  required	  pam_limits.so
 session         optional        pam_mount.so ##  в секции session, для подключения самой сетевой шары.

Настройка pam_mount

pam_mount.conf.xml находится в /etc/security

pam_mount.conf.xml - это простой xml-файл, который делится на 2-и основных секции:

1) определение монтируемых ресурсов

2) специфичные опции

определение монтируемых ресурсов

Описание подключаемого сетевого ресурса заключается в тег <volume />, в нем через пробел указываются:

 имя пользователя(user="наш_пользователь")
 тип файловой системы(fstype="тип_фс") ## nfs,smbfs,cifs,ncpfs,fuse,encfs13
 сетевой адрес сервева(server="адрес_севрева") ## dns имя или ip
 сетевая шара(path="/путь/до/шары") ## для nfs ресурса это путь до шары, для cifs ресурса это название ресурса.
 точка монтирования(mountpoint="/путь_до_точки_монтирования")
 опции options="..." ## как правило это опции для cifs ресурса

Таким образом строка для монтирования ресурса может выглядеть так:

 <volume user="test" fstype="nfs" server="test" path="/net/test" mountpoint="/mnt/nfs" /> ## Так монтируется nfs ресурс
 <volume user="test" fstype="cifs" server="test" path="common_share" mountpoint="/mnt/cifs" options="iocharset=utf8,rw,wine,noperm" /> ## Пароль для cifs ресурса не указывается, его вводят при логине в системе.

специфичные опции

<debug enable="1" /> ## включить дебаг

<logout wait="микросекунды" hup="yes/no" term="yes/no" kill="yes/no" /> ## Как зеавершать процесы при разлогинивании пользователя. Можно запретить убивать процессы, работающие по смонтированной фс, что позволит при случайном обрыве конекта завершить корректно процесс.

<luserconf name=".pam_mount.conf.xml" /> ## Позволяет определить имя файла пользовательского pam_mount.conf

<mntoptions allow="options,..." /> ## Определяет какие опции разрешены в пользовательском pam_mount.conf <mntoptions deny="options,..." /> ## Определяет какие опции запрещены в пользовательском pam_mount.conf <mntoptions require="options,..." /> ## Определяет какие опции должны присутствовать в пользовательском файле pam_mount.conf <path>directories...</path> ## Определяет окружение пользователя <mkmountpoint enable="1" remove="true" /> ## Определяет надо ли создавать точку монтирования при логине и удалять ее при разлогинивании.


Так же допускается использование макропеременных:

 %(USER) ## Логин пользователя
 %(DOMAIN_NAME) и %(DOMAIN_USER) ## при работе через winbind
 %(USERUID) и %(USERGID) ## uid и gid пользователя 
 %(GROUP) ## имя группы для %(USERGID).

Таким образом эти макропеременные можно использовать для указания каталога монтирования и определенных опций:

 <volume user="test" fstype="nfs" server="test" path="/net/test" mountpoint="/home/%(USER)" />
 <volume user="test" fstype="cifs" server="test" path="common_share" mountpoint="/home/%(USER)" options="iocharset=utf8,rw,wine,noperm,uid=%(USERUID),gid=%(USERGID)" />

Вопросы и Ответы

Ссылки