Autofs
Общая информация
Работает следующим образом:
- Задаётся каталог, в котором будет происходить подключение, например /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
Здесь поля:
- каталог в котором будут подключаться сетевые файловые системы
- файл конфигурации или скрипт (что определяется правами на исполнение указанного файла)
- таймаут подключения при отсутствии обращения
При этом нет необходимости определять каждый адрес с сетевыми файловыми системами, и задав один раз строчку для 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, работало нормально.
Если кто нибудь понимает причину (таймауты, кэш, ...), и как исправить, прошу дополнить.
Запуск сервиса
$ su - # chkconfig autofs on # service autofs start
См.также
Ссылки
- Примеры, в частности для sshfs: http://linuxoid.in/Autofs