Autofs

Материал из ALT Linux Wiki

Общая информация

Работает следующим образом:

  • Задаётся каталог, в котором будет происходить подключение, например /mnt/auto/.
  • При необходимости обратиться к сетевой файловой системе, следует обратиться к каталогу с именем этой ФС в этом каталоге. Например /mnt/auto/server/share/.
  • При обращении будет произведена попытка смонтировать соответствующий сетевой ресурс.
  • При отсутствии обращения, после заданного таймаута, сетевой ресурс будет отмонтирован.

При этом, в нашем примере, каталог /mnt/auto может не существовать при остановленном autofs. При старте он будет создан.

Каталог же /mnt/auto/server/ не должен существовать. В противном случае сетевой ресурс смонтирован не будет.

Установка и настройка

Установите из репозитория:

$ su -
# apt-get update
# apt-get install autofs

Конфигурация описывается файлами: /etc/auto.* , среди которых:

  • auto.master: подключение других конфигурационных файлов
  • auto.tab: описание отдельных подключаемых ФС, с настройками отличными от остальных

auto.master

Пример содержимого:

/mnt/auto       /etc/auto.tab   -t 15
/mnt/net       /etc/auto.avahi -t 120
/mnt/smb       /etc/auto.smb   -t 5

Здесь поля:

  1. каталог в котором будут подключаться сетевые файловые системы
  2. файл конфигурации или скрипт (что определяется правами на исполнение указанного файла)
  3. таймаут подключения при отсутствии обращения

При этом нет необходимости определять каждый адрес с сетевыми файловыми системами, и задав один раз строчку для smb можно обращаться к любому компьютеру обратившись к пути: /mnt/smb/server/share или /mnt/smb/192.168.1.1/share (у меня это работало не всегда).

auto.tab

В этом файле определяются сетевые ресурсы по отдельности.

Примеры:

nfs

Два примера:

public1		-rw,soft,intr,rsize=8192,wsize=8192,nolock	server:/mnt/share/public/
public2		-ro						192.168.1.1:/mnt/share/public/

Здесь обращение нужно производить к каталогам /mnt/auto/public1/ и /mnt/auto/public2/

samba

Простой пример:

public3		-fstype=cifs,noperm							://192.168.1.1/public

Пример с авторизацией:

user1		-fstype=cifs,username=user1,credentials=/etc/auto.smb.auth,noperm	://server/user1

Пример с авторизацией и установкой прав доступа:

user1           -fstype=cifs,username=user1,credentials=/etc/auto.smb.auth,uid=user1,gid=user1,file_mode=416,dir_mode=488       ://server/user1

Где содержимое /etc/auto.smb.auth:

username=user1
password=SeCrEtPaSsWoRd

или

username=domain_user1
password=SeCrEtPaSsWoRd
domain=DOMAIN_NAME

если используется сеть с доменной аутентификацией.

Обращаться к каталогам /mnt/auto/public3/ и /mnt/auto/user1/

В третьем примере с правами доступа параметры file_mode и dir_mode записываются как десятичные константы системного типа mode_t (см. man 2 chmod). Например 0750 -rwxr-x--- -> 0b111101000 -> 488.

davfs

Пример с яндексом:

yandex		-fstype=davfs,rw,uid=user2,gid=group2			:https\://webdav.yandex.ru

Здесь, для авторизации в файл /etc/davfs2/secrets следует добавить:

/mnt/auto/yandex/	yandexuser		yandexpassword

Обращаться к каталогу /mnt/auto/yandex/

При таких настройках у меня возникала следующая проблема. При копировании файлов на сетевую файловую систему, через некоторое время она становилась недоступна. Но при этом копирование продолжалось и по окончании его можно было нормально обратиться и увидеть файлы. При этом обычное монтирование, без autofs, работало нормально.

Если кто нибудь понимает причину (таймауты, кэш, ...), и как исправить, прошу дополнить.

См.также

Ссылки