Я часто пользуюсь pam_mount и тут я собрал наиболее часто возникающие ошибки. Для того, чтобы включить вывод debug-сообщений нужно отредактировать /etc/security/pam_mount.conf.xml
sudo nano /etc/security/pam_mount.conf.xml
И в строке <debug enable=“0” /> 0 нужно заменить на 1 или 2. Логи будут писаться в /var/log/auth.log
Проверять текущее состояние удобно с помощью команды:
su -l $USER
В результате ее выполнения создается еще одна сессия с текущим пользователем и pam_mount отрабатывает.
Первая проблема, с которой обычно сталкиваешься это сообщения типа:
(pam_mount.c:709): No volumes to umount
При этом, в пользовательском файлике ~/.pam_mount.conf.xml монтируемые шары прописаны.
Скорее всего, в файлике /etc/security/pam_mount.conf.xml не раскомментирована строка <luserconf name=“.pam_mount.conf.xml” />,
В результате пользовательский конфигурационный файл не читается и никаких volumes to mount нет.
Для того, чтобы модуль работал корректно, нужно отредактировать файл /etc/pam.d/common-session.
По-умолчанию, модуль pam_mount.so имеет флаг optional и располагается в файле /etc/pam.d/common-session после модуля pam_lsass.so, который имеет флаг sufficient.
Таким образом модуль опциональный модуль pam_mount.so игнорируется, при корректном прохождении достаточного для аутентификации модуля pam_lsass.so.
Чтобы монтирование работало корректно нужно поставить строчку session optional pam_mount.so перед строкой с pam_lsass.so
При монтировании pam_mount просит ввести пароль.
Во-первых можно отключить ввод пароля с помощью опции disable_interactive в файлах /etc/pam.d/common-auth и /etc/pam.d/common-session. ее нужно указать в после названия модуля pam_mount.so через пробел. Примерно так:
session optional pam_mount.so disable_interactive
Однако, это актуально если пароль у учетной записи пустой и такая настройка может привести к тому, что пароль не спрашивается, но и ресурсы не монтируются с сообщениями типа:
mount error(13): Permission denied
Чтобы все работало правильно нужно в файлике /etc/pam.d/common-auth вставить auth optional pam_mount.so перед pam_lsass.so. Примерно так:
auth optional pam_mount.so auth [success=2 default=ignore] pam_lsass.so try_first_pass auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass