Samba Freigabe erstellen per Terminal

Status
Für weitere Antworten geschlossen.

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Hallo, möchte gerne eine Freigabe erstellen, die auf keinen Volume liegt, möchte das Chroot Verzeichnis gerne als Freigabe mounten.

Wie stelle ich das per Skript an, das die Freigabe erhalten bleibt

Auf einer Seite habe ich diesen Tipp gefunden
http://www.meintechblog.de/2012/10/synology-nas-pfad-eines-gemeinsamen-ordners-manuell-festlegen/

#!/bin/sh
#
case "$1" in
start)
/usr/syno/sbin/synoshare --add [ShareName] [ShareBezeichnung] /volume1/[Pfad] "Hier User, die keinen Zugriff haben [User1,User2]" "Hier User die Schreib-/Leseberechtigung haben [User3,User4]" "Hier User, die nur Leseberechtigung haben [User5,User6]" 1 0
;;
stop)
;;
esac
#

Komme damit gerade nicht direkt klar.

Diesen Ordner möchte ich mountne

"/usr/local/debian-chroot/var/chroottarget"

Hoffe ihr habt einen Tipp für mich :)

Edit gerade das gefunden, da steht das in etwa wie ich es gerne hätte, nur bekomme ich immer einen Fehler

"Not enough argument. [name desc path na rw ro browseable adv_privilege] are required"

Ich habe doch alles angegeben was ich möchte?

/usr/syno/sbin/synoshare --add "Chroot" /usr/local/debian-chroot/var/chroottarget "" "admin" "" 1 0



Die andere Idee die ich hatte wäre die smb.conf direkt zu bearbeiten, und die bearbeite smb.conf nach einen reboot auomatisch über die originale kopieren zu lassen, allerdings scheitert es an den Restart des Samba servers.

"DS2413> /usr/syno/etc/rc.d/S80Samba.sh restart
-ash: /usr/syno/etc/rc.d/S80Samba.sh: not found
"

Es gibt kein Start Script was Samba enthält
 
Zuletzt bearbeitet:
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
Ohne es selbst ausprobiert zu haben:
Erforderliche Parameter sind "name desc path na rw ro browseable adv_privilege"
name - "Chroot"
desc - FEHLT
path - /usr/local/....

Da fehlt was, nämlich die Description.


Das andere Problem:
Das Script heisst S80samba.sh, nicht S80Samba.sh

Das lässt sich ganz einfach überprüfen:
ls -la /usr/syno/etc/rc.d | grep -i samba
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Mit der Beschreibung, nette Idee, aber
Code:
"DS2413> /usr/syno/sbin/synoshare --add "Chroot" "ChrootDir"/usr/local/debian-chr
oot/var/chroottarget "" "admin" "" 1 0
Not enough argument. [name desc path na rw ro browseable adv_privilege] are required
DS2413>

"

Die Ausgabe von grep ist nichts

"
DS2413> ls -la /usr/syno/etc/rc.d | grep -i samba
DS2413>
Wie gesagt, da ist nichts mit Samba?

Edit, der Pfad hat eine verlinkung?
Code:
DS2413> ls -la /usr/syno/etc/rc.d
lrwxrwxrwx    1 root     root            27 May 27 22:59 /usr/syno/etc/rc.d -> /usr/syno/etc.defaults/rc.d

DS2413> ls /usr/syno/etc.defaults/rc.d | grep -i samba
S80Samba.sh
 
Zuletzt bearbeitet:

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Ok, jetzt geht synoshare gar nicht mehr, keinerlei Reaktion mehr von den Programm ?
 
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
Bei mir gehts mit /volume1/etc

Bei /usr/local/tmp (nicht vorhanden) gibts wenigstens eine Fehlermeldung:
ds> /usr/syno/sbin/synoshare --add "bla" "blub" /usr/local/tmp "" "admin" "" 1 0
Lastest SynoErr=[plugin_action.c:167]
SYNOShareSet failed, synoerr=0x0D00
ds>


Wenn sich unter Unix etwas scheinbar nicht zurückmeldet, hast du wahrscheinlich eine ungerade Zahl von Anführungszeichen getippt und die Shell wartet auf das schliessende Zeichen.
Wenn du dann Enter drückst, sieht der Prompt auch anders aus, als normalerweise.
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Die DSM war wohl beschädigt, habe diese neu aufgesetzt. Läuft wieder soweit.

