Re: Seltsames Verhalten von echo

Autor: Stephan Gromer <stephan_at_gromer-online.de>
Datum: Fri, 20 May 2011 16:44:59 +0200
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ganz lieben Dank an Markus und Thomas!

Das hat mir sehr geholfen.
Bzgl. Sicherheit. Das Skript nutzt nur Dateien, die ich selbst über
Dropbox in ein Verzeichnis stecke und kombiniert diese zu einem
Gesamt-PDF nach Entfernung evtl. PDF-Sperren. Ein Nutzer kann das Skript
nur über einen Button über ein PHP-Skript aufrufen und bekommt dann
einen Link um die Fertige Datei herunterzuladen. Es wird nichts über den
Browser übergeben, von daher denke ich reicht das für meine Zwecke, oder
habe ich dennoch ein Scheunentor geöffnet?

Nochmals lieben Dank!
Grüße und schönes WE
 Stephan

Am 20.05.2011 15:44, schrieb Thomas Stiefel:
> Markus Demleitner schrieb am 20.05.2011 08:03:
> 
>> richtige Frage: "*Welches* echo verhält sich, na ja, komisch?".
>>
>> Während nämlich echo (1), also in der Regel /bin/echo in der Manpage
>> sagt
>>
>>     -E     disable interpretation of backslash escapes (default)
>>
>> ist das, was du bekommst, wenn du dein Skript so schreibst, wie du es
>> schreibst, das bash-builtin.  Über das erfährt man in help echo:
>>
> Es ist definitiv ein Quoting Problem und es wird auch ziemlich sicher
> das bash-builtin verwendet - außer Du hast im Script ein echo definiert,
> aber danach sieht es nicht aus.
> Ansonsten gilt immer folgende Reihenfolge:
> 
> shell-builtin > Alias > Binary (je nach PATH-Reihenfolge)
> 
> Wenn du es genau wissen willst, dann liefert dir das der Befehl "type
> echo". Hier ein kleines Beispiel dazu:
> 
> $  type echo; alias echo='/bin/echo'; type echo; unalias echo; type echo
> echo is a shell builtin
> echo ist ein Alias von `/bin/echo'.
> echo is a shell builtin
> 
>> Es gibt viele Möglichkeiten, das zu fixen (%s#echo#/bin/echo im vi
>> ist eine davon), aber ich würde wahrscheinlich zu einem Here-document
>> raten, so wie das gemacht ist.  
>>
> Du könntest also zuerst mal versuchen alle echo-Aufrufe in deinem Script
> durch "echo -E" zu ersetzen.
> 
> Da in den Beispiel bei den viele Zeilen fast alles bleiben soll wie es
> ist und nur in einer Zeile variabler Text ($1) auftaucht würde ich auch
> das Here-Dokument oder gleich ein externes File mit dem Text erstellen,
> dort einen Platzhalter (z. B. "_TEXT1_") einbauen und nur diesen mit sed
> durch den Inhalt von $1 ersetzen lassen. Also etwa so:
> 
> TEXTEMPLATE="create.tpl"
> CREATETEX="create.tex"
> 
> createtitle()
> {
> cat $TEXTEMPLATE | sed ...
> }
> 
>> Aber zwecks due diligence: Shellskripts als CGI-Backends verlangen
>> viel Sorgfalt bei der Input-Validierung, und wenn du Eingaben aus dem
>> Netz in TeX übernimmst, solltest du dran denken, dass TeX
>> Turing-vollständig ist und Zugriff auf dein Dateisystem hat.
>>
> FULL ACK!
> Wenn das wirklich von Webserver aufgerufen wird, dann würde ich lieber
> versuchen das durch Systemaufrufe in PHP direkt zu handlen oder noch
> besser das Ganze mit Perl abbilden.
> 
> Gruß Tom
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJN1n5rAAoJEFvfAe9k38dfw4cH/01De5HAJAKL4sGUdtXWddGk
JqMWR8gUt19SvRh/0kk0DuvAy2lHSemRWeJj2nybnXi0boNpf0wth0rNgCWGkpz9
S7k2FXsbT90oFKam5gUE6hFfHXwha2qFCRIWp60CojloWMlCabdNcRrtLq9KRf7H
FITV9IRg5QLk2DB4oFm+zGYNdTe6+jmnITl3g/o9GZ1dKM6c8BiLsoop3vcuM8U0
hg4Dbq0qI5Hop9o4/Ywy/X98wq3q2LaylTMpH9Wz2ndW29od8uiiXyAbdJ07HY97
sdYqnsUeEZhzDn5QBlPTNQiOFzDVWXRjFIFzlbC7ZPIVOLTE0t8sKAXKmsaW1P8=
=bgNt
-----END PGP SIGNATURE-----
-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/
Empfangen am 20.05.2011

Dieses Archiv wurde generiert von hypermail 2.2.0 : 20.05.2011 CEST