* premesso che:
$ echo $SHELL
/bin/bash
e
$ uname -a
Darwin io.local 8.5.0 Darwin Kernel Version 8.5.0: Sun Jan 22
10:38:46 PST 2006; root:xnu-792.6.61.obj~1/RELEASE_PPC Power
Macintosh powerpc
* si può avere:
creo uno script e gli attribuisco i permessi di esecuzione
$ cat << EOF > la_compagnia_dei_celestini.text
> echo "utente! grazie per eseguire al mio posto e senza la tua
volontà operazioni noiose"
> f_ip=0; echo -n \$f_ip\,\ ; f_i=1; echo -n \$f_i; for ((i=2;i<=37;i
++)); do f_in=\$((\$f_i+\$f_ip)); f_ip=\$f_i; f_i=\$f_in; echo -n \,\
\$f_in; done; echo
> EOF
$ chmod +x la_compagnia_dei_celestini.text
$ ls -l la_compagnia_dei_celestini.text
- -rwxr-xr-x 1 antani antani 239 Feb 23 00:00
la_compagnia_dei_celestini.text
$ ls -l la_compagnia_dei_celestini.text/rsrc
- -rwxr-xr-x 1 antani antani 0 Feb 23 00:00
la_compagnia_dei_celestini.text/rsrc
$ open .
utilizzando Finder.app, seleziono il file
la_compagnia_dei_celestini.text, premo mela-i, su `Open with:`
imposto Terminal.app ed ottengo:
$ ls -l la_compagnia_dei_celestini.text/rsrc
- -rwxr-xr-x 1 antani antani 1338 Feb 23 00:00
la_compagnia_dei_celestini.text/rsrc
creo il file zip con il comando ditto (l'opzione --rsrc non è
necessaria, viena utilizzata di default)
$ ditto -c -k la_compagnia_dei_celestini.text
la_compagnia_dei_celestini.text.zip
$ unzip -l la_compagnia_dei_celestini.text.zip
Archive: la_compagnia_dei_celestini.text.zip
Length Date Time Name
- -------- ---- ---- ----
239 02-23-06 00:00 la_compagnia_dei_celestini.text
1420 02-23-06 00:00 ._la_compagnia_dei_celestini.text
- -------- -------
1659 2 files
oppure, usando l'opzione --sequesterRsrc:
$ ditto --sequesterRsrc -c -k la_compagnia_dei_celestini.text
la_compagnia_dei_celestini.text.zip
$ unzip -l la_compagnia_dei_celestini.text.zip
Archive: la_compagnia_dei_celestini.text.zip
Length Date Time Name
- -------- ---- ---- ----
239 02-23-06 00:00 la_compagnia_dei_celestini.text
0 02-23-06 00:00 __MACOSX/
1420 02-23-06 00:00 __MACOSX/._la_compagnia_dei_celestini.text
- -------- -------
1659 3 files
in Safari.app basterà abilitare l'opzione `Open safe files after
downloading`.
prelevando il file .zip verrà eseguito il codice contenuto nello script.
per far eseguire lo script in Mail.app non è necessario creare
l'archivio zip.
* note:
credo che il tutto funzioni anche su mac os x 10.3.x, almeno la
creazione del file .zip
nello script si possono mettere un sacco di cose carine, dati
codificati in uuencode o base64, applescript da eseguire con il
comando osascript, invio di posta tramite postfix (di solito
abilitato), etc.
il codice viene eseguito grazie a Terminal.app, il suo riferimento è
contenuto nel file ._la_compagnia_dei_celestini.text
$ hexdump -Cv cat la_compagnia_dei_celestini.text/rsrc | less
oppure:
$ unzip -p la_compagnia_dei_celestini.text.zip -x
la_compagnia_dei_celestini.text | hexdump -Cv | less
forse, modificando il comando si potrà ottenere qualcosa di più
discreto.
per modificare i resource fork via linea di comando utilizzate il
pacchetto osxutils ( uri ::
http://osxutils.sourceforge.net/ ),
presente anche in darwinports (
http://darwinports.org/ ) e fink
( uri ::
http://fink.sourceforge.net/ ).
bye :: -automatismi +consapevolezza
- --
cybergio