diesmal kommt auch eine andere Meldung
Code:
DS2413> /usr/syno/sbin/synoshare --add "Chroot" "ChrootDir" /usr/local/debian-ch
root/ "" "admin" "" 1 0
Error: Share path is invalid.

wenn ich das richtig verstehe, ist es wohl nicht möglich außerhalb einen Volumes diesen Befehl abzusetzen?
 

Hoffy

Benutzer
Mitglied seit
16. Jan 2014
Beiträge
241
Punkte für Reaktionen
1
Punkte
24
Hi,

ich hätte vl eine Alternative anzubieten.
Ich nutze dieses Skript um beim Start der DS die persönlichen Playlisten der Audio Station im home-Verzeichnis des Benutzers zu mounten und denke dass sich das auf dein Problem übertragen lässt.
Dann kannst du deinen Ordner einfach irgendwo in einem gemeinsamen Ordner mounten der über smb erreichbar ist.

Grüße
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Vielen lieben Dank, funktioniert!

Allerdings wird es nicht richtig ausgehängt?

Habe es per console versucht.

/usr/syno/etc.defaults/rc.d/S99ZZZ_customize.sh start

Ordner wird geladen und steht zu verfügung

/usr/syno/etc.defaults/rc.d/S99ZZZ_customize.sh stop ergibt einen Fehler
Code:
mkdir: can't create directory '': No such file or directory
mount: mounting /volume2/steamserver/server/ on  failed: No such file or directory

Manuell geht es auch nicht
Code:
umount: can't forcibly umount /volume2/steamserver/server: Device or resource busy

Code:
#!/bin/sh
# chmod 755 /usr/syno/etc.defaults/rc.d/S99ZZZ_customize.sh
# mount/bind some folders on startup and umount them on shutdown/reboot (http://www.synology-wiki.de/index.php/Mount_Bind)
# Write to system log, event ids in /usr/syno/synosdk/texts/enu/events (http://forum.synology.com/enu/viewtopic.php?f=27&t=6396)
sleep 2s
mountit()
{
        # $1 mount what, $2 mount where
        if [ -e "$2" ]
        then
                /usr/syno/bin/synologset1  sys err 0x11800000 "$0: "$2" exists"
        else
                /bin/mkdir -p "$2"
                /bin/mount -o bind "$1" "$2"
                /usr/syno/bin/synologset1  sys info 0x11800000 "$0: Mounted "$1" to "$2""
        fi
        return
}
umountit()
{
        # $1 umount what
    /bin/umount $1 && /bin/rmdir "$1" && /usr/syno/bin/synologset1  sys info 0x11800000 "$0: Unmounted "$1""
        return
}

case $1 in
start)
        mountit /usr/local/debian-chroot/var/chroottarget/home/server/server /volume2/steamserver/server/

        ;;
stop)
        mountit /volume2/steamserver/server/

        ;;
*)
        echo "Usage: $0 [start|stop]"
    ;;
esac
 
Zuletzt bearbeitet:

Hoffy

Benutzer
Mitglied seit
16. Jan 2014
Beiträge
241
Punkte für Reaktionen
1
Punkte
24
Achso, start und stop brauchst du eig nicht machen. Ich hab es unter /usr/local/etc/rc.d zu liegen (soweit ich das verstanden hab ist der für eigene Bootup Skripte gedacht) dann einmal chmod 755 drüber und die DS neu starten. Dann wird beim hochfahren der DS gemountet und beim runterfahren ausgeworfen.

Das hätte ich noch dazu schreiben müssen, tschuldigung. Hier nochmal die Wiki-Seite zu dem Skript.

Grüße

EDIT: Ich sehe auch gerade, dass in deinem Skript ein u fehlt vl liegt es daran:
Creadle schrieb:
stop)
mountit /volume2/steamserver/server/

