Frage:
Kann man seine Shell-Scripte verschlüsseln?
Denn ich habe dort Aufrufe mit Passwörtern (z.B. MySQL-Backup-Script, etc.) drin und möchte nicht, daß die jemand anderes lesen kann.
Antwort:
Ja und es macht manchmal Sinn. Z.B. sind nicht alle Dateien immer mit Hilfe der User-Rechte entsprechend zu schützen. Manchmal soll ein Script auch über einen anderen User ausgeführt werden, etc.
Hierzu gibt es ein nettes Script aus Spanien: http://www.datsi.fi.upm.es/~frosal/
Es übersetzt ein Shell-Script in C, verschlüsselt dabei bereits alle Strings und kompiliert es dann.
Installation:
cd /usr/local/src
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz
tar xzf shc-3.8.6.tgz
cd shc-3.8.6
make
make install
Wer mag, kann bereits das Test-Script übersetzten:
make test make strings
Anwendung
Wir schreiben ein kleines Test-Script mit Passwort und nennen es z.B. mysql_processlist.sh
:
#!/bin/sh mysql -uroot -pPASSWORD -e 'show processlist;'
Und nun übersetzten wir es und führen es aus:
shc -f mysql_processlist.sh ./mysql_processlist.sh.x #such das Passwort: hexdump -C mysql_processlist.sh.x | less
Nettes Feature:
Auf ein wesentlich nettes Feature von shc
möchte ich noch eingehen:
Man kann damit eine Art Freeware-/Lizenz-Sicherung anhand des aktuellen Datums einbauen:
shc -e 31/05/2008 -m "Ich will nicht mehr!" -f mysql_processlist.sh ./mysql_processlist.sh.x
Ich will nicht mehr!