6 999
contributi
m (ridotta la gravità dell'avviso) |
S3v (discussione | contributi) (1.0.68) |
||
Riga 87: | Riga 87: | ||
# Intercettazione Ctrl+C | # Intercettazione Ctrl+C | ||
trap _exit INT | trap _exit INT | ||
# Abilitazione dell'opzione 'extdebug' necessaria per espandere ARGC in | |||
# Bash 5 e versioni successive | |||
shopt -s extdebug | |||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
Riga 103: | Riga 107: | ||
else | else | ||
printf %s\\n "$*" | printf %s\\n "$*" | ||
fi | |||
} | |||
# Sostituisce il comando 'cat' per controllare che al file di log | |||
# venga inviato effettivamente il contenuto di un file di testo | |||
function cat { | |||
if [ "$(file -bL $1)" = 'ASCII text' ]; then | |||
/bin/cat "$1" | |||
else | |||
echo "File non di testo" | |||
fi | fi | ||
} | } | ||
Riga 111: | Riga 125: | ||
# Versione script | # Versione script | ||
readonly VERSIONE="1.0. | readonly VERSIONE="1.0.68" | ||
# Path e nome dello script | # Path e nome dello script | ||
Riga 394: | Riga 408: | ||
# controlla URL restituita da pastebinit | # controlla URL restituita da pastebinit | ||
case "$pastelink" in | case "$pastelink" in | ||
# verifica in caso di | # verifica in caso di URL corretta | ||
"$paste_url"/[0-9]*) | "$paste_url"/[0-9]*) | ||
echo ".. inviato ${chunkfile} all'indirizzo ${pastelink}" | echo ".. inviato ${chunkfile} all'indirizzo ${pastelink}" | ||
;; | ;; | ||
# verifica in caso di | # verifica in caso di URL non corretta | ||
*) | *) | ||
echo ".. ${paste_url} ha restituito una URL non valida (${pastelink}) per ${chunkfile}!" | echo ".. ${paste_url} ha restituito una URL non valida (${pastelink}) per ${chunkfile}!" | ||
Riga 456: | Riga 470: | ||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
# | # Funzioni richiamate in caso di corretta/scorretta creazione del file compresso | ||
function _compress_ok { echo "File compresso creato correttamente nella directory corrente."; } | function _compress_ok { echo "File compresso creato correttamente nella directory corrente."; } | ||
Riga 633: | Riga 647: | ||
sed -i -r "s/(NetworkManager.*Activation: starting connection ').*(')/\1\*script-removed\*\2/g" "$log" | sed -i -r "s/(NetworkManager.*Activation: starting connection ').*(')/\1\*script-removed\*\2/g" "$log" | ||
sed -i -r "s/(NetworkManager.*policy: set ').*(')/\1\*script-removed\*\2/g" "$log" | sed -i -r "s/(NetworkManager.*policy: set ').*(')/\1\*script-removed\*\2/g" "$log" | ||
# Nasconde l'indirizzo MAC delle interfacce wireless | |||
local interfaces macaddress line | |||
if [ -f /proc/net/wireless ]; then | |||
# array che contiene i nomi delle interfacce wireless | |||
mapfile -s 2 interfaces < <(awk -F'[: ]+' '{ print $2 }' /proc/net/wireless) | |||
for i in "${interfaces[@]}"; do | |||
# indirizzo MAC dell'interfaccia solo se l'interfaccia | |||
# ne ha uno. Non viene considerata l'interfaccia di loopback | |||
line="$(ip -br link show $i)" | |||
if [ "$(echo $line | wc -w)" -gt 3 ] && [ $i != "lo" ]; then | |||
macaddress="$(awk '{ print $3 }' <<< $line)" | |||
# l'indirizzo MAC viene nascosto nel file | |||
sed -i "s/$macaddress/\*script-removed\*/g" "$log" | |||
fi | |||
done | |||
fi | |||
} | } | ||
Riga 647: | Riga 679: | ||
if [ -f "$file" ]; then | if [ -f "$file" ]; then | ||
lastdate=$(sed -n '/^Start-Date/h ; $p' "$file" | | lastdate=$(sed -n '/^Start-Date/h ; $p' "$file" | cut -d ' ' -f 2) | ||
# se il file history.log non contiene la data dell'ultimo aggiornamento, viene utilizzato history.log.1.gz | # se il file history.log non contiene la data dell'ultimo aggiornamento, viene utilizzato history.log.1.gz | ||
[ -z "$lastdate" ] && [ -f "${file}.1.gz" ] && lastdate=$(zcat "${file}.1.gz" | sed -n '/^Start-Date/h ; $p' | | [ -z "$lastdate" ] && [ -f "${file}.1.gz" ] && lastdate=$(zcat "${file}.1.gz" | sed -n '/^Start-Date/h ; $p' | cut -d ' ' -f 2) | ||
# variabile che contiene la data in formato "giorno mese anno" | # variabile che contiene la data in formato "giorno mese anno" | ||
Riga 722: | Riga 754: | ||
function _exit { | function _exit { | ||
# se è stato effettuato un update o una codifica base64 stampa solo il messaggio finale | # se è stato effettuato un update o una codifica base64, stampa solo il messaggio finale | ||
if [ "$UPDATE" -eq 0 ] && [ "$BASE64" -eq 0 ]; then | if [ "$UPDATE" -eq 0 ] && [ "$BASE64" -eq 0 ]; then | ||
local complog="" | local complog="" | ||
Riga 967: | Riga 999: | ||
case "$1" in | case "$1" in | ||
/etc/fstab) | /etc/fstab) | ||
# Nasconde username,password e dominio di mount | # Nasconde username, password e dominio di mount CIFS | ||
sed -e "s/\( cifs.*username *= *\)[^,]*/\1\*script-removed\*/" \ | sed -e "s/\( cifs.*username *= *\)[^,]*/\1\*script-removed\*/" \ | ||
-e "s/\( cifs.*password *= *\)[^,]*/\1\*script-removed\*/" \ | -e "s/\( cifs.*password *= *\)[^,]*/\1\*script-removed\*/" \ | ||
Riga 1 037: | Riga 1 069: | ||
(iwlist scan | sed -e '/ESSID:.*/{/off\/any/! s/ESSID:.*/ESSID:"*script-removed*"/g}' -e '/^[ ]*IE: Unknown:.*/d') &>> "$log" && _ok || _error | (iwlist scan | sed -e '/ESSID:.*/{/off\/any/! s/ESSID:.*/ESSID:"*script-removed*"/g}' -e '/^[ ]*IE: Unknown:.*/d') &>> "$log" && _ok || _error | ||
;; | ;; | ||
# nasconde gli ESSID visualizzati da "nmcli dev list" ( | # nasconde gli ESSID visualizzati da "nmcli dev list" (fino a Wheezy) | ||
# L'array PIPESTATUS mostra il codice d'uscita dei comandi della pipe. PIPESTATUS[0] è il codice d'uscita di "nmcli dev list" (0=successo) | # L'array PIPESTATUS mostra il codice d'uscita dei comandi della pipe. PIPESTATUS[0] è il codice d'uscita di "nmcli dev list" (0=successo) | ||
"/usr/bin/nmcli dev list") | "/usr/bin/nmcli dev list") | ||
nmcli dev list 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[:space:]]*).*/\1\*script removed\*/" >> "$log" && [ "${PIPESTATUS[0]}" -eq 0 ] && _ok || \ | nmcli dev list 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[:space:]]*).*/\1\*script removed\*/" >> "$log" && [ "${PIPESTATUS[0]}" -eq 0 ] && _ok || \ | ||
( _error && echo "Comando valido solo per Wheezy" >> "$log" ) ;; | ( _error && echo "Comando valido solo per Wheezy" >> "$log" ) ;; | ||
# nasconde gli ESSID visualizzati da "nmcli device show" ( | # nasconde gli ESSID visualizzati da "nmcli device show" (da Jessie in poi) | ||
"/usr/bin/nmcli device show") | "/usr/bin/nmcli device show") | ||
LANG=C nmcli device show 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[:space:]]*|GENERAL.CONNECTION:[[:space:]]*).*/\1\*script removed\*/" >> "$log" && [ "${PIPESTATUS[0]}" -eq 0 ] && _ok || \ | LANG=C nmcli device show 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[:space:]]*|GENERAL.CONNECTION:[[:space:]]*).*/\1\*script removed\*/" >> "$log" && [ "${PIPESTATUS[0]}" -eq 0 ] && _ok || \ | ||
Riga 1 054: | Riga 1 086: | ||
if [ -f "$devicemaptempfile" ]; then cat "$devicemaptempfile" >> "$log"; fi && _ok || _error ;; | if [ -f "$devicemaptempfile" ]; then cat "$devicemaptempfile" >> "$log"; fi && _ok || _error ;; | ||
*) | *) | ||
# per tutti gli altri comandi non specificati | # per tutti gli altri comandi non specificati in precedenza, l'output del comando è inviato inalterato al log | ||
$1 &>> "$log" && _ok || _error | $1 &>> "$log" && _ok || _error | ||
esac | esac | ||
Riga 1 281: | Riga 1 313: | ||
# variabile che contiene l'URL dell'archivio (es. http://ftp.it.debian.org/debian/) | # variabile che contiene l'URL dell'archivio (es. http://ftp.it.debian.org/debian/) | ||
indirizzo="$( | indirizzo="$(awk '{ print $2 }' <<< "$linea")" | ||
# sostituisce / con \/ (necessario per il successivo sed) | # sostituisce / con \/ (necessario per il successivo sed) | ||
Riga 1 287: | Riga 1 319: | ||
# release della riga corrente (es. wheezy o testing o sid) | # release della riga corrente (es. wheezy o testing o sid) | ||
rel="$( | rel="$(awk '{ print $3 }' <<< "$linea")" | ||
# controlla che sia un nome di release valido | # controlla che sia un nome di release valido | ||
Riga 1 387: | Riga 1 419: | ||
== Changelog == | == Changelog == | ||
<!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione (variabile VERSIONE) all'interno del codice (la versione iniziale è 1.0.0) --> | <!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione (variabile VERSIONE) all'interno del codice (la versione iniziale è 1.0.0) --> | ||
;1.0.68 | |||
:''Nascosti indirizzi MAC delle interfacce wireless'' | |||
:''Sovrascrittura del comando cat per evitare che al file di'' | |||
:''log venga inviato il contenuto di un file non di testo'' | |||
:''Impostata a 'on' l'opzione 'extdebug' per consentire l'espansione'' | |||
:''di ARGC per Bash >= 5'' | |||
:''Modifiche e correzioni minori'' | |||
:[[Utente:S3v|S3v]] 15:00, 23 mag 2020 (CEST) | |||
;1.0.67 | ;1.0.67 | ||
:''Aggiornamento per rilascio di Debian 10 ([[Buster]])'' | :''Aggiornamento per rilascio di Debian 10 ([[Buster]])'' | ||
Riga 1 396: | Riga 1 436: | ||
:''<code>/etc/modules-load.d/</code>, <code>/etc/network/interfaces.d/</code> e il'' | :''<code>/etc/modules-load.d/</code>, <code>/etc/network/interfaces.d/</code> e il'' | ||
:''file <code>/etc/modules</code>'' | :''file <code>/etc/modules</code>'' | ||
:''dmesg dello | :''dmesg dello script ALSA spostato nello script'' | ||
:''Modifiche e correzioni minori'' | :''Modifiche e correzioni minori'' | ||
:[[Utente:S3v|S3v]] 10:37, 29 giu 2019 (CEST) | :[[Utente:S3v|S3v]] 10:37, 29 giu 2019 (CEST) |
contributi