Autofs: различия между версиями

Материал из ALT Linux Wiki
 
(не показаны 22 промежуточные версии 8 участников)
Строка 1: Строка 1:
= Общая информация =
Работает следующим образом:  
Работает следующим образом:  


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


=Настройка=
=Установка и настройка=
Установите из репозитория:
$ su -
# apt-get update
# apt-get install autofs


Конфигурация описывается файлами: /etc/auto.* , среди которых:
Конфигурация описывается файлами: /etc/auto.* , среди которых:
Строка 17: Строка 23:
* auto.tab: описание отдельных подключаемых ФС, с настройками отличными от остальных
* auto.tab: описание отдельных подключаемых ФС, с настройками отличными от остальных


=auto.master=
==auto.master==


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


  /mnt/auto       /etc/auto.tab  -t 15
  /mnt/auto     /etc/auto.tab  -t 15
  /mnt/net      /etc/auto.avahi -t 120
  /mnt/net      /etc/auto.avahi -t 120
  /mnt/smb      /etc/auto.smb  -t 5
  /mnt/smb      /etc/auto.smb  -t 5
Строка 32: Строка 38:
При этом нет необходимости определять каждый адрес с сетевыми файловыми системами, и задав один раз строчку для smb можно обращаться к любому компьютеру обратившись к пути: /mnt/smb/server/share или /mnt/smb/192.168.1.1/share (у меня это работало не всегда).
При этом нет необходимости определять каждый адрес с сетевыми файловыми системами, и задав один раз строчку для smb можно обращаться к любому компьютеру обратившись к пути: /mnt/smb/server/share или /mnt/smb/192.168.1.1/share (у меня это работало не всегда).


=auto.tab=
==auto.tab (/etc/auto.avahi,  /etc/auto.smb и проч. )==
 
В этих файле определяются сетевые ресурсы по отдельности.
 
Поля :
 
# точка монтирования (внутри, например  /mnt/net для файла /etc/auto.avahi)
# опции монтирования (тип файловой системы, права доступа и т.п.)
# монтируемый ресурс (сетевой путь расшариваемого ресурса)


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


Примеры:  
== Примеры (для файла auto.tab): ==


==nfs==
===nfs===


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


==samba==
===samba===
 
Простой пример(без авторизации):


  public3 -fstype=cifs,noperm ://192.168.1.1/public
  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,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:
Где содержимое /etc/auto.smb.auth:
Строка 59: Строка 86:
  username=user1
  username=user1
  password=SeCrEtPaSsWoRd
  password=SeCrEtPaSsWoRd
или
username=domain_user1
password=SeCrEtPaSsWoRd
domain=DOMAIN_NAME
если используется сеть с доменной аутентификацией.


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


==davfs==
Пример с аутентификацией 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 (см. <code>man 2 chmod</code>).
Например 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
 
=См.также=
 
*[[NFS]]


=Ссылки=
=Ссылки=

Текущая версия от 06:47, 23 июня 2022

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

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

  • Задаётся каталог, в котором будет происходить подключение, например /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

См.также

Ссылки