#!/bin/sh # # D-Team Technology Co.,Ltd. ShenZhen # 作者:Vic # # 警告:对着屏幕的哥们,我们允许你使用此脚本,但不允许你抹去作者的信息,请保留这段话。 # . /lib/functions.sh . /lib/functions/service.sh global=0 config_file="/etc/config/samba4" wait_for_init() { for i in `seq 30` do [ -e /tmp/procd.done ] || { sleep 1; continue; } return done } smb_handle() { config_get path $1 path if [ "$path" = "$2" ] ;then global=1 fi } chk_en() { config_get_bool autoshare $1 autoshare 1 [ $autoshare -eq 0 ] && exit } config_load samba4 config_foreach chk_en samba4 device=`basename $DEVPATH` case "$ACTION" in add) case "$device" in sd*);; md*);; hd*);; mmcblk*);; *) return;; esac path="/dev/$device" wait_for_init cat /proc/mounts | grep -v '/boot\|/opt' | while read j do str=${j%% *} if [ "$str" == $path ];then strr=${j#* } target=${strr%% *} global=0 config_foreach smb_handle sambashare $target name=${target#*/mnt/} if [ $global -eq 0 ] ;then echo -e "\n\nconfig sambashare" >> $config_file echo -e "\toption auto '1'" >> $config_file echo -e "\toption name '$name'" >> $config_file echo -e "\toption path '$target'" >> $config_file echo -e "\toption read_only 'no'" >> $config_file echo -e "\toption guest_ok 'yes'" >> $config_file echo -e "\toption create_mask '0666'" >> $config_file echo -e "\toption dir_mask '0777'" >> $config_file echo -e "\toption device '$device'" >> $config_file echo -e "\toption inherit_owner 'yes'" >> $config_file /etc/init.d/samba4 reload return fi fi done ;; remove) i=0 while true do dev=`uci get samba4.@sambashare[$i].device` [ $? -ne 0 ] && break [ "$dev" = "$device" ] && { auto=`uci get samba4.@sambashare[$i].auto` [ $auto = "1" ] && { mount_dir=`uci get samba4.@sambashare[$i].name` uci delete samba4.@sambashare[$i] uci commit /etc/init.d/samba4 reload return } } let i+=1 done ;; esac