Verschlüsselte Ordner über shell-script mounten - Zeichen im Passwort escapen?

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

thothothomas

Benutzer
Registriert
09. Feb. 2015
Beiträge
64
Reaktionspunkte
0
Punkte
6
Hallo zusammen,
ich nutze ein sh-Script zum mounten meiner verschlüsselten Ordner, was auch super funktioniert. Allerdings hbae ich leider einen Ordner, der im Passwort ein "`" hat. Das mag mein Script nicht und bricht entsprechend (/tmp/pw.sh: line 8: unexpected EOF while looking for matching ``') ab. Escape ich das Zeichen, ist das Passwort wiederum falsch. Wie komme ich aus dieser Nummer raus?

Hier Auszüge aus dem Script:
Rich (BBCode):
#!/bin/sh
...
/usr/syno/sbin/synoshare --enc_mount "ser" "8V`-g.5%#'%8OK"
Rich (BBCode):
#!/bin/sh
...
/usr/syno/sbin/synoshare --enc_mount "ser" "8V\`-g.5%#'%8OK"
 
Hi,

was passiert wenn du die double qoutes weglässt und den backtick eben mit dem escape charackter dem backslash behandelst?

--luddi
 
Zuletzt bearbeitet:
Vielleicht liegt es aber auch an dem single quote character in dem string?

ich habe folgendes kurz probiert:

Rich (BBCode):
#!/bin/bash
argument=8V\`-g.5%#\'%8OK
echo $argument
exit 0

D.h. ein backtick wird auch innerhalb einer Sequenz mit double qoutes als bash character behandelt. Wirst du diesen escapen sollte es funktionieren.
Aber: Hier als Argument für den Funktionsafuruf "/usr/syno/sbin/synoshare" wird selbst der single quote ein Problem darstellen.

a.) String in double qoutes
Rich (BBCode):
argument="8V`-g.5%#'%8OK"
echo $argument

--> Fehler!

b.) string in double quotes wobei backtick escaped --> \`
Rich (BBCode):
argument="8V\`-g.5%#'%8OK"
echo $argument

--> Ausgabe: 8V`-g.5%#'%8OK

c.) string ohne double quotes wobei backtick als auch single qoute escaped --> \` und \'
Rich (BBCode):
argument=8V\`-g.5%#\'%8OK
echo $argument

--> Ausgabe: 8V`-g.5%#'%8OK

Deshalb mein Vorschlag sowohl den backtick als auch den single quote mit einem backslash zu escapen.

--luddi
 
Danke luddi! Das ging ja schnell.
Die Lösung war tatsächlich das Entfernen der doblequotes, das escapen von allen möglichen Sonderzeichen die bash nicht mag und das Schreiben der Zeichen in eine Variable.
Jetzt funktioniert das Script auch für den letzten Ordner, danke!
 
Sehr schön. Das freut mich wenn ich helfen konnte :)

--luddi
 
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