Hej, mam mały problem z automontowaniem zasosób i wystawianie ich po sambie.
Scenariusz jest taki ze kazdego dnia do routera podpinany jest nowy pendrive na którym odkladaja sie backupy. O ile z automontowaniem nie mialem problemow, tak wystawieniem pulicznych zasobow po sambie juz tak - co prawda pakiet samba-hotplug powoduje ze zasoby sa wystawiane lecz dostep nie jest publiczny - wola o login i haslo. Metoda prob i bledow doszedlem ze problemem jest sekcja users w configu samby:
samba.@samba[0]=samba
samba.@samba[0].name='OpenWrt'
samba.@samba[0].workgroup='WORKGROUP'
samba.@samba[0].description='OpenWrt'
samba.@samba[0].homes='0'
samba.@sambashare[0]=sambashare
samba.@sambashare[0].browseable='yes'
samba.@sambashare[0].name='sda1'
samba.@sambashare[0].path='/mnt/sda1'
samba.@sambashare[0].users='root'
samba.@sambashare[0].read_only='no'
samba.@sambashare[0].guest_ok='yes'
samba.@sambashare[0].create_mask='0755'
samba.@sambashare[0].dir_mask='0755'
Postanowiem wiec usuwac ta sekcje przy pomocy skryptu dostpenego na wiki wrzuconego do /etc/hotplug.d/block plik 99-samba z zawartoscia:
#!/bin/sh
echo "test" >> /tmp/test
case $DEVICENAME in
mtdblock*);;
sd[a-z][0-9]*)
case $ACTION in
add)
grep -q /dev/$DEVICENAME /proc/mounts || exit 0
DIR=$(awk '/^\/dev\/'$DEVICENAME'/ {print $2}' /proc/mounts)
i=$(uci show samba|awk 'NF{p=$0}END{print p}'|sed -e "s/^.*\[\\(.*\)\].*$/\1/")
while [ "$i" -ge 0 ]; do
sharepath=$(uci get samba.@sambashare[$i].path)
[ "$sharepath" = "$DIR" ] && {
uci delete samba.@sambashare[$i]
}
i=$(( i-1 ))
done
uci add samba sambashare
uci set samba.@sambashare[-1].name="$DEVICENAME"
uci set samba.@sambashare[-1].path="$DIR"
uci set samba.@sambashare[-1].read_only=no
uci set samba.@sambashare[-1].guest_ok=yes
uci delete samba.@sambashare[-1].users
/etc/init.d/samba restart
uci revert samba
echo "test2" >> /tmp/plik
;;
remove)
i=$(uci show samba|awk 'NF{p=$0}END{print p}'|sed -e "s/^.*\[\\(.*\)\].*$/\1/")
while [ "$i" -ge 0 ]; do
sharepath=$(uci get samba.@sambashare[$i].path)
d=$(uci get samba.@sambashare[$i].name)
if [ ! -e "$sharepath" -o "$d" = "$DEVICENAME" ]; then
uci delete samba.@sambashare[$i]
fi
i=$((i-1))
done
/etc/init.d/samba restart
uci revert samba
;;
esac
;;
esac
Niestety nie dziala, po restarcie urzadzenia nie widze pliku /tmp/test a przy probuje polaczenia dostaje nadal prompt o login / haslo. Jest jakis spobos na monitorownaie hopluga? czy gdzies znajde moze logi z prob wykonania skryptów pod niego podpietych?