Autofs
- пакет, позволяющий автоматически подключать различные ресурсы (переносные устройства, жесткие диски, сетевые устройства, RAM-диск)при их использовании, и автоматически их отключать при прекращении использования.
Установка
Пакет autofs входит в стандартные дистирибутивы ОСОН Орёо и ОССН Смоленск,
и может быть установлен с помощью графического менеджера пакетов, или из командной строки:
Настройка
Основная конфигурация пакета autofs хранится в файле /etc/auto.master
.
Каждая стройка файла состоит из указания точки монтирования и параметров монтирования.
алее приведены примеры типовых настроек, подробно формат файла конфигурации описан в
man auto.master
После внесения изменений перезапустить сервис:
Для проверки можно перейти в точку монтирования, например, командой
При этом ресурс должен примонтироваться автоматически.
Автоматическое монтирование ресурсов NFS
Пример монтирования ресурса из статьи про NFS.
Монтируем с использованием autofs ресурс из предыдущего примера 192.168.1.10:/nfsshare/ в ранее созданную точку монтирования /mnt/share.
Добавим в конец файла /etc/auto.master строку:
timeout указывать не обязательно, таймаут в autofs по умолчанию 300 секунд (5 минут), то есть ресурс будет автоматически отмонтирован после 5 минут бездействия.
Создадим файл /etc/auto.nfs.
Этоn файл должен содержать отдельную строку для каждого ресурса NFS
Формат строки: {точка_монтирования} [{опции_монитирования}] {адрес_ресурса}.
Точки монтирования будут размещаться в каталоге, указанном в /etc/auto.master:
share -fstype=nfs4,rw,soft,intr 192.168.1.10:/srv/homes
Где
- share – точка монтирования (/mnt/share)
- -fstype=nfs4,rw,soft,intr – опции монтирования
- 192.168.1.10:/nfsshare– адрес ресурса
Это создаст новую точку автоматического монтирования /mnt/share/ для ресурса /srv/homts/, экспортируемого “192.168.1.10”
Автоматическое монтирование ресурсов Samba
Добавить в файл /etc/auto.master:
/media/smb /etc/auto.smb --timeout=60 # ресурсы samba (windows)
Файл /etc/auto.smb создавать не требуется, это стандартный сценарий, входящий в состав пакета autofs
После перезапуск autofs для автоматическоно подключения ресурсов достаточно обратиться к ресурсу по имени хоста, например:
ls /media/smb/<имя_хоста>
или
ls /media/smb/<IP_адрес_хоста>
Данный способ может не работать с некоторыми серверами Windows. Втаком случае возможно использовать монтирование ресурсов как ресурсов CIFS.
Автоматическое монтирование ресурсов CIFS
(раздел в работе)
Данный способ монтирования может быть неприемлем с точки зрения безопасности
в связи с тем, что пароли хранятся в файле в открытом виде .
Вместе с тем описываемое подключение позволяет использовать ресурсы samba в доверенной локальной сети всем пользователям локальной машины прозрачно от имени выделенного (ограниченного) пользователя.
В качестве основы для создания скрипта /etc/auto.cifs использован скрипт auto.smb поставляемый с пакетом autofs5 с небольшими доработками.
Для использования этого способа должны быть установленв пакеты smbclient и cifs-utils:
apt install cifs-utils smbclient
добавляем в /etc/auto.master строку
/media/cifs /etc/auto.cifs --timeout=60
создаем файл /etc/auto.cifs:
#!/bin/bash
# This file must be executable to work! chmod 755!
key="$1"
credfile="/etc/user-cifs"
user_password=$(cat $credfile | grep "$key" | awk -F ":" '{print $2}')
#echo "key=$1 credfile=$credfile user=$user_password" > /tmp/auto.smb.log
#opts="-fstype=cifs,file_mode=0644,dir_mode=0755,codepage=866,iocharset=utf8,user=$user_password"
opts="-fstype=cifs,file_mode=0644,dir_mode=0755,codepage=1251,iocharset=utf8,user=$user_password"
for P in /bin /sbin /usr/bin /usr/sbin
do
if [ -x $P/smbclient ]
then
SMBCLIENT=$P/smbclient
break
fi
done
[ -x $SMBCLIENT ] || exit 1
$SMBCLIENT --user=$user_password -gL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
BEGIN { ORS=""; first=1 }
/Disk/ {
if (first)
print opts; first=0
dir = $2
loc = $2
# Enclose mount dir and location in quotes
# Double quote "$" in location as it is special
gsub(/\$$/, "\\$", loc);
print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
}
END { if (!first) print "\n"; else exit 1 }
Комментарии к файлу
- < opts="-fstype=cifs,file_mode=0644,dir_mode=0755,codepage=866,iocharset=utf8,user=$user_password" > : строка для обеспечения просмотра русских букв на ресурсах windows
- < $SMBCLIENT --user=$user_password -gL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- ' > : строка <$SMBCLIENT ...> изменена для обеспечения возможности подключения к samba-ресурсам windows
- < user_password=$(cat $credfile | grep "$key" | awk -F ":" '{print $2}') > : строка добавлена для получения из файла пароля доступа к ресурсу cifs
делаем скрипт auto.cifs выполняемым
создаем файл с паролями доступа к ресурсу cifs /etc/user-cifs со строчками вида
ХОСТ1:ПОЛЬЗОВАТЕЛЬ%ПАРОЛЬ
ХОСТ2:ПОЛЬЗОВАТЕЛЬ%ПАРОЛЬ
в целях безопасности устанавливаем права к файлу /etc/user-cifs только для root
Перезапускаем autofs
обращаемся в командой строке к ресурсу samba: