Ниже описана процедура, более подробно описанная в статье Автоматический экспорт 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