Участник:Petr-akhlamov/Pam mount.conf Manual RU
Имя
pam_mount.conf - Описание конфигурационного файла pam_mount
Обзор
Конфигурационный файл pam_mount определяет:
- мягкие настройки по умолчанию для команд, которые будет выполнять pam_mount,
- сообщения, которые он будет показывать,
- тома, которые нужно монтировать при входе в систему.
Начиная с версии pam_mount 0.18, конфигурационный файл записывается в формате XML, что позволяет упростить кодовую базу pam_mount и в то же время дает конечному пользователю свободу форматирования. Специальные символы <, > и &, используемые в самом XML, должны быть закодированы как <, > и &, соответственно;
Кроме того, в области "" символ " должен кодироваться как ", но эти три/четыре символа все равно вряд ли будут часто встречаться.
Не используйте комментарии внутри элементов, принимающих дословный текст, например <fusermount></fusermount>. Это не обрабатывается синтаксическим анализатором XML-дерева pam_mount.
Определения томов
Тома определяются с помощью элемента <volume>, который в основном принимает параметры в виде атрибутов, например:
<volume user="joe" fstype="nfs" server="fsbox" path="/home/%(USER)" mountpoint="/bigdisk/%(USER)" />
И определяет, что и для кого монтировать. Существует множество настроек, которые описаны в данном разделе.
Простое управление пользователями
Следующие атрибуты управляют тем, будет ли смонтирован том после того, как пользователь вошел в систему. По умолчанию монтирование томов применяется ко всем пользователям, а указание атрибутов ограничивает его только заданными условиями, т.е. происходит их логическое объединение (лог. операция И). Существует более мощный и многословный механизм задания сложных условий, описанный ниже в разделе "Расширенное управление пользователями".
user="username"
Ограничить доступ к тому для указанного пользователя, идентифицируемого по имени
uid="number" или uid="number-number"
Ограничение доступа к тому для указанного пользователя (пользователей), идентифицированного по UID или диапазону UID.
pgrp="groupname"
Ограничение доступа к тому для пользователей, для которых группа, указанная в значении, является основной группой.
gid="number" или gid="number-number"
Ограничение доступа к тому для пользователей, для которых группа(ы), указанная в GID или диапазоне GID, является основной группой.
sgrp="groupname"
Ограничение доступа к тому для пользователей, которые являются членами группы, указанной в имени (либо как первичная, либо как вторичная группа).
Конфигурация тома
С помощью следующих атрибутов выбираются том-источник, место назначения, опции и т.д.
fstype="type"
Тип файловой системы, который может быть любым, понятным ядру, пользовательскому пространству и pam_mount. Если в fstype указан специальный тип pam_mount, то pam_mount будет работать с ним. В противном случае fstype передается в mount(8), который, в свою очередь, ищет в пользовательском пространстве помощника /sbin/mount.fstype и запускает его, если он существует, а в любом другом случае mount(8) вызовет mount(2) для непосредственного монтирования ядром. mount(8) знает об автоматическом fstype, что может быть полезно в некоторых случаях. Если не указывать атрибут fstype, то подразумевается fstype="auto". Обратите внимание, что монтирование с использованием auto может быть неудачным, если модуль ядра файловой системы еще не загружен, поскольку mount(8) будет проверять /proc/partitions.
Типы fstype cifs, smbfs, ncpfs, fuse, nfs и nfs переопределяются pam_mount, и мы запускаем соответствующие вспомогательные программы напрямую, а не вызываем mount(8) с базовым набором аргументов по умолчанию, который часто недостаточен для сетевых файловых систем. Подробнее см. раздел "Примеры" этой manpage ниже.
noroot="1"
Вызов программы mount без привилегий root. По умолчанию для fuse fstype установлено значение yes, поскольку по умолчанию, чтобы получить доступ к файлам, тома FUSE должны монтироваться от имени пользователя, вошедшего в систему.
server="name"
Определяет сервер, к которому следует подключаться в случае указания типов файловых систем - cifs, smbfs, ncpfs и nfs. Для всех остальных типов fs этот атрибут игнорируется. Вместо этого можно указать сервер в атрибуте path, но при этом необходимо придерживаться специального синтаксиса, требуемого конкретным типом fs. (Например, в CIFS используется "//server/path", а в NFS - "server:path" и т.д.).
path="path"
Этот обязательный атрибут задает расположение тома относительно сервера (если он указан).
mountpoint="directory"
Здесь указывается каталог назначения, в который монтируется том. "~" указывает на домашний каталог пользователя, который присутствует в базе данных passwd, в соответствии с семантикой sh. "~name" не поддерживается. Если этот атрибут опущен, то местоположение считывается из файла /etc/fstab, который также требует, чтобы path был устройством или исходным каталогом записи fstab.
options="..."
Здесь указываются опции монтирования. Если опция опущена и используется /etc/fstab (см. "mountpoint"), то опции также будут взяты из fstab.
ssh="0" или ssh="1"
Опция ssh включает (zerossh, см. pmt-fd0ssh(1)) для данного тома передачу пароля к ssh через механизм, специфичный для ssh. Включите эту опцию для любого монтирования с использованием исполняемых файлов SSH, например, ccgfs или sshfs. Не включайте ее ни для чего другого, иначе вход в систему, скорее всего, завершится.
cipher="cipher"
Устанавливает название шифра для тома. Используется с параметром fstype=crypt.
fskeycipher="ciphertype"
Имя шифра OpenSSL для ключа fskey. Используется с шифром crypt fstype (dm-crypt и LUKS). Для непосредственной передачи содержимого файла в cryptsetup без расшифровки OpenSSL может быть использовано специальное ключевое слово "none".
fskeyhash="hash"
Имя хэша OpenSSL для ключа fskey.
fskeypath="path"
Путь к ключу файловой системы.
Переменные
В атрибутах и командах (см. следующий раздел) могут использоваться специальные заполнители или переменные, обозначаемые %(name). Они подставляются во время вызова команды.
%(USER)
Расширяется до имени пользователя, входящего в систему.
%(DOMAIN_NAME), %(DOMAIN_USER)
Winbind использует специальные UNIX-имена пользователей в виде "domain\username", а %(DOMAIN_NAME) и %(DOMAIN_USER) обеспечивают их разделение на части. Это удобно, когда имя ресурса на MSAD-сервере совпадает с именем пользователя, например, <volume fstype="cifs" server="fsbox" path="%(DOMAIN_USER)"/>.
%(USERUID), %(USERGID)
Числовые UID и GID основной группы пользователя, вошедшего в систему. Получаются с помощью функции getpw*(), а не getuid(). Их удобно использовать в сочетании с опциями монтирования uid= или gid=, например, <volume options="uid=%(USERUID)"/>. Обратите внимание, что для монтирования smbfs или cifs не нужно указывать uid=%(USERUID), так как это уже автоматически выполняется программой pam_mount.
%(GROUP)
Имя группы для %(USERGID).
Все остальные переменные, которые вы можете найти в исходном коде, являются внутренними для pam_mount и, скорее всего, не будут использованы в процессе монтирования.
Параметры pam_mount
Кроме томов, в pam_mount.conf.xml допускаются и другие элементы, управляющие поведением самого pam_mount.
Общие настраиваемые параметры
<debug enable="1" />
Включает вывод подробной информации при входе в систему на stderr и syslog. Некоторые программы не справляются с выводом на stderr, (см. doc/bugs.txt). 0 отключает отладку, 1 включает трассировку в pam_mount, а 2 дополнительно включает трассировку в mount.crypt. По умолчанию установлено значение 0. Поскольку файл конфигурации обрабатывается линейно, директива <debug> вступает в силу, как только ее обработают - поэтому рекомендуется помещать ее в начало файла, перед любыми значениями <volume>.
<logout wait="microseconds" hup="yes/no" term="yes/no" kill="yes/no" />.
Существуют программы, которые не завершаются при закрытии сеанса. (Это относится к "окончательному" закрытию, т.е. когда завершается последний сеанс пользователя.) Примерами могут быть процессы, все еще работающие в фоновом режиме; или сломанный менеджер сеансов X, который не завершил работу своих дочерних программ, или других программ X, которые не отреагировали на уведомление о завершении работы сервера X. pam_mount может быть настроен на завершение таких процессов и, по желанию, на ожидание перед отправкой команд.
<luserconf name=".pam_mount.conf.xml" />
Отдельные пользователи могут указывать дополнительные тома в файле по заданному имени относительно своего домашнего каталога. Наличие <luserconf> в главном конфигурационном файле обеспечивает эту возможность. Если эта функция включена, то пользователи могут монтировать и размонтировать любые указанные ими тома, на которые они имеют права владения (в случае локального монтирования). Процесс монтирования выполняется от имени суперпользователя. Это может иметь последствия для безопасности, поэтому по умолчанию эта возможность отключена. Конфигурационные файлы локального пользователя анализируются после монтирования всех томов из файла глобальной конфигурации, поэтому можно сначала монтировать домашние каталоги с помощью глобальной конфигурации, а затем монтировать последующие тома из конфигурационных файлов локального пользователя.
<mntoptions allow="options,..." />
Элементы <mntoptions> определяют, какие опции могут быть указаны в <volumes> в конфигурационных файлах для каждого пользователя (см. <luserconf>). К главному файлу это не относится. Указание <mntoptions> запрещено и игнорируется в конфигурациях для каждого пользователя. Список разрешений по умолчанию состоит из "nosuid,nodev", и это значение очищается, когда парсер конфигурации видит первый атрибут allow="...". При этом все последующие allow="..." являются суммирующимися.