Das mountit muss ein umountit sein.
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
stimmt,allerdings ändert das nichts :(

funktioniert grob aber, bin mir aber nicht sicher was beim herunterfahren passiert ohne die stop funktion
 

Hoffy

Benutzer
Mitglied seit
16. Jan 2014
Beiträge
241
Punkte für Reaktionen
1
Punkte
24
Eig schreibt das Skript ja ins Protokoll-Center was es macht. Außerdem kannst du auch feststellen wann das auswerfen beim runterfahren nicht geklappt hat, weil dann der Ordner wo gemountet wird nicht gelöscht wurde. Dann kommt beim nächsten mount-Versuch auch ein Fehler wie "S99zzz_customize.sh: "/volume2/steamserver/server/" exists", dann muss man den einmal händisch löschen.

Grüße
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hallo,

hab den Thread nur überflogen. Kann also sein, das ich vielleicht falsch liege. Wenn ich das richtig verstanden habe möchtest Du einen speziellen Ordner als SMB-Freigabe zur Verfügung stellen. Warum dann nicht einfach einen Symlink in einer vorhandenen Freigabe anlegen. Seit 4.3 kann der Samba-Server der DS auch Symlinks folgen. In den erweiterten Einstellung ist dann "Symbolische links in gemeinsamen ...." oder so ähnlich und entsprechend darunter der zweite Haken zu aktivieren.

Dananch in einer entsprechenden Freigabe beispielsweise

Rich (BBCode):
ln -s /was/auch/immer

eingeben. Eine kleine Kröte sei nicht verschwiegen. Die FileStation kann meines Wissens bis Dato keinen Symlinks folgen.

Gruß Frank
 
Zuletzt bearbeitet:

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Ok, das habe ich nicht gewusst, hatte es zwar versucht, kam aber fehler das auf den Ordner nicht zugegriffen werden kann. Ohne den Hacken allerdings gesetzt zu haben,das erklärt es vielleicht
 

ralto

Benutzer
Mitglied seit
26. Mai 2014
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Hi,

ich möchte mich hier mal dran hängen. Ich hab jetzt ein paar Tage eine DS414 und bin mit der freigabe struktur mehr als sagen wir unzufrieden. Ich komme von freenas und da eindeutig mehr flexibilität gewohnt. Jetzt habe ich diesen Thread gefunden weil ich nach smb.conf gesucht habe, ab von den "lösungen" die hier stehen hat es schon eimal jemand mit anpassungen in der smb.conf probiert?

Wäre jetzt mein nächster schritt.

Gruß
Ralph
 

ralto

Benutzer
Mitglied seit
26. Mai 2014
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Hi,

ich möchte mich hier mal dran hängen. Ich hab jetzt ein paar Tage eine DS414 und bin mit der freigabe struktur mehr als sagen wir unzufrieden. Ich komme von freenas und da eindeutig mehr flexibilität gewohnt. Jetzt habe ich diesen Thread gefunden weil ich nach smb.conf gesucht habe, ab von den "lösungen" die hier stehen hat es schon eimal jemand mit anpassungen in der smb.conf probiert?

Wäre jetzt mein nächster schritt.

Gruß
Ralph

Ok, gerade in anderen Beiträgen gelesen das das wohl auch nicht so der hit ist, irgendwie bereue ich gerade die anschaffung. Und mount -o bind ist ja auch nur ein workaround der nicht wirklich prall ist ... dumm wenn man wohl schon eine struktur hat.
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Die Datei wird halt wieder rückgesetzt bei einen Neustart.

Der Befehl um den es geht/ging, ist dazu da, so eine Freigabe einzubinden, zb. per Script. Bin aber mit den genauen Syntax nicht klar gekommen, entweder ist der Pfad nicht gültig, oder er meckert wieder wo anders.
 

ralto

Benutzer
Mitglied seit
26. Mai 2014
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Die Datei wird halt wieder rückgesetzt bei einen Neustart.

Der Befehl um den es geht/ging, ist dazu da, so eine Freigabe einzubinden, zb. per Script. Bin aber mit den genauen Syntax nicht klar gekommen, entweder ist der Pfad nicht gültig, oder er meckert wieder wo anders.

Ja das mit dem rücksetzten habe ich dann anderweitig auch gelesen, und dieses gefummel mit dem mount -o bind ist jetzt auch nicht so meins, will meine struktur schon so aufbauen wie ich will und nicht zusammen frickeln. Jetzt kann ich nur überlegen ob ich das System wieder einstampfe oder meine Dateistruktur unlogisch umbiege damit es mit synology funktioniert.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat