На днях столкнулся с очень интересной ситуацией. Никак не мог примонтировать сетевую шару с помощью pam_mount в Ubuntu. На других дистрибутивах все отлично монтировалось. SUSE монтирует, Mint монтирует. А вот Ubuntu, на основе которой тот же Mint и основан, ну ни как не хотела создавать заветную папочку в /mnt.

Для начала хотелось бы отметить, для чего это вообще может быть нужно. Казалось бы, есть на машине samba и хватит. Вытащи себе ссылку на рабочий стол и пользуйся. Но не все так просто, особенно когда сервер требует авторизации и находится в Windows-домене.

В моём случае настраивалась машина для рядового пользователя. Обычного менеджера, которому нужен интернет, офисные программы, RDP... Ну вы поняли. Кроме того, менеджеру необходима работа с почтой. Вот тут то и начинается проблема.

Файлы сотрудников находятся на отдельном сервере и зачастую людям требуется вставить в письмо какое-нибудь вложение из сетевого каталога. К сожалению, замечательный Thunderbird не воспринимает вложения из samb-ы. Ни в Gtk+, ни в Qt.

Одним из вариантов решения проблемы как раз и выступает модуль pam_mount. Устанавливается командой:

sudo apt-get install libpam-mount

Он монтирует нужную вам шару туда, куда вы захотите. А дальше хоть на рабочий стол вытаскивайте, хоть в “Избранное” вашего файлового менеджера. И в Thunderbird можно спокойно вкладывать файлы.

Настраивается модуль достаточно просто. В файле /etc/security/pam_mount.conf.xml, после <!-- Volume definitions --> нужно вставить что-то похожее на:

<volume user="*" fstype="cifs" server="server" path="Folder1/Folder2" mountpoint="/mnt/MyShare" options="rw,noperm" />

Как видно, в параметре server указывается имя сервера. Убедитесь, что сервер пингуется по имени. Если это не так, то проверьте настройки сети. Так же можно прописать информацию о сервере в /etc/hosts/. В path указывается путь до нужной шары. Параметр mountpoint позволяет задать вам путь, по которому будет смонтирована ваша шара. Подробнее о настройках модуля можно прочитать здесь. Там много интересного с переменными. Например, можно монтировать в папку каждого отдельного пользователя и т.д.

Тем не менее, у меня по-прежнему ничего не монтировалось после перезагрузки. Долго искал ошибку в конфигурации, но все было напрасно. Наконец пошел смотреть логи. Оказалось, что в Ubuntu, по какой-то причине, нет поддержки cifs и nfs из коробки. Если в двух словах, то нужная нам cifs - это сетевая файловая система, которая и указана в конфигурации pam_mount. Мне понятно, что из Ubuntu всеми силами стараются сделать user friendly дистрибутив и скорее всего разработчики посчитали, что обычному пользователю это никогда не пригодится. Но могли бы уж и не жадничать несколькими сотнями килобайт.

В общем, после установки необходимых пакетов все заработало. Ставится все обычным способом:

sudo apt-get install cifs-utils

sudo apt-get install nfs-common