1 (edytowany przez raw 2020-02-09 09:55:06)

Temat: Automontowanie usb i samba

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?

2

Odp: Automontowanie usb i samba

oczywiscie że bedzie chciał user -hasło  masz to w configu   
samba.@sambashare[0].users='root'  !!!!!!!   - usun to
oraz  dostep i modyfikacja pliku  ustaw na 777

3

Odp: Automontowanie usb i samba

config jesli dobrze rozumiem jest budowany dynamicznie poprzez samba-hotplug (skypt 60-samba w katalogu /etc/hotplug.d/block), z tego tez wzgledu tez do tego samego folderu dorzucilem skrypt 99-samba - jak spojrzysz to tam jest linia ktora powinna usunac z konfigu ta linie

uci delete samba.@sambashare[-1].users

problemem jest raczej to ze skrypt nie jest uruchamiany.

4

Odp: Automontowanie usb i samba

nie potrzeba żadnych skryptów  ustaw w terminalu  i nie ruszaj  nic w gui  i bedzie ok

5

Odp: Automontowanie usb i samba

Dokładnie, ustaw sobie raz w sambie i nie ruszaj. Samba udostępnia katalog, a czy w nim będzie zamontowany nośnik taki czy inny to inna sprawa, będzie on po prostu udostępniony.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.