Archivi tag: Shell

Ricerca di file modificati da un certo numero di giorni

Ancora una utile traduzione di un brevissimo articoletto/suggerimento “Search For Files Modified The Last … Days” che riporta un comando per cercare file modificati da un certo numero di giorni.

Eseguire una ricerca di file modificati fino a 4 giorni da adesso, modifica il 4 con il valore che desideri per la tua ricerca.

find ./ -type f -mtime -4 -exec ls -al {} \;

Oppure eseguire ricerche di file modificati tra alcune date. In questo esempio si cercano file più vecchi di 30 giorni, ma meno di 60 giorni (penultimo mese).

find ./ -type f -mtime -60 ! -mtime -30 -exec ls -la {} \;

Questi comandi sono molto utili se si è alla ricerca di buontemponi che possono aver creato problemi sui vostri server.

Perché i file e le directory impostati con i permessi a 777 sono pericolosi.

Ho tradotto un piccolo scritto “Scanning your server for 777 files and directories” che spiega brevemente e bene perchè i file e le directory impostati con i permessi a 777 sono pericolosi ed elenca una serie di comandi utili per trovarli e correggerli.

Una directory o file impostati a 777 sonop aperti al mondo (ed in alcuni casi) con i permessi di scrittura. Quindi, un eventuale buontempone che sa cosa sta facendo, può sfruttare una directory 777 per inserire del codice e anche dei file nel server e utilizzarli per compromettere altri file sul server stesso.
Una directory con i permessi a 777 deve essere usata con parsimonia e, possibilmente mai. È più spesso utilizzatA quando ci sono immagini che devono essere caricate o altri tipi di file che non possono essere eseguiti. Oppure, nei casi in cui le directory sono totalmente sicure attraverso la programmazione.

A proposito dei file php e html.
Qualsiasi script eseguibile (file php e html incluso) non dovrebbero mai, mai essere impostati su 777. Questo consente ai buontemponi di accedere a tali siti, modificare le righe di codice in casi specifici, e potenzialmente distruggere il vostro server. Quindi, qualsiasi script o codice impostato con permessi a 777 è pericoloso. E qualsiasi directory impostata a 777 che ha questi file all’interno è pericolosa.

Trovare tali file e directory facilmente.
Il comando find può essere utilizzato per la ricerca di file e directory impostati a 777. Questo può essere fatto se si ha accesso alla shell o SSH al tuo account o server.

find . -perm 777

restituirà tutte le directory che sono impostati a 777. Funziona ricorsivamente dalla directory corrente, quindi se avete un sacco di file, può richiedere tempo.

find . -perm 777 -name “*.*”

restituirà tutti i file che sono impostati a 777.

find . -perm 777 -name “*.php”

restituirà tutti i file che sono impostati a 777 e sono file php.

find . -perm 777 > temp.txt

se avete un sacco di risultati, si consiglia di inviare i risultati in un file di testo, piuttosto che vederli sullo schermo. il comando > (che è chiamato pipe [tubo] perché comporta lo smistamento dei risultati a qualcos’altro) invierà i risultati in un file, in questo caso ‘temp.txt’.

Scansionare file per trovare codice specifico.
Potrebbe anche essere necessario scansionare file per trovare codice specifico se si pensa che possano essere stati infettati, questo può essere fatto in modo ricorsivo con questo comando, che restituirà i nomi dei file che contengono la stringa di codice:

grep -r -l ‘stringa’ *

stringa: è il codice o la frase che si sta cercando
-r dice che è ricorsiva
-l indica di stampare i nomi dei file

Cambiare i permessi in modo ricorsivo.
Una volta trovato i file non validi, è possibile modificare un gruppo di permessi in modo ricorsivo, altrimenti si dovrebbe fare uno per uno. È possibile eseguire la scansione ricorsivamente e modificare tutti i file, partendo dalla directory corrente, con un unico comando:

find . -name ‘*.php’ -exec chmod 755 {} \;

cambia i permessi di tutti i file php in modo ricorsivo a 755

Scaricare file video da youtube con youtube-dl

Per scaricare in modo facile e veloce un file video da youtube si può usare l’ottimo youtube-dl un piccolo programma da usare da terminale così:

