staging.inyokaproject.org

Bash > URL Öffnen und bestimmten bereich kopieren und speichern

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

Nur-Ein-Blogger

Anmeldungsdatum:
4. April 2011

Beiträge: 146

Hey,

ich wollte mal fragen, ob es möglich ist mit Bash eine Seite auf zu rufen und daraus Werte zu speichern. Feste Werte. Hintergrund: ViMbAdmin, beim ersten aufruf muss man ja Manuel arbeiten:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10

Step 1: Security Salts

Security salts are used to ensure your passwords are secure, you are authorised to complete the install procedure and for cookie security. To proceed, please set the following randomly generated salts at the top of the [user] section of the following file: application/configs/application.ini.

securitysalt                       = "\K?OjZ;5JFZTqEUG#%o3@T-py92@tx2>n0u60pkg7;b_x/oE+Md]4wkfW&4*CC|B"
resources.auth.oss.rememberme.salt = ">o(%!{H9:B}7A+0liAw#ME;BEx;Qb]r25$jg:yPaVcu1u]Jx%m-.vR3JIk5t/&\{"
defaults.mailbox.password_salt     = "?ZN]Wc*IVnf#DJ/+%.MfLqzUw2zY~6{JewO($,L]1aeMH4\x/9$qcg@EY{&(Gu4>"

Please also ensure you have set all the appropriate values in the [user] section before continuing.

Diese Werte würde ich gern irgendwie automatisiert eintragen.

Ich habe mich mal versucht mit dem folgenden Code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
PATH_TO_VMA_SALTS="/root/vma.txt"
wget "http://${MYDOMAIN}/vma/auth/setup" -O vma.txt 

VMA_SECURITY_SALT=$(grep -Pom 1 "(?<=^securitysalt                       = ).*$" $PATH_TO_VMA_SALTS)
VMA_REMEMBERME_SALT=$(grep -Pom 1 "(?<=^resources.auth.oss.rememberme.salt = ).*$" $PATH_TO_VMA_SALTS)
MAILBOX_PASSWORD_SALT=$(grep -Pom 1 "(?<=^defaults.mailbox.password_salt     = ).*$" $PATH_TO_VMA_SALTS)

echo $VMA_SECURITY_SALT
echo "-----------------------"

echo $VMA_REMEMBERME_SALT
echo "-----------------------"

echo $MAILBOX_PASSWORD_SALT
echo "-----------------------"

vma.txt:

</p>
<pre>securitysalt                       = "&gt;Tyb;lf.=k{f4h%?2qGi$Ca4ASLMsx~3X/R#/U@M_HLbj5X7IzuO,y_T!W+n\E*;"
resources.auth.oss.rememberme.salt = "6J5)yL##,(&lt;UoqNVY{lI2Rb}^@Q4+&gt;7_:&gt;3-VI0T_P(XFsGe}RqO6ZLuxP/pN8~?"
defaults.mailbox.password_salt     = "P&amp;~t*98hv6H7|l7HDO(=ex+d&lt;])|j.}{q44Q?nD-/&lt;u(CS%jF;.zcKf^$yd~r6&gt;i"</pre>
<p>

Allerdings stimmt die Ausgabe noch nicht ganz. Der securitysalt klappt gar nicht. der rememberme salt geht, da muss ich noch "" entfernen. Das wollte ich über ne pipe per SED machen.

Genauso bei mailbox salt

Aber ich weiß nicht, wieso der security Salt nicht funktioniert.

root@testserver:~# bash testvma.sh
VMA_SECURITY_SALT

-----------------------
VMA_REMEMBERME_SALT
"6J5)yL##,(&lt;UoqNVY{lI2Rb}^@Q4+&gt;7_:&gt;3-VI0T_P(XFsGe}RqO6ZLuxP/pN8~?"
-----------------------
MAILBOX_PASSWORD_SALT
"P&amp;~t*98hv6H7|l7HDO(=ex+d&lt;])|j.}{q44Q?nD-/&lt;u(CS%jF;.zcKf^$yd~r6&gt;i"</pre>
-----------------------
root@testserver:~#

Wiedermal: Vielen dank für eure Hilfe ☺

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Elegant bei dir, aber vielleicht fehleranfälliger (im Aufbau) als sowas:

