Shell-skript als Binärdatei

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
chefwolf
Beiträge: 15
Registriert: 29.03.2002 19:25:03
Wohnort: Konstanz

Shell-skript als Binärdatei

Beitrag von chefwolf » 29.05.2002 12:19:47

Also folgendes,

ich hab einfach mal so aus jucks mir en klienes schell-skript gebalstelt, mit dem man verschiedene sachen starten kann oder nachrichten schreiben kann. Jetzt gefällt mir das echt gut und ich wollte fragen, ob man so ein skript irgendwie durch einen kompiler jagen kann um danach eine ausführbare Datei zu bekommen?

Und dann hab ich noch ein Prob.
---------------------------------------
In einem Menuepunkt meines "tollen" :wink: "Programms" soll man einem bestimmten Benutzer eine Nachricht zukommen lassen. Ich wollte dies mit dem write Befehl machen und habe versucht:

Code: Alles auswählen


      write $benutzer
      $text
      c^d                             # Das ist das Prob

bei dem Befehl write muss man ja mit "strg" + "d" abschließen. Dann wird der Text verschickt.
Wie baue ich dies aber in mein skrip ein?

Danke schon mal wieder im Vorraus


mfg wolf

Benutzeravatar
minuseins
Beiträge: 123
Registriert: 21.05.2002 17:42:51
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von minuseins » 29.05.2002 16:31:29

hmmm...
Warum willst du aus dem Shell-Script eine binaere Datei machen? Wenn es nur um das Ausfuehren geht, reicht ein 'chmod +x' und ein "#!/bin/bash" in der ersten Zeile des Scriptes. Solange es POSIX konform geschrieben ist, solltest du keine Schwierigkeiten haben, dieses Script durch unterschiedliche Shells ausführen zu lassen. (BASH, ksh, csh, etc.)

::write::

Solange es sich nur um CTRL+D Befehl handelt, kannst du diesen relativ einfach einfach über STDIO übergehen.

Code: Alles auswählen

echo Nice 2 c u | write $LOGNAME
schickt dir z.B. eine "nette" Nachricht.

so long

[-1]
He who work root can fell trees and knowledge is no substitute for experience.

chefwolf
Beiträge: 15
Registriert: 29.03.2002 19:25:03
Wohnort: Konstanz

Thank you

Beitrag von chefwolf » 30.05.2002 12:25:46

Sers,

also erst mal vielen vielen Dank, für die Sache mit dem "write". Hätte nicht gedacht, dass das so einfache sein würde. Echt super.

Und des mit der Binärdatei, es ist nicht das Prob, dass sie sich nicht ausführen lässt. Nur gefällt mir des ding was ich da gezaubert hab langsam echt ganz gut. Und ich wollt des mal en paar aus meiner Klasse zeigen. Nur gibts da so en par pseudo-cracker, die mir dann wieder mein Quellcode verschandeln und so. Das wollte ich halt vermeiden. Ein teil hab ich sogar in C gemacht ( en kleines Quiz) . Da kommen die schonmal nicht ran. Nur das mit den Nachrichten verschicken und so, wäre vielleicht ( für mich halt ;-) ) en bissle schwer in C zu machen, da ich noch nicht viel kann. Und mit shell- skripten kann man eigentlich ganz lustige sachen, und vor allem ziemlich einfach machen. Wollte da eigentlich nur mal reinschnuppern, aber jetzt gefällt es mir echt gut.

Und wenn ich grad dabei bin,
ich wollte noch so ein kleines game reinbasteln. So Snake niveau. Mit was kann ich das denn am einfachsten realisieren. Ich dachte da so an Python. Da hab ich mal gelesen, das sich damit recht einfach so kleine Spiele machen lassen. Kennt da jemand so ein Tutorial, das über spiele mit Python, oder eine andere einfache Skriptsprache? Also kein Tutor mit Themen wie "Kontrollstrukturen", "Variablen", "Aufbau eines ... Skripts". Sowas gibts nämlich wie sand am Meer. Und so sachen sind ja immer ähnlich.


Dann nochmal Danke

Wolf

Benutzeravatar
minuseins
Beiträge: 123
Registriert: 21.05.2002 17:42:51
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von minuseins » 30.05.2002 14:35:56