youtube-dl http://www.youtube.com/watch?v=codice_alfanumerico_youtube

dove il codice_alfanumerico_youtube è diverso per ogni video, comunque basta dare a youtube-dl l’url del video.

Si può verificare il seguente problema quando si prova ad usare youtube-dl:

ERROR: format not available for video

La soluzione trovata su ubuntuforums è ri-aggiornare youtube-dl 2 volte digitando da terminale:

sudo youtube-dl -U

si avrà il risultato seguente:

Updating to latest stable version…
Updated to version github

ripetere ancora il comando per la seconda volta:

sudo youtube-dl -U

si avrà:

Updating to latest stable version…
Updated to version 2011.11.23

A questo punto provate a scaricare un video come indicato sopra tutto dovrebbe funzionare a dovere.

Estrarre solo l’audio da un file video in formato flash (.flv)

Un modo semplice, veloce ed efficace per estrarre solo l’audio da un file in formato flash (.flv) tipicamente tutti i file che si possono scaricare da youtube e altri portali di video.

Per lo scopo usiamo l’ottimo ffmpeg così:

ffmpeg -i nome_del_file.flv -vn nome_del_file.mp3

dove nome_del_file.flv e il file video e nome_del_file.mp3 e il nome del file .mp3 da creare.

a proposito di zip …

Il comando zip è molto utile, specialmente quando si usa una console su una macchina remota, per poter facilmente comprimere e raccogliere intere cartelle in un unico file che possiamo poi scaricare o di cui possiamo fare il backup.

Ecco un piccolo appunto su alcune opzioni che trovo fondamentali.

zip ricorsivo di una intera cartella con inclusione di tutti i file e le sottocartelle all’interno di essa:

zip -r <file_zip> <dir_zip>
esempio:
zip -r file.zip cartella

zip ricorsivo di una intera cartella con inclusione di tutti i file e le sottocartelle all’interno di essa tranne una sottocartella specifica:

zip -r <file_zip> <dir_zip> -x “<no_dir>*”
esempio:
zip -r file.zip cartella -x “/cartella/nozip*”

zip ricorsivo di una intera cartella con inclusione di tutti i file e le sottocartelle all’interno di essa tranne le sottocartelle specificate:

zip -r <file_zip> <dir_zip> -x “<no_dir_1>*” <no_dir_2>*”
esempio:
zip -r file.zip cartella -x “/cartella/nozip1*” “/cartella/nozip2*”

dove:
l’opzione ‘-r’ sta a significare zip ricorsivo della cartella e di tutto il suo contenuto
l’opzione ‘-x’ esclude le voci specificate, che possono essere cartelle, file o categorie di file
<file_zip> è il nome del file .zip scelto
<dir_zip> è la cartella che si vuol zippare
<no_dir>, <no_dir_1>, <no_dir_2> sono le sottocartelle che si vogliono escludere

Linux mkdosfs.

Il comando mkdosfs permette di formattare partizioni, ad esempio di dischi USB, con il formato di file system FAT32, questo tipo di file system è utile per scambiare dati fra sistemi diversi, per esempio Linux e Windows. Si procede così, si crea una partizione con fdisk tipo FAT32 con il flag di tipo “b” e si formatta con il comando:

mkdosfs -v -F 32 -n NomeVolume /dev/sdx

dove /dev/sdx è il dispositivo con la partizione già creata da formattare.
La formattazione con mkdosfs supporta partizioni di grandi dimensioni oltre i 32GB.

xargs – un comando molto utile.

Questo piccolo post è un promemoria all’utilissimo comando “xargs” che può far risparmiare molto tempo, ecco un piccolo esempio sicuramente non molto utile che vi mostra il suo utilizzo base:

ls | xargs file $1

In pratica la lista generata dal comando “ls” viene utilizzata da “xargs” per lanciare ricorsivamente il comando “file $1” dove $1 è ogni voce della lista generata da “ls”che lista il contenuto della directory corrente.

Vi allego un paio di link uno su “wikipedia” l’altro su “unixreview“, in inglese, che parlano più approfonditamente di xargs.