2017-02-02 5 views
3

Ich möchte Befehl auf Linux-Box ausführen, aber ich sollte Befehle im Base64-Format senden.Decode von Base64 und Befehl ausführen

Wie kann ich Base64 String auf Linux-Befehl dekodieren und dann die decodierte Zeichenfolge ausführen?

+0

mir hat 'base64' als Befehl installiert, sonst, wenn Sie openssl haben, kann es auch' openssl base64 -d' dekodieren: versuchen z.B. '$ (echo 'ZWNobyBhYmMK' | openssl base64 -d)' ** Hinweis ** Wenn Sie keine Kontrolle über die base64 haben, seien Sie vorsichtig, es könnte enthalten rm -rf ~ oder andere nette Sachen –

+0

@Stefan Sie erlebt schlecht Momente mit Base64 insbesondere? – TGrif

+0

Nein, aber angesprochene Systeme wie AIX-Server, wo openssl schon da war, aber base64 nicht. Ich benutze nur das, was ich für brauchbar halte und habe mich daran gewöhnt. –

Antwort

4

Verwendung base64 -d:

# 'string' variable contains a base64 encoded command 
command=$(base64 -d <<< "$string"); decode_status=$? 
# run the command only if decode was successful 
# we shouldn't enclose $command in double quotes in this case 
[[ $decode_status == 0 ]] && $command