also erst mal vielen vielen Dank, für die Sache mit dem "write". Hätte nicht gedacht, dass das so einfache sein würde. Echt super.
Kein Problem, ist auch nur eine der zahlreichen Möglichkeiten! ;)
Und des mit der Binärdatei, es ist nicht das Prob, dass sie sich nicht ausführen lässt. Nur gefällt mir des ding was ich da gezaubert hab langsam echt ganz gut. Und ich wollt des mal en paar aus meiner Klasse zeigen. Nur gibts da so en par pseudo-cracker, die mir dann wieder mein Quellcode verschandeln und so.
Wenn du nur verhindern willst, daß dein Quellcode verändert wird, sollte ein 'chmod" 755' eigentlich Abhilfe schaffen. Mit "root"-Rechten kannst du auch noch mit 'chattr +i' ein Überschreiben verhindern. Mit einem SUID versehenen "Start"-Script könntest du sogar verhindern, daß das eigentliche Script kopiert und verändert wird. Selbst das kopieren und verändern des "Start"-Scriptes würde nichts helfen, weil das SUID-Bit nicht mitkopiert wird.
Mit einer kleinen Funktion, die in regelmäßigen Abständen den MD5-Hash prüft, kannst du bei vielen Script-Kiddies Frustrationen auslösen, da jede noch so kleine Änderung unweigerlich zum Programmabbruch führt.
Das wollte ich halt vermeiden. Ein teil hab ich sogar in C gemacht ( en kleines Quiz) . Da kommen die schonmal nicht ran. Nur das mit den Nachrichten verschicken und so, wäre vielleicht ( für mich halt ) en bissle schwer in C zu machen, da ich noch nicht viel kann.
So wahnsinnig schwer ist es nicht, auch wenn man vorhat die Funktion von 'write' selbst in sein Programm zu implementieren. Wenn du dich allerdings nicht mit der Funktionsweise von 'write' vefassen willst, warum führst du von deinem C/C++ Programm nicht 'write' aus? Das Ausführen von externen Programmen aus dem Eigenen C/C++ Programm sollte eigentlich in fast jeder Doku beschrieben sein! (KDevelop bietet sich da
evtl. an!)
Und mit shell- skripten kann man eigentlich ganz lustige sachen, und vor allem ziemlich einfach machen. Wollte da eigentlich nur mal reinschnuppern, aber jetzt gefällt es mir echt gut.
Dito, aber man sollte hier anmerken, daß Shell-Scripte "Quick & Dirty" sind, Kontrollmechanismen nicht auf den Code zuzugreifen sind zunächst nicht vorgesehen. Evtl. 3rd Party-Tools, die das realisieren kann es durchaus geben, sind mir aber nicht bekannt. Mann könnte aber z.B. Perl verwenden. Das unterstüzt nämlich eine Kompilierung des Programmes von Haus aus. Die Sprache TCL, wäre da wahrscheinlich für dich auch interessant. Für Python hab ich noch nie Zeit gehabt, daher kann ich dir nichts dazu sagen. Mein Tipp ist allerdings: Schreib ein Programm immer in einer Sprache und biete lediglich an, die Plugins in einer Script-Sprache zu schreiben. Das vereinfacht nämlich das Warten des Programmes ungemein!

so long

[-1]

[-1]
He who work root can fell trees and knowledge is no substitute for experience.

Benutzeravatar
Dookie
Beiträge: 1104
Registriert: 17.02.2002 20:38:19
Wohnort: Salzburg
Kontaktdaten:

Beitrag von Dookie » 30.05.2002 16:18:01

Hi chefwolf,

schau mal auf http://www.pygame.org/

Mit Python lassen sich sehr einfach auch komplexe Programme erstellen und es gibt schon gut ausgetestete Module für faßt jeden Zweck.


Gruß

Dookie

chefwolf
Beiträge: 15
Registriert: 29.03.2002 19:25:03
Wohnort: Konstanz

Beitrag von chefwolf » 02.06.2002 19:09:10

Jo,

erstmal wieder "danke, danke, danke". Ist wirklich wahnsinn, wie schnell man hier echt hammer brauchbare Antworten bekommt. Sucht so ein Service mal woanders.

Das Python muss ich jetzt echt mal lernen, kann man coole sachen mit machen.

Bis zum nächtsen mal dann. :wink:


mfg Wolf

Antworten