Datei erstellen, Name und Inhalt
Datei erstellen, Name und Inhalt
Hallo,
ich soll eine Datei erstellen mit dem Inhalt "!!abc--def!!" und ich soll sie "--$$?!!; rm -rf *;" nennen.
Das mit dem Inhalt habe ich verstanden, echo "\!\!abc--def\!\!" > Hallo (zum Beispiel). In der Datei steht nun \!\!abc--def\!\!, ist wohl aber in der Form richtig, anders geht es nicht, oder?
Nur bei dem Namen habe ich Probleme, wie kann ich $, rm, -rf usw. verstecken? Oder ist das gar nicht möglich?
Danke schonmal im Voraus,
Jintonic
ich soll eine Datei erstellen mit dem Inhalt "!!abc--def!!" und ich soll sie "--$$?!!; rm -rf *;" nennen.
Das mit dem Inhalt habe ich verstanden, echo "\!\!abc--def\!\!" > Hallo (zum Beispiel). In der Datei steht nun \!\!abc--def\!\!, ist wohl aber in der Form richtig, anders geht es nicht, oder?
Nur bei dem Namen habe ich Probleme, wie kann ich $, rm, -rf usw. verstecken? Oder ist das gar nicht möglich?
Danke schonmal im Voraus,
Jintonic
Re: Datei erstellen, Name und Inhalt
Hier ist ein Troll am Werk - entweder du selbst, oder derjenige, der dir diese Aufgabe gestellt hat.
Keiner der bei Verstand ist, wird jemals so einen Dateinamen anlegen wollen - technisch Unbedarfte deshalb nicht, weil er keinen Sinn ergibt, technisch Versierte deshalb nicht, weil er potenziell gefährlich ist. [1]
Sollte die Aufgabe Teil einer Schulübung sein, dann ist die Lösung nicht die Erstellung der Datei sondern die Erkenntnis der Unsinigkeit der Aufgabenstellung.
[1] https://xkcd.com/327/
Keiner der bei Verstand ist, wird jemals so einen Dateinamen anlegen wollen - technisch Unbedarfte deshalb nicht, weil er keinen Sinn ergibt, technisch Versierte deshalb nicht, weil er potenziell gefährlich ist. [1]
Sollte die Aufgabe Teil einer Schulübung sein, dann ist die Lösung nicht die Erstellung der Datei sondern die Erkenntnis der Unsinigkeit der Aufgabenstellung.
[1] https://xkcd.com/327/
Re: Datei erstellen, Name und Inhalt
Über den Sinn lässt sich natürlich streiten, es war aber tatsächlich eine Klausuraufgabe in meinem Studium
Achja, die Maskierung soll natürlich so schwach wie möglich sein.
Ich glaube ich bin zu der Lösung gekommen:
echo "\!\!abc--def\!\!" > '--$$?!!; rm -rf *;'
Hat jemand vielleicht eine schwächere Maskierung als Lösung?
Achja, die Maskierung soll natürlich so schwach wie möglich sein.
Ich glaube ich bin zu der Lösung gekommen:
echo "\!\!abc--def\!\!" > '--$$?!!; rm -rf *;'
Hat jemand vielleicht eine schwächere Maskierung als Lösung?
Re: Datei erstellen, Name und Inhalt
Code: Alles auswählen
echo "\!\!abc--def\!\!" > '--$$?!!; rm -rf *;'
Wozu auch immer das gut sein soll. Zumindest den zweiten Teil hätte man auch ohne das dann doch stinkende rm -rf vermitteln können. Und wenn der nächste Teil das Löschen der Datei sein soll, hilft in den meisten Shells (deren Benennung hier offensichtlich vergessen wurde, obwohl sie für die Lösung wichtig ist) die Tabulator-Taste.
Den Unterschied zwischen '' und "" findest du in der Manpage der von dir verwendeten Shell, und im Fall der Bash in jedem popeligen Anfänger-HowTo.
Re: Datei erstellen, Name und Inhalt
Das finde ich auch fahrlaessig. *Viel* zu gefaehrlich als dass das ein verantwortungsvoller Aufgabensteller einbauen wuerde ... und dann auch noch mit `-r' und `-f'. ... Demonstration geht auch ohne Selbstzerstoerungsgefahr.niemand hat geschrieben:16.01.2020 07:46:17Zumindest den zweiten Teil hätte man auch ohne das dann doch stinkende rm -rf vermitteln können.
Use ed once in a while!
Re: Datei erstellen, Name und Inhalt
Wie schon in einem anderen Thread (den ich leider nicht mehr finde) mal diskutiert, kann man die drei Quoting-Mechanismen in der Shell nicht sortieren, zumindest der Backslash ist einfach anders als Single- und Double-Quotes. Die Anforderung, die du beschreibst -- ``so schwach wie moeglich'' -- finde ich unsinnig. Ich finde es in der Praxis egal wie man quotet, solange es korrekt ist. Zudem sind in Double-Quotes Backslashes je nach verwendeter Shell in unterschiedlicher Weise noetig. Ausrufezeichen, beispielsweise, muessen bzw. duerfen gar nicht unbedingt gequotet werden. Hier auf meinem System in der mksh:Jintonic hat geschrieben:16.01.2020 03:20:26Achja, die Maskierung soll natürlich so schwach wie möglich sein.
Code: Alles auswählen
B-) echo "\!\!abc--def\!\!"
\!\!abc--def\!\!
B-) echo "!!abc--def!!"
!!abc--def!!
B-) echo !!abc--def!!
!!abc--def!!
B-) echo \!\!abc--def\!\!
!!abc--def!!
Code: Alles auswählen
$ date
Thu Jan 16 09:24:08 CET 2020
$ echo !!abc--def!!
echo dateabc--defdate
dateabc--defdate
In Summe haben wir hier also eine schlechte Aufgabe ... bei der man vermutlich am besten das hinschreibt, was der Aufgabensteller vermutlich lesen will, ohne rumzudiskutieren, weil er es vermutlich nicht verstehen wird. Ich habe damit selber auch Erfahrungen gemacht. Am besten Augen zu und durch ...
Use ed once in a while!
Re: Datei erstellen, Name und Inhalt
Das mag für den Einzelnen in der konkreten Situation tatsächlich die einfachste Lösung sein, halte ich aber im Allgemeinen für eine schlechte Lösungsstrategie.Meillo hat geschrieben:16.01.2020 09:20:59In Summe haben wir hier also eine schlechte Aufgabe ... bei der man vermutlich am besten das hinschreibt, was der Aufgabensteller vermutlich lesen will, ohne rumzudiskutieren, weil er es vermutlich nicht verstehen wird. Ich habe damit selber auch Erfahrungen gemacht. Am besten Augen zu und durch ...
Ziel einer Bildungseinrichtung (und deren Angestellten) sollte es sein, den zu Bildenden korrektes*(!) Wissen zu vermitteln.** Schlechte (hier: gefährliche) Übungsaufgabenstellungen laufen diesem Ziel zuwider und sind daher abzustellen.
Wer als Schüler/Student so eine schlechte Aufgabenstellung erkennt, sollte im Interesse seiner (aktuellen und zukünftigen) Mitschüler/Kommilitonen darauf hinarbeiten, diesen Zustand abzustellen. Das mag erstmal unbequem sein, weil man sich als "Untergebener" in der Situation nicht in der Position wähnt, die Autorität des Lehrers/Dozenten anzugreifen, aber Autoritätshörigkeit ist hier fehl am Platz.
Ich selbst hatte so eine Situation mal im Physikunterricht (8. Klasse?). Da vermittelte der Lehrer den Eindruck, dass der Mond keine Eigenrotation besäße.*** Was er dabei nicht berücksichtigt hatte war, dass das aufgrund der gebundenen Rotation eine Frage des Bezugssystems (geozentrisch vs. z.B. heliozentrisch) ist. Wir haben letztendlich eine ganze Unterrichtsstunde damit verbracht, eben diesen Aspekt zu erörtern.
Vor ein paar Jahren kam das Thema beim Schwelgen in Erinnerungen auf einer Grillparty bei meinen Nachbarn auf. Die Nachbarin, welche wenige Jahre älter ist als ich und die selbe Schule besuchte, war auch mit Ü30 noch der Ansicht, dass der Mond "feststehe". Ihr Bruder, etwas jünger als ich, sah das differenzierter.
*) Natürlich nach "aktuellem Stand der Technik/Wissenschaft/etc."
**) Hat sie dieses Ziel nicht, dann entsorgt sie selbst ihre Daseinsberechtigung.
***) Libration mal außen vor
Re: Datei erstellen, Name und Inhalt
Bezogen auf das ``rm'', ja. Das sollte man unbedingt kritisieren und verhindern, dass es zukuenftig weiter auftaucht.hikaru hat geschrieben:16.01.2020 10:44:40Das mag für den Einzelnen in der konkreten Situation tatsächlich die einfachste Lösung sein, halte ich aber im Allgemeinen für eine schlechte Lösungsstrategie.Meillo hat geschrieben:16.01.2020 09:20:59In Summe haben wir hier also eine schlechte Aufgabe ... bei der man vermutlich am besten das hinschreibt, was der Aufgabensteller vermutlich lesen will, ohne rumzudiskutieren, weil er es vermutlich nicht verstehen wird. Ich habe damit selber auch Erfahrungen gemacht. Am besten Augen zu und durch ...
Ziel einer Bildungseinrichtung (und deren Angestellten) sollte es sein, den zu Bildenden korrektes*(!) Wissen zu vermitteln.** Schlechte (hier: gefährliche) Übungsaufgabenstellungen laufen diesem Ziel zuwider und sind daher abzustellen.
Meine Aussage bezog sich mehr auf das schwaechere oder staerkere Quoting. Da wird IMO ein Konzept der Ordnung vermittelt, das nicht der Realitaet entspricht, zudem ist die Aufgabe Shell-Abhaengig, weswegen IMO nicht auf Quoting-Details wert gelegt werden sollte. Das sind mehr Fragen des Verstaendnismodells, der Perspektive, des Stils ... und damit schlecht auf ``korrektes Wissen'' abbildbar. Dagegen kann man, meiner Erfahrung nach, kaum angehen, weil diejenigen, die die schlechten Aufgaben stellen oft kein groesseres Wissen haben und zudem oft (deswegen) auch an Selbstwert mangeln. Sachliche Argumentation wird dann schnell emotional und besserwisserisch aufgefasst ... so wie der Uebungsleiter, der mir damals bei einer Aufgabe mit freier Programmiersprachenwahl die Haelfte der Punkte abgezogen hat, wegen fehlender Kommentare in meinem absolut typischen 120-Zeilen C-Code, den er als Java-Programmierer eben nicht verstanden hat. Da war auch nichts los mit einer Argumentation, dass ``fehlende Kommentare'' kein Kriterium sein duerfen. Der Code war in seiner Art Community-typisch, das Problemloesungsverfahren war bekannt, das Programm war kurz ... an der Verstaendlichkeit kann es nicht grundsaetzliche gemangelt haben.
Im konkreten Fall also auf das Thema ``schwaches Quoting'' und Shell-Abhaengigkeit einzusteigen halte ich fuer wenig erfolgreich. Der Aufgabensteller wird das Thema vermutlich selber nicht tiefer durchdrungen haben, weil er sonst ein anderes Denkmodell vermitteln wuerde (das den Begriff ``schwach'' und die implizierte Ordnung (``moeglichst schwaches Quoting'')) aussen vor laesst. Auf die Shell-Abhaengigkeit wird vermutlich nur die Entgegnung kommen, dass die Uebungen mit Bash Version XY konzipiert sind. Punkt. Ende der Diskussion. Beim Thema Shell-Programmierung IMO aber eine schlechte Haltung, weil die Realitaet dort die Heterogenitaet ist. Shell-Umgebungen sind normalerweise vielfaeltig. Sich dort auf eine Version festzulegen finde ich recht weltfremd.
Langer Rede kurzer Sinn: Falsch Fakten oder Gefahr (z.B. `rm') sollten zu Anmerkungen fuehren. Bei zu kurzsichtigen Gedankenmodellen wuerde ich nur dann etwas sagen, wenn ich den Eindruck habe, dass der Aufgabensteller dafuer offen und interessiert ist.
Use ed once in a while!
Re: Datei erstellen, Name und Inhalt
Das laesst mich immer noch nicht in Ruhe. Das ist ... hmm ... Schwachsinn.Jintonic hat geschrieben:16.01.2020 03:20:26Achja, die Maskierung soll natürlich so schwach wie möglich sein.
In der Praxis wuerde ich es stets mit Single-Quotes machen:
Code: Alles auswählen
echo '!!abc--def!!' > '--$$?!!; XX -rf *;'
Falls es um Robustheit in Scripten geht, sollte man vielleicht von `echo' auf `printf' wechseln, weil das nicht irgendwelche obskuren Interpraetationen im String macht:
Code: Alles auswählen
printf '%s\n' '!!abc--def!!' > '--$$?!!; XX -rf *;'
Die Quoting-Moeglichkeiten einzuschraenken scheint mir eine beliebte akademische Aufgabenstellung zu sein. Ich finde sie praxisfern. Das Schoene an den Buechern von Kernighan ist, dass er nie akademische Beispiele bringt, sondern immer an der Praxis ansetzt. Wenn man also das Verstaendnis von verschiedenen Quoting-Arten testen will, dann sollte man dazu passende praxisnahe Aufgaben stellen. Wenn man will, dass die Studenten Double-Quotes verwenden, muss man ja nur Single-Quotes in den String packen:
Code: Alles auswählen
echo "!!abc-'-def!!"
Das waeren praxisnahe Qualitaetsaufgaben, bei denen die Studenten automatisch die richtigen (oder gerne auch andere, funktionierende) Techniken anwenden muessen, um die Aufgabe zu bewaeltigen. Die unterschiedlichen Loesungen kann man dann diskutieren.
Aber wir sollten in der Lehre wegkommen von den akademischen Sandkastenproblemstellungen ... die dann auch noch windschiefe Konzepte vermitteln.
Use ed once in a while!
Re: Datei erstellen, Name und Inhalt
Meillo hat geschrieben:16.01.2020 13:02:11Aber wir sollten in der Lehre wegkommen von den akademischen Sandkastenproblemstellungen ... die dann auch noch windschiefe Konzepte vermitteln.
Re: Datei erstellen, Name und Inhalt
@Meillo
Warum verschiebst Du diesen Beitrag nicht ins dafür vorgesehene Forum?
Der TE sucht ja kein Programm, sondern nach einer Möglichkeit in seinem Script.
Warum verschiebst Du diesen Beitrag nicht ins dafür vorgesehene Forum?
Der TE sucht ja kein Programm, sondern nach einer Möglichkeit in seinem Script.
Re: Datei erstellen, Name und Inhalt
Danke, das ist ein guter Hinweis. Ist mir gar nicht aufgefallen.KP97 hat geschrieben:16.01.2020 15:07:41@Meillo
Warum verschiebst Du diesen Beitrag nicht ins dafür vorgesehene Forum?
Der TE sucht ja kein Programm, sondern nach einer Möglichkeit in seinem Script.
(Ich nutze das Forum seit rund einem Monat nur mit w3m, da ist die Information, in welchem Forum sich ein Thread befindet, nicht auf den ersten Blick ersichtlich wie in der grafischen Darstellung. Erfreulicherweise laesst sich das ganze Forum mit w3m benutzen, nur die Uebersichtlichkeit leidet ein bisschen.)
Use ed once in a while!