Was ist / bin / rot

13

Ich habe versucht zuzugreifen, redis-cliaber weil ich so faul bin, habe ich redzweimal getippt und die Tabulatortaste gedrückt, aber mir ist aufgefallen, dass tatsächlich eine Binärdatei aufgerufen wird, reddie sich unter befindet /bin/.

Als ich es tat

cat /bin/red

es zeigte

#! /bin/sh
bindir=`echo "$0" | sed -e 's,[^/]*$,,'`
exec "${bindir}"ed --restricted "$@"

Irgendeine Idee was das ist?

Hinweis. Wenn ich es ausführe red, wartet es nur auf eine Eingabe und was auch immer ich eintippe, es speichert es entweder und wartet auf eine andere Eingabeaufforderung oder kehrt zurück ?, beachte, dass es nur dann beendet wird, wenn qes getroffen wird. Auch wenn Sie Zahlen von 0-9 eingeben und die Eingabetaste gedrückt halten, werden alle Eingaben angezeigt , die Sie beim Speichern der zuvor eingegebenen Daten vorgenommen haben

Beispiel:

a <<<-- input
bsa <<< input taken without ?
^C <<<--- hitting ctrl-c
?  <<<--- output

Beispiel 2:

v
?
b
?
a
qwrefdf <<-- saved because it didn't output ? after typing "a" up
^C
?
 <<- waiting for input

"h" gibt also "ungültige Adresse" aus und nur "a", "x", "c" und "i" akzeptieren Eingaben. Alles andere als Zahlen ergibt?

M03
quelle
3
Sie können diese Frage auch selbst beantworten, indem Sie den Befehl ausführen dpkg -S /bin/red. Dadurch erfahren Sie, dass die Datei Teil des edPakets ist, und apt-cache show edSie erhalten eine Beschreibung dieses Pakets.
David
3
Sehr wichtig: Führen Sie einige Anwendungen, die Sie nicht kennen, nicht blind aus. Sogar Linux hat Malware ...
Goufalite
7
Ed ist der Standard-Texteditor. gnu.org/fun/jokes/ed-msg.html
IMSoP
4
Oder noch einfacher: man red.
OrangeDog
@IMSoP Ich mag, wie im Witz sie vi bei 1,3 MB lächerlich groß gemacht haben. Fast 30 Jahre schneller Vorlauf, und die vim-Binärdatei auf meinem System ist mit 2,7 MB doppelt so groß wie der Witz: ')
marcelm

Antworten:

28

redist edim eingeschränkten Modus.

$ whatis red
red (1)              - line-oriented text editor

$ man red
shows `ed` man page.

Auch der Code zeigt, führt er ed --restrictedaus bindirmit allen Argumenten ( "$@").

edFühren Sie für ein Handbuch zu und seinen Befehlen aus info Ed.

Im Kapitel Invoking ed:

Das Format zum Ausführen von 'ed' ist:

 ed [OPTIONS] [FILE]
 red [OPTIONS] [FILE]

[...]

'-r' '--restricted' Im eingeschränkten Modus ausführen. Dieser Modus deaktiviert die Ausgabe von Dateien aus dem aktuellen Verzeichnis und die Ausführung von Shell-Befehlen.

pLumo
quelle
Nützliche Befehle zum Erstellen einiger Informationen in dieser Antwort: file /bin/redund cat /bin/red(da filezeigt, dass es sich um ein "POSIX-Shell-Skript, ausführbarer ASCII-Text" handelt).
Bis auf weiteres angehalten.