MouseMe

Lezioni di informatica a domicilio e assistenza a smartphone, cellulari e PC

Categoria: Script linux

  • Creare una nuova regola di posta su YunoHost lato server

    YunoHost utilizza Postfix e Dovecot, ma purtroppo operazioni apparentemente semplici come bloccare lato server un indirizzo di posta elettronica possono risultare un tantino complesse per l’utente windows o l’utente linux inesperto.

    Per prima cosa collegarsi al server tramite SSH e successivamente digitare “su” per diventare root ed avere tutti i diritti amministrativi che ci servono.

    Digitare:

    cd /var/mail/myusername

    ovviamente “myusername” dovrà essere il nome utente utilizzato per la casella che avete creato e alla quale dobbiamo applicare il filtro.

    Digitare ora, facendo attenzione a copiare anche i punti.

    nano .dovecot.sieve

    ora incollare il codice che segue e variare la casella di posta “email@dominio.com” con la casella da bloccare.

    require [“fileinto”];
    if address :is “from” “email@dominio.com” {
    discard;
    stop;
    }

    A questo punto salvare con la combinazione di tasti ctrl+x e poi y per confermare e premere invio quando propone il nome del file.

    Adesso aggiustiamo i permessi con questi comandi:

    chown vmail:mail .dovecot.sieve
    chmod 600 .dovecot.sieve

    E compiliamo il comando per attivarlo con:

    sievec .dovecot.sieve

    Ovviamente lo spammer potrebbe cambiare email, ma finchè utilizza la stessa possiamo dormire sonni tranquilli.

  • Usare bash linux da android

    Forse non tutti sanno che Android è basato su kernel Linux, vediamo come usare bash per automatizzare semplicemente dei task su tablet, smartphone & co. su Android.

    Per prima cosa installare su Android Termux e lo si può fare sia da Google Play che da F-droid o Github, io ho scelto di farlo da F-droid .

    Siccome è un apk verranno chieste delle autorizzazioni per installarlo, datele senza paura.

    Io ho dato all’APP installata anche i permessi di accedere ai file, perchè quello che ho intenzione di fare li necessita.

    Per dare semplicemente tali permessi, nella mia versione di Android, ho tenuto premuto sull’icona e cliccato sulla “I” di Informazioni APP.

    In seguito cliccare su “Permessi APP” e concedere l’accesso ai files.

    Aprire ora l’APP Termux, vi apparirà questa schermata:

    Questo è il nostro Terminale in cui possiamo scrivere i comandi che vogliamo, digitiamo “pwd”, otterremo un output simile a questo:

    La risposta ottenuta al comando è il percorso attuale su Android.

    Supponiamo per fini didattici e non solo di voler creare uno script bash che ci semplifichi una serie di operazioni da effettuare sul nostro Android, personalmente avevo la necessità di cancellare salvataggi e backup non necessari e non richiesti effettuati da WhatsApp.

    ATTENZIONE! Questi passaggi sono riservati a utenti consapevoli che hanno fatto copie di sicurezza e/o che non avrebbero un danno dal perdere dei dati di WhatsApp, agire con prudenza e verificando tutti i passaggi perchè nel tempo le informazioni qui riportate potrebbero variare o non essere più valide e causare danni al vostro apparecchio Android. L’autore non si prende responsabilità per l’uso di questo script che è a fine puramente didattico e deve essere usato da personale esperto.

    Digitare “nano wa.sh” e digitare il seguente codice:

    rm /storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Backups/*
    rm /storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Databases/*
    rm "/storage/emulated/0/Android/media/com.whatsapp.w4b/WhatsApp Business/Backups/"*
    rm "/storage/emulated/0/Android/media/com.whatsapp.w4b/WhatsApp Business/Databases/"*
    

    Con ogni riga di questo semplice codice cancelliamo dei files da una cartella, sono i files di backup che WhatsApp crea anche se non abbiamo abilitato i backup su Drive. N.B. le prime 2 righe cancellano i backup di WhatsApp, le altre 2 cancellano i backup di WhatsApp Business. Non mi stanco di ripetere che questo script potrebbe non essere più valido o produrre effetti indesiderati o di malfunzionamento di WhatsApp e WhatsApp Business perchè le APP variano senza preavviso il loro funzionamento.

    Per salvare il file fare tap sulla scritta CTRL di Termux, poi digitare “x” per salvare e confermare con “y”. Ci verrà chiesto il nome file che sarà “wa.sh”, premere invio sulla tastiera virtuale per confermare.

    A questo punto abbiamo creato il nostro script “wa.sh” e ne possiamo verificare l’esistenza digitando “ls -ltr” che ci riporterà il nostro file coi suoi permessi.

    Per poter eseguire il file è necessario dare i permessi di eseguibilità al file con “chmod +x wa.sh”.

    Possiamo verificare i permessi sempre con “ls -ltr” che questa volta oltre a “-rw” riporterà “-rwx”.

    A questo punto siamo pronti per eseguire il file con “bash wa.sh”.

    L’output del comando riporta degli errori in quanto il comando non cancellerà correttamente eventuali sottocartelle.

    Possiamo verificare con il nostro file manager preferito che nelle cartelle e elencate nello script non vi siano files.

    Un buon file manager open source è Fossify .

    Se tutto ha funzionato correttamente, non saranno presenti files nelle cartelle elencate dallo script.

  • Come creare uno script su YunoHost che ci permetta di ricevere una mail in caso fossero disponibili aggiornamenti

    Collegarsi tramite SSH alla propria VPS su cui è installato YunoHost.

    Creare lo script con il seguente comando:

    nano yunohost-update-check.sh

    incollare il seguente script:

    #!/bin/bash
    
    # your email
    EMAIL_DEST="TUACASELLA@DIPOSTA.COM"
    
    # temp file
    TMP_FILE=$(mktemp)
    
    # check
    echo "=== Aggiornamenti di sistema ===" > "$TMP_FILE"
    yunohost tools update >> "$TMP_FILE" 2>&1
    
    # Se il file contiene qualcosa di diverso da 'Nothing to upgrade'
    if ! grep -q "Nothing to do. Everything is already up-to-date." "$TMP_FILE"; then
        mail -s "Aggiornamenti disponibili su $(hostname)" "$EMAIL_DEST" < "$TMP_FILE"
    fi
    
    # Rimuove il file temporaneo
    rm "$TMP_FILE"

    Sostituire TUACASELLA@DIPOSTA.COM con la casella di posta dove si vuole ricevere l’email.

    Usare i comandi da tastiera CTRL+x e digitare “y” per salvare e cliccare invio sul nome file.

    A questo punto dobbiamo dare i permessi di eseguibilità al file digitando:

    chmod +x yunohost-update-check.sh

    Ora dobbiamo dire al server di eseguire una volta al giorno il nostro script.

    Per prima cosa diventiamo l’utente root digitando il comando:

    su

    seguito dalla password di root.

    a questo punto creare un task temporizzato eseguendo questo comando:

    crontab -e

    ci chiederà che editor usare, scegliere nano.

    Si aprirà l’editor, spostarsi all’ultima riga vuota ed incollare questo comando:

    0 6 * * * /home/MioUtenteYunoHost/yunohost-update-check.sh

    0 6 significa che verrà eseguito alle 6 del mattino

    * * * significa di ogni giorno del mese, di ogni mese, di ogni giorno della settimana

    /home/MioUtenteYunoHost/yunohost-update-check.sh deve essere modificato in quanto MioUtenteYunoHost deve essere sostituito con l’utente amministrativo di YunoHost che è lo stesso utente che usate per la connessione a SSH.

    Usare i comandi da tastiera CTRL+x e digitare “y” per salvare e cliccare invio sul nome file.

    Se tutto andrà liscio riceverete nella casella di posta impostata le notifiche dei prossimi aggiornamenti disponibili per YunoHost.

    Eventualmente, per sapere se lo script ha girato, dal server YunoHost digitare questo comando:

    journalctl -u cron | grep "/home/MioUtenteYunoHost/yunohost-update-check.sh"

    Il comando deve essere modificato in quanto MioUtenteYunoHost deve essere sostituito con l’utente amministrativo di YunoHost che è lo stesso utente che usate per la connessione a SSH.

    Il comando modificato, una volta lanciato, dovrebbe fornire esattamente la data e l’ora in cui ha girato.