Ниже описана процедура, более подробно описанная в статье Автоматический экспорт USB-накопителей через Samba:
Используемый инструмент - это usbmount , который вызывается, когда USB-диск вставляется для монтирования диска. Он выполняет сценарии в /etc/usbmount/mount.d используя run-parts и /etc/usbmount/umount.d после отключения.
smb.conf
Создайте пустой каталог /etc/samba/auto и добавьте эти строки в конец smb.conf:
include = /etc/samba/auto/usb0.conf
include = /etc/samba/auto/usb1.conf
include = /etc/samba/auto/usb2.conf
include = /etc/samba/auto/usb3.conf
include = /etc/samba/auto/usb4.conf
include = /etc/samba/auto/usb5.conf
include = /etc/samba/auto/usb6.conf
include = /etc/samba/auto/usb7.conf
mount.d
Чтобы автоматически создавать вышеуказанные файлы конфигурации при вставке диска, создайте этот файл как /etc/usbmount/mount.d/50_add_samba_export , chmod как исполняемый файл:
#!/bin/bash
SHARENAME=`basename $UM_MOUNTPOINT`
cat > /etc/samba/auto/$SHARENAME.conf <<EOF
[$SHARENAME]
comment = $UM_VENDOR $UM_MODEL
path = $UM_MOUNTPOINT
read only = no
EOF
/etc/init.d/samba restart
umount.d
Чтобы удалить общий ресурс, когда диск размонтирован или удален, добавьте /etc/usbmount/umount.d/50_remove_samba_export , chmod как +x:
#!/bin/bash
SHARENAME=`basename $UM_MOUNTPOINT`
rm -f /etc/samba/auto/$SHARENAME.conf
/etc/init.d/samba restart
Убирать
Чтобы справиться со случаем перезагрузки без предварительной размонтировки, создайте сценарий загрузки, чтобы очистить /etc/samba/auto используя команду «Использовать сценарий инициализации», скажем /etc/init.d/auto-share-clean:
#! /bin/sh
### BEGIN INIT INFO
# Provides: auto-share-clean
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Cleans auto samba shares
### END INIT INFO
rm -f /etc/samba/auto/*
Затем:
chmod +x /etc/init.d/auto-share-clean
update-rc.d auto-share-clean defaults