$ echo '<pre>securitysalt                       = "&gt;Tyb;lf.=k{f4h%?2qGi$Ca4ASLMsx~3X/R#/U@M_HLbj5X7IzuO,y_T!W+n\E*;"' | cut -d'"' -f2
&gt;Tyb;lf.=k{f4h%?2qGi$Ca4ASLMsx~3X/R#/U@M_HLbj5X7IzuO,y_T!W+n\E*;

Falls ich mich da jetzt in 5 min genug hineindenken konnte, was dein Problem ist. Die Anführungszeichen hätte man damit auch gleich erschlagen, weil sie hier als Trenner für cut fungieren. Im Salt sollten dann so natürlich keine erlaubt sein.

Vielleicht ist das vorherige <pre> bei dir das Problem, habe deine Syntax so bisher eher nicht benutzt. Werd mir das nach dem Posten nochmal kurz ansehen.

Wenn du es anders gelöst hast, würden sich Mitleser vielleicht über eine Lösung freuen.

Edit: Es liegt in der Tat am störenden <pre>. Zudem steht in der man zu grep:

       -P, --perl-regexp
              Interpretiert das Muster als einen regulären Perl-Ausdruck (PCRE). Diese Option ist höchst experimentell.  Es
              kann vorkommen, dass grep -P wegen nicht implementierter Funktionalitäten warnt.

Also ist das sowieso nicht empfehlenswert, schon gar nicht für automatische Scripte.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Es gibt auch Werkzeuge wie hxextract und hxselect aus dem Paket "html-xml-utils". In diesem Fall hier ist es allerdings etwas blöd, weil innerhalb des <pre>-Tags wiederum ein anderes Format lauert. Mit Ruby und Mechanize bekommt man so etwas recht einfach hin.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Ja, sowas würde ich auch vorschlagen.

Konkret bietet es sich an, schon direkt beim wget zu filtern. dann steht wirklich nur noch der nackte Text in der vma-Datei:

1
2
3
4
PATH_TO_VMA_SALTS="/root/vma.txt"
wget "http://${MYDOMAIN}/vma/auth/setup" -O - |  hxselect -c pre  |  sed 's/.*= "//; s/"$//'  > vma.txt 

# ...

Allerdings musst Du bei Deinem geposteten Beispiel noch die </p> und <p> - Tags vertauschen, sonst geht das nicht.
(Und wenn Du sowieso nur 1 Datei saugst und in die Pipe schickst, kannst Du auch curl -s statt wget nehmen)

LG,

track

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

Nur-Ein-Blogger schrieb:

[…] vma.txt:

</p>
<pre>securitysalt                       = "&gt;Tyb;lf.=k{f4h%?2qGi$Ca4ASLMsx~3X/R#/U@M_HLbj5X7IzuO,y_T!W+n\E*;"
resources.auth.oss.rememberme.salt = "6J5)yL##,(&lt;UoqNVY{lI2Rb}^@Q4+&gt;7_:&gt;3-VI0T_P(XFsGe}RqO6ZLuxP/pN8~?"
defaults.mailbox.password_salt     = "P&amp;~t*98hv6H7|l7HDO(=ex+d&lt;])|j.}{q44Q?nD-/&lt;u(CS%jF;.zcKf^$yd~r6&gt;i"</pre>
<p>

Da sind HTML-Escapefolgen für „>“, „<“ und „&“ im Text. Dies müssten ggf. noch aufgelöst werden!

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

kB schrieb:

Nur-Ein-Blogger schrieb:

defaults.mailbox.password_salt     = "P&amp;~t*98hv6H7|l7HDO(=ex+d&lt;])|j.}{q44Q?nD-/&lt;u(CS%jF;.zcKf^$yd~r6&gt;i"</pre>

Da sind HTML-Escapefolgen für „>“, „<“ und „&“ im Text. Dies müssten ggf. noch aufgelöst werden!

Das weiß ich nicht. - kommt eben drauf an, wie und wo sie weiterverwendet werden.

Aber wenn dem so ist, wäre das ein Fall für hxunent (ebenfalls aus den HTML-XML-Utils):

track@track:~$ echo "P&amp;~t*98hv6H7|l7HDO(=ex+d&lt;])|j.}{q44Q?nD-/&lt;u(CS%jF;.zcKf^$yd~r6&gt;i"  |  hxunent
P&~t*98hv6H7|l7HDO(=ex+d<])|j.}{q44Q?nD-/<u(CS%jF;.zcKf^~r6>i 

LG,

track

Antworten |