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 (/etc/auto.avahi, /etc/auto.smb и проч. )

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

Поля :

  1. точка монтирования (внутри, например /mnt/net для файла /etc/auto.avahi)
  2. опции монтирования (тип файловой системы, права доступа и т.п.)
  3. монтируемый ресурс (сетевой путь расшариваемого ресурса)


Примеры (для файла 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

Для подключения нескольких расшаренных папок:

public3		-fstype=cifs,noperm	/folder1	://192.168.1.1/public	/folder2	://192.168.1.2/public

Для подключения к расшаренным папкам Windows(без авторизации):

public3		-fstype=cifs,guest							://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/

Пример с аутентификацией Kerberos (актуально для Active Directory и Samba-DC), файл /etc/auto.samba:

share    -fstype=cifs,multiuser,cruid=$USER,sec=krb5,domain=TEST.ALT,vers=1.0 ://server.alt/share

Для этого случая в /etc/auto.master потребуется запись вида

/mnt/smb	/etc/auto.samba	--ghost

Обращаться к каталогу /mnt/smb/share, параметр vers=1.0 нужен только для старых версий серверов.

Если указано несколько ресурсов (см. подключение нескольких расшаренных папок): к каталогам /mnt/auto/public3/folder1 и /mnt/auto/public3/folder2

В третьем примере с правами доступа параметры 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, работало нормально.

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

Запуск сервиса

$ su -
# systemctl enable autofs
# systemctl start autofs

См.также

Ссылки