Editare file remoti in locale senza spostarli o entrare in una shell.

Logo VIMTastiera dedicata VIM

Per chi abitualmente lavora in ambiente server, succederà molto spesso di dover editare file di testo puro, che sono normalmente file di configurazione di programmi vari, oppure sorgenti di script bash o script Python o sorgenti di programmi C, che sia ansi o C++. Insomma la necessità di dover editare file di testo puro sono innumerevoli. Ci sono diversi editor testuali che si usano in questi casi. Anche perché, di norma, un sistema server, non ha un ambiente grafico, per cui il tutto va fatto in ambiente testuale. Un editor con il quale, chi fa questo genere di lavoro, ha quasi sempre a che fare è vim che di norma è installato per default su tutti gli ambienti server. Esistono anche soluzioni grafiche per vi, come gvim in ambiente GNome oppure MacVim in ambiente oSX. Continue reading →

Gestione protetta dei nostri progetti editoriali.

Un piccolo script, in bash, per editare i nostri libri mantenendoli protetti quando non li usiamo.


Può capitare a chi scrive, specialmente per diletto, di avere il computer in condivisione con altri componenti della famiglia. Oppure, avendo spesso l’impulso di scrivere nei momenti liberi, di usare un computer portatile, che può restare aperto in zone dove bazzica altra gente.

Può anche essere che abbiamo copia aggiornata del nostro lavoro, in progresso, in un’area in cloud, dove notoriamente non è cosa sana tenere file importanti non protetti.

Continue reading →

Uso di ecryptfs per crittografare cartelle di dati importanti.

Girovagando per internet, mi sono imbattuto in uno dei tanti post sulla configurazione ed utilizzo di ecryptfs-utils per poter usare cartelle crittografate da montare al momento del bisogno. Al solito, il post, ha diversi errori per cui alla fine il risultato non è quello che uno si aspetta. Questa situazione, era quella quella che odiavo maggiormente quando ero un novizio: seguire un howto alla lettera ed alla fine non ottenere quello che nel documento era promesso, e non per errori miei, ma per errori di chi aveva scritto il documento stesso.

Per cui eccomi qui a riscriverlo di sana pianta con l’auspicio che, chi si imbatta in questo post ne, possa trovare vantaggio ottenendo quello che che gli viene promesso, quindi iniziamo. Continue reading →

Linux on a Mac

 

Come avere un sistema linux su una macchina Apple senza perdere l’oSX già installato a bordo e senza impazzire!!

 

È da diverso tempo, che leggo in giro varie documentazioni che spiegano, tra un artificio e l’altro, come riuscire a sfruttare tutta la potenza di un computer Apple usando al posto del suo sistema nativo, l’oSX, una distribuzione linux.

Ho trovato tantissima documentazione, sia in inglese che in italiano, ma già il fatto che la maggior parte della documentazione risulta essere specifica per una distribuzione o l’altra mi ha fatto spazientire, non parliamo poi delle solite guide scritte, da chissà chi, alla fine delle quali ti ritrovi con una macchina inchiodata con uno schermo nero e doverti reinstallare tutto dal tuo fidato backup, se l’hai fatto, o, e peggio per te se non l’avei fatto, da zero.

Che fare dunque? Mi son chiesto più volte:”Possibile che non esista un modo rapido, ma sopratutto sicuro, per avere una partizione, interna o esterna su chiavetta o disco USB che fosse, senza dover diventare pazzi?”

Una volta per i driver del disco, una volta per i driver video, una volta per driver di rete, fissa o wifi che fosse, insomma in ogni guida manca qualcosa che permetta di poter fare una classica installazione da una ISO pulita e che al primo reboot, una volta premuto il tasto ALT, compaia la selezione “Linux o oSX” da cui poter scegliere?

Cosi mi son messo a pensare in maniera alternativa e un modo l’ho trovato: sicuramente altri l’hanno trovata prima di me, ma pare che nessuno di questi si sia preso la briga di condividere la propria soluzione, quindi andiamo a vedere subito come fare:

Prerequisiti:

 

  • Un sistema oSX, meglio se aggiornato e funzionante regolarmente: non deve essere stato appena installato, l’importante che funzioni regolarmente;
  • Un disco o chiavetta USB con dimensioni sufficienti a contenere il vostro sistema operativo Linux più tutto lo spazio che vi servirà per farci stare i vostri dati e tutti i software che vorrete installarci.
  • una ISO della vostra distribuzione preferita, in questo esempio io installerò una LinuxMint Mate 18.0, ma potete usare quella che vi pare, fosse anche una Gentoo da installare da zero (a patto che sappiate come installare una LFS)!!
  • software VritualBox, con Extention Pack, per oSX già installato.

 

Non serve altro, tutto qui: basta che questi quattro requisiti siano soddisfatti e siete pronti a partire per la vostra installazione.

Chiarisco una cosa prima di proseguire: alla fine della procedura vi troverete in questa situazione:

  1. Avrete ancora il vostro Mac con il vostro oSX, cosi come era prima della procedura: sul vostro Mac nulla sarà cambiato;
  2. Avrete un disco esterno, o una chiavetta USB  che sia, con a bordo tutta la vostra installazione fresca e fumante, pronta ad essere avviata usando il tasto ALT durante un normale reboot. (Di questa cosa parleremo più a fondo verso la fine del documento)

Primo step.

 

Questa è una cosa importante: se avete già installato VirtualBox, assicuratevi di avere l’ultima versione installata, altrimenti rischierete di avere problemi. Se invece la state installando da zero, il problema non si pone, visto che quando la scaricherete da questo link avrete l’ultima versione per forza di cose!!

Appena installato VirtualBox consiglio, per avere i driver anche per USB3 ed altre cosette, di installare anche il pacchetto che porta il nome Extention Pack. Lo trovate qualche riga più in basso da dove avete scaricato VirtualBox, per la precisione qui.

Una volta che avrete installato VirtualBox, basterà fare doppio click sull’Extention Pack affinché venga aperto automaticamente da VirtualBox stesso e provveda lui all’installazione.

Quindi ripeto: prima installare VirtualBox; ad installazione terminata installare poi, l’Extention Pack.

Secondo step.

 

Se il disco o la chiavetta sono vergini andate in Applicazioni–>Utilituy ed avviate Utilità Disco. Inizializzate il device su cui volete installare il vostro linux, e create una sola partizione, tanto poi la dovrete cancellare al momento dell’installazione; io l’ho partizionata con il file system  MsDos; ripeto: tanto la cancelleremo una volta avviata l’installazione.

Terzo step.

 

Avviamo VirtualBox e creiamo una macchina virtuale specificando che sarà una macchina Linux del tipo che decidete voi. Quando vi chiederà che disco volete creare date sempre invio accettando le risposte di default. Al momento di specificare la dimensione del disco, date una dimensione che volete, tanto il disco virtuale nemmeno lo utilizzeremo. Fate attenzione a configurare la nuova macchina virtuale come se davvero la voleste installare come una macchina virtuale: memoria per la scheda grafica, scheda/e di rete sia LAN che wi-fi, mouse o tavoletta, io uso un trackball usb ed ho settato un normale mouse e funziona benissimo.

Quello che è fondamentale che sia configurato, pena il fallimento dell’installazione, è il tab delle porte: dovete specificare che sono attive le usb e se solo 2.0 o anche 3.0, altrimenti rischiate che al momento di avviarsi il kernel non veda più l’usb e addio caricamento della macchina linux appena installata!!!

Questo è lo snap della configurazione della macchina temporanea che ho creato per installare la mia LinuxMint Mate su un disco esterno USB2 da 500GB:

Come vedete l’ho definita come una Ubuntu generica a 64bit, 2GB di ram, 4 processori, 128Mb di ram video, Accelerazione 3D abilitata; sul controller dischi ho il disco virtuale, che non useremo in realtà ripeto, il driver audio proposto di default, la scheda di rete che ho impostato come bridge sulla mia scheda di rete thunderbolt ed infine l’attivazione delle porte USB.  Importantisimo: sulla seconda porta del controler disco, come cd, ho indicato il file ISO della mia distribuzione: se non la indicate, ovviamente non avrete nulla da installare !!

Quarto step.

 

Avviate la macchina virtuale appena creata: chiaramente lasciate partire il sistema in modalità live; una volta avviata la macchina, di solito, sul desktop comparirà una icona da cliccare per avviare l’installazione.

PRIMA di avviare l’installatore andate sul menù Dispositivi->USB di VirtualBox e selezionate l’unità, disco o chiavetta che sia, su cui volte installare linux. Nel mio caso era un disco da 500Gb. Questo passaggio serve a rendere visibile il disco in questione al sistema di installazione: se saltate questo passaggio, quando sarete nella fase di selezione del disco di destinazione per l’installazione di linux non vedrete il vostro disco/chiavetta e dovreste ricominciare tutto da capo.

Nota: Per fare si che il disco sia ‘agganciabile’ al vostro ambiente di installazione, non deve essere montato e disponibile per il Mac. Come sapete quando attaccate un disco esterno il sistema lo ‘monta’ automaticamente. Essendo già ‘montato’ VirtualBox ve lo elencherebbe, ma in grigetto impedendovi di selezionarlo; per cui prima di tentare di agganciarlo, ricordatevi di smontarlo dal Mac cliccando sulla freccia a destra del nome del disco che compare in Finder:

 

Per chi non fosse pratico la freccia a cui mi riferisco è quella nel cerchio rosso.

Solo dopo aver cliccato quella freccia il disco scomparirà dalla lista dischi montati e diventerà utilizzabile da VirtualBox per la vostra installazione.

Quinto step.

 

A questo punto fate partire l’installatore e proseguite come in una normale installazione di linux. L’unica accortezza che dovrete avere saranno le seguenti due:

  1. al momento di scegliere come e dove installare la distribuzione, scegliete il disco giusto, mi raccomando: che non andiate a sovrascrivere il vostro disco Mac (di norma il disco Mac è /dev/sda) !!!
  2. Una volta scelto il disco decidete, come meglio vi trovate, se usufruire del partizionamento automatico da parte dell’installatore o se volete partizionarlo a mano.

Nota: Io, di norma, opto sempre per la seconda possibilità: in questo modo posso mettere l’area di swap in cima; la partizione di boot, che viene letta di norma solo all’avvio ed in caso di aggiornamento del kernel, in fondo; ed in mezzo una, o più, partizioni a seconda del tipo di installazione che volete fare: una partizione unica per tutto, partizioni separate per sistema e utenti utente (/home), una partizione per i dati da scambiare con altre macchine (/dati) e cosi via.

L’unica cosa fondamentale, pena la mancata partenza all’avvio, e ricordarsi di istruire l’installatore affinché installi il GRUB nella radice del disco usato per l’installazione.

Per esempio se usate il disco /dev/sdd con le varia partizioni (occhio: di solito /dev/sda è il disco Mac per cui evitate di toccarlo!!), dovete specificare che GRUB va installato in /dev/sdd e non per esempio in /dev/sdd3 perché quella l’avete dedicata a /boot. Il loader DEVE stare nella radice del disco quindi, nel nostro esempio in /dev/sdd.

A questo punto proseguite con l’installazione sino alle fine. Vi verrà richiesto se volete proseguire a sperimentare il sistema in uso usufruendo del disco live o se volete riavviare per far partire il sistema appena installato: NON CLICCATE ‘RIAVVIA‘ !!!! Vi siete scordati che non abbiamo installato una macchina virtuale classica vero  ??? 🙂

A questo punto resta da verificare se la nostra installazione sia andata a buon fine o meno, quindi:

  • spegnete (NON RIAVVIATE) la macchina virtuale;
  • uscite da VitualBox;
  • uscite da altre eventuali applicazioni aperte;
  • controllate il volume del vostro Mac: se non è abbastanza alto da sentire il ‘boing’ al riavvio, non saremo in grado di capire quando far partire il nostro nuovo disco con linux; 
  • riavviate il vostro Mac;
  • appena sentiamo il ‘boing’, premete e tenete premuto il tasto ALT (quello centrale dei tre in basso sulla tastiera). Io uso sempre quello di sinistra, ma presumo che sia indifferente la posizione del tasto ALT usato se destro o sinistro;
  • mantenete premuto il tasto ALT, (se sollevate il dito riavviate il Mac di nuovo!!!) fino a che compare la schermata di oSX per la selezione del disco da usare per l’avvio e se avete fatto tutto bene avrete tre dischi elencanti; primo: un disco Mac; secondo: un disco di Ripristino per emergenza Mac; terzo: et le voilà: il vostro disco Linux!!
  • Non cercate di usare il mouse in questa fase: ne oSX ne Linux avrebbero ancora caricato il rispettivo driver. Usate i tasti freccia per selezionare il terzo disco e premete invio e attendete: tempo qualche secondo, a seconda che usiate USB3 o USB2 e dalla anzianità del disco USB  (si sa che per fare queste prove di solito usiamo i dischi più vecchi eh eh eh ) e il vostro linux comincerà a sciorinare, sul monitor, le classiche righe di caricamento del kernel ed infine la GUI del vostro DE scelto in fase di installazione.

 

Piccola nota: perché usare VirtualBox e non far partire direttamente il CD di installazione sempre con il sistema Avvio-> Boing -> Pressione tasto ALT ?

Perché cosi i driver video, audio, scheda di rete, scheda wi-fi saranno quelli di VirtualBox e di conseguenza caricati senza fare storie. Chiaro: non saranno il massimo se volete attrezzare una stazione da gioco, ma per un uso Desktop o per sviluppo software, vi garantisco che funziona perfettamente.

Ultima cosa, che dovreste aver già intuito: in questo modo, questa chicca di disco installato con i driver di VirtualBox ,lo potete far partire su qualunque sistema Mac che abbia un età pari o più giovane del vostro; basterà usare sempre il sistema del tasto ALT dopo il ‘boing’ del (ri)avvio!!

E con questo è tutto!!!

Se vi serve qualche altra specifica, scrivetemi pure a jcurto CHIOCCIOLA protonmail PUNTO com e per quello che posso sarò lieto di rispondervi.

Buon divertimento !!

JC

P.S.: se avete, per sbaglio, definito il volume in fase di partizionamento come MBR il sistema di scansione in fase di boot (boot -> boing -> tasto ALT) del Mac non rileverà il vostro disco. Vi restano due soluzioni a questo problema:

  • Ripetete la procedura sopra descritta definendo il boot del disco come EFI;
  • oppure installare reFind, un boot loader che risolverà in un colpo solo tutti i problemi di rilevamento di qualunque sistema operativo in fase di boot.

Di reFind parlerò nel prossimo post.

Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione – Non commerciale – Condividi allo stesso modo 4.0 Internazionale.

Pulire pubblicità, pop-up, banner e qauant’altro dalla navigazione web su cellulari, tablet e qualsiasi apparato mobile senza usare programmi aggiuntivi

Esiste una soluzione alternativa che richiede un minimo di lavoro e che, sopratutto, ci garantisce che i dati non passino da chissà quali server, facendo non sappiamo cosa sui nostri dati. Questa soluzione si chiama Privoxy.

Come riportato da quluqnue fonte, compresa quella tradizionale del wiki, Privoxy è un programma che provvede alla pulizia sul traffico analizzato delle pubblicità in genere. Ma fa anche molto altro, come si può vedere dalla pagina Wiki italiana, https://it.wikipedia.org/wiki/Privoxy oppure quella inglese qui https://en.wikipedia.org/wiki/Privoxy.

Veniamo alla nostra soluzione personale. Parto dall’idea che abbiate a casa una macchina con linux installato, che sia fisica o virtualizzata poco importa, oppure che abbiate una macchina su internet: il procedimento è il medesimo. 

Innanzi tutto installiamo il programma Privoxy o dal gestore applicazioni che usiamo di solito o dal terminale, che preferisco perché dovremo comunque mettere le mani sul file di configurazione, con:

sudo apt-get install privoxy

Finita l’installazione, l’unica cosa che vi consiglio caldamente di fare e di cambiare la porta utilizzata dal programma, che di default e la 8118. sempre dal terminale apriamo, per modificalo, il file /etc/privoxy/config  con

sudo nano /etc/privoxy/config

In questo caso ho indicato come editor il programma nano, ma potete usare quello che vi pare, che sia nano o vi poco importa: l’importante è poter modificare la porta.

Cerchiamo la riga contenente la definizione della porta: la stringa da cercare è listen-address una volta trovata sostituire il valore 8118 con un altra porta che sia libera; personalmente consiglio porte molto alte così da evitare che certi smanettoni la trovino. Un’idea può essere una porta tra 50000 e 55000 per esempio userò 52715. Quindi a modifica effettuata avremo una riga come questa:

listen-address :52715

Chiudiamo, salvando il file, il programma; nel caso di nano si fa premendo la combinazione CTRL-X; e riavviamo il programma con il comando:

sudo service privoxy restart

A questo punto abbiamo terminato sulla macchina lunux. Dobbiamo fare ancora due cose:

  1. configurare il nostro router affinché accetti in entrata il traffico sulla porta 52715 verso l’indirizzo ip della nostra macchina che esegue Privoxy.
  2. configurare il nostro cellulare, tablet o anche pc se vogliamo affinché dirotti il le chiamate del traffico http/https verso il nostro Privoxy.

Pe quanto riguarda il punto uno, dipende dal router che avete: non posso darvi le istruzioni per tutti i modelli; posso solo dirvi che dovete creare una regola che accetti in entrata il traffico dalla porta 52715 e lo indirizzi verso la stessa porta della vostra macchina linux.

Per il punto due ci sono, in linea di massima, due categorie di configurazioni possibili: quelle per iOS, per capirci iPhone, iPad etc etc, e quelle per Android.

Per iOS:

  • Aprite impostazioni
  • tappate su WiFi
  • Presumendo che siate già connessi ad una vostra rete domestica, tappate sulla cerchiata a destra del nome della wifi attualmente collegata
  • scendete in basso alla sezione appena aperta ed alla voce PROXY HTTP tappate su Manuale
  • Alla voce Server indicate l’indirizzo IP della vostra macchina linux, oppure l’indirizzo pubblico del vostro router. 
  • Alla voce Porta indicate la porta che avere configurato prima ossia la 52715

Per Android:

  • Aprite Impostazioni
  • Tappate su WiFi
  • Tappate, mantenendo la pressione per più di un secondi sulla wifi che avete già agganciato: comparirà un menu a due voci e tappate su Modifica config. di rete
  • Tappate su Mostra opzioni avanzate
  • Alla voce Impostazioni proxy selezionate Manuale
  • Alla voce Nome host proxy inserite l’indirizzo IP della macchina linux oppure il vostro IP pubblico
  • Alla voce Porta inseriamo la porta configurata, nel nostro caso la 52715
  • Tappate su Salva in basso a destra del pannello

Fatto: a questo punto, quando navigherete tramite Safari o il browser che avere installato e preferite, il traffico verrà filtrato da Privoxy eliminando pubblicità pop-up, banner e quant’altro.

Nota: quanto segue vale solo se avete installato un firewall sulla vostra macchina linux. A seconda delle vostre esigenze dovete decidere se nelle configurazioni usare l’IP locale, quello della vostra macchina linux domestica, o il vostro IP pubblico, ossia quello che vi viene assegnato dal vostro provider; (Per avere il vostro indirizzo pubblico andate con un browser a questo indirizzo).

Nel caso abbiate un IP pubblico dinamico, per esempio avete un contratto non aziendale con Vodafone o Fastweb, nasce il problema di come segnalare al vostro firewall quale è l’IP valido come vostro in uso. Allego un piccolo script per risolvere il problema, preso da questa pagina in rete.

Innanzi tutto dovete ufw, uno script che semplifica molto la vita se usare un firewall. Per installarlo ed eseguirlo eseguite il comando 

sudo apt-get install ufw

sudo ufw enable

Poi dovete avere un account tipo dyndns.com oppure no-ip.com che vi tenga aggiornato il collegamento host personale <-> IP pubblico. Do per scontato che lo avete già. Come esempio diciamo che il vostro ip personale sia mioip.no-ip.com e che sappiate come tenerlo aggiornato.

Create un file che chiamerete ufw-dynamic-host-update  nella cartella /usr/local/sbin e incollateci questo contenuto pari pari, senza modificare nulla:

#!/bin/bash

HOSTS_ALLOW=/etc/ufw-dynamic-hosts.allow
IPS_ALLOW=/var/tmp/ufw-dynamic-ips.allow

add_rule() {
  local proto=$1
  local port=$2
  local ip=$3
  local regex="${port}\/${proto}.*ALLOW.*IN.*${ip}"
  local rule=$(ufw status numbered | grep $regex)
  if [ -z "$rule" ]; then
      ufw allow proto ${proto} from ${ip} to any port ${port}
  else
      echo "rule already exists. nothing to do."
  fi
}

delete_rule() {
  local proto=$1
  local port=$2
  local ip=$3
  local regex="${port}\/${proto}.*ALLOW.*IN.*${ip}"
  local rule=$(ufw status numbered | grep $regex)
  if [ -n "$rule" ]; then
      ufw delete allow proto ${proto} from ${ip} to any port ${port}
  else
      echo "rule does not exist. nothing to do."
  fi
}

sed '/^[[:space:]]*$/d' ${HOSTS_ALLOW} | sed '/^[[:space:]]*#/d' | while read line
do
    proto=$(echo ${line} | cut -d: -f1)
    port=$(echo ${line} | cut -d: -f2)
    host=$(echo ${line} | cut -d: -f3)

    if [ -f ${IPS_ALLOW} ]; then
      old_ip=$(cat ${IPS_ALLOW} | grep ${host} | cut -d: -f2)
    fi

    ip=$(dig +short $host | tail -n 1)

    if [ -z ${ip} ]; then
        if [ -n "${old_ip}" ]; then
            delete_rule $proto $port $old_ip
        fi
        echo "Failed to resolve the ip address of ${host}." 1>&2
        exit 1
    fi

    if [ -n "${old_ip}" ]; then
        if [ ${ip} != ${old_ip} ]; then
            delete_rule $proto $port $old_ip
        fi
    fi
    add_rule $proto $port $ip
    if [ -f ${IPS_ALLOW} ]; then
      sed -i.bak /^${host}*/d ${IPS_ALLOW}
    fi
    echo "${host}:${ip}" >> ${IPS_ALLOW}
done

Salvatelo e rendetelo eseguibile con il comando: 

sudo chmod u+x /usr/local/sbin/ufw-dynamic-host-update

a questo punto dovete creare un file di configurazione per questo script con il comando:

sudo nano /etc/ufw-dynamic-hosts.allow

il nome è di fantasia, ma almeno leggendolo capirete cos’è. Ora: considerando l’esempio del vostro host personale, che abbiamo detto è mioip.no-ip.com e la porta che abbiamo configurato, ossia la 52715 nel file appena creato di configurazione dovremo scrivere questo:

tcp:52715:mioip.no-ip.com

e salvarlo. Affinchè la regola del firewall resti aggiornata dobbiamo eseguire periodicamente lo script che vi ho riportato sopra e per farlo usiamo il demone cron. Affinché cron controlli ogni 5 minuti che l’IP pubblico corrisponda al nostro host, lanciamo il comando 

sudo crontab -e 

ed aggiungiamo la seguente riga:

*/5 * * * * /usr/local/sbin/ufw-dynamic-host-update > /dev/null

Confermiamo ed usciamo: a questo punto il demone cron si occuperà, ogni 5 minuti di verificare se la regola del firewall è allineata al vostro IP pubblico.

RIBADISCO: questa ultima parte è necessaria solo se:

    1. volete poter raggiungere Privoxy anche da fuori casa
    2. avete un IP pubblico dinamico

Se avete un IP pubblico statico allora basta creare la regola con il comando sudo ufw allow proto tcp from mioip.no-ip.com to any port 52715 ed il problema è risolto senza necessità di disturbare cron ne creare script vari.

Ultima nota: la soluzione che ho riportato vale per una macchina linux, gli esempi in specifico sono per macchine Ubuntu, ma è possibile installare Privoxy anche su Windows: qui trovate le relative istruzioni. Non so però, sotto windows, come risolvere il probelma dell’uso di un IP pubblico dinamico attraverso il firewall di Windows. Magari qualcuno lo sa e può postare la soluzione.

JC
 

ownCloud and NextCloud : maximum file upload size limit (EN version)

After installing and testing this cloud service on a server of mine on internet, I find a noisy problem: when I try uploading a file bigger than 512Mb the cloud service stop uploading.
Considering that a lot of people uses cloud services as backup for pics and videos, I found out this limit really frustating.

I have not found the way to change this limit via web interface, so I do it via console, on the server where ownCloud was installed.

As first thing I verified limits set up in /etc/php5/apach2/php.ini:

1.    upload_max_filesize should be set more than default 512mb: I set to 1024M
2.    post_max_size should be set more than default 512mb: I set to 1024M
3.    upload_tmp_dir must point to a valid read/write access directory: I set to /tmp

Once done, I reloaded apache2 config files, as usual, with service apache2 reload, but the change to upload_max_filesize seems have no effect and ownCloud still refuse to load file bigger than 512mb

So I gave a look to the ownCloud specific .htaccess file, you find it in the root of the owncloud installation dir, on ubuntu system it is at /var/www/owncloud/.htaccess.
You must edit the line php_value upload_max_filesize 512M to the value you set in apache php.ini or smaller. I set both to 1024M and not to 1G couse I found no info on notation usable in the ownCloud documentation. So I kept the original notation.

At https://secure.php.net/manual/en/ini.core.php#ini.post-max-size found info about size notation: 

PHP allows shortcuts for byte values, including K (kilo), M (mega) and G (giga). PHP will do the conversions automatically if you use any of these. Be careful not to exceed the 32 bit signed integer limit (if you’re using 32bit versions) as it will cause your script to fail.

The last problem is that after the modification, in the webclient the uploadable maximum size reported was still 512Mb.

On truth it was false, couse I already uploaded files larger than  512Mb after the modification I reported above.
In any case to solve this problem, again edit .htaccess file on the line php_value post_max_size to the corresponding upload_max_filesize value. Once done also this problem is solved.

Hope this can help anyone who finds 512Mb too small as upload limit.

Perché evitare ARUBA per la gestione DNS.

É un peccato, ma mio malgrado, mi vedo costretto a scrivere questo post, per evitare ad altri di dover incappare nello stesso tipo di problema in cui sono capitato io.
 
SITUAZIONE: Avete il vostro cliente che vi chiede di installargli un server di posta, con tutti i soliti crismi, affinché l’azienda possa affrancarsi dal loro precedente gestore di posta, che li sta, al solito, derubando. Le considerazioni sui costi imposti dalle altre aziende per servizi di posta in locazione le lascio ad un altro post.
 
Voi fate tutto il vostro lavoro:
 
  1. configurate ed installate il vostro hw
  2. installate e configurate il vostro software
  3. testate se a livello locale funziona tutto.

A questo punto vi occupate della visibilità del server su internet e dovrete, per forza di cosa, mettere anche le mani sui record DNS affinché il server sia visibile ed operativo si internet.

 

Create i soliti  domini tipo imap.dominio.it, smtp.dominio.it facendoli puntare all’IP giusto, e tra le cose primarie da fare per un server di posta, dovete configurare i rispettivi record SPF e DKIM; e qui cominciano i guai.

Se avete la gestione del dominio sotto ARUBA, vi accorgerete subito che qualcosa non torna: accedendo al tipo record TXT dal pannello di gestione del DNS, avrete una schermata come questa:
 
 
Non notate nulla di strano? Finché dovete registrare il campo SPF no, è fatto apposta, ma quando devo registrare il campo DKIM ???? Semplicemente, con ARUBA, non lo potete fare. 
 
Per qualche strano, ma sopratutto oscuro, motivo ARUBA ha deciso che l’unico utilizzo che il suo cliente può fare del campo TXT è l’inserimento dei valori per tipo campo SPF.
 
Li ho contattati, credendo in un problema del form, ma no: è proprio così; hanno deciso che il cliente ARUBA può solo inserire quello che vogliono loro, ossia il campo SPF, ma altri record di tipo TXT, e ce ne sono parecchi che uno potrebbe aver necessità di inserire oltre al tipo DKIM, se lo scordano. 
 
La loro soluzione al problema? “Acquisti una machina virtuale così da potersi gestire il server DNS come meglio preferisce“, e chiaramente mi rifilano il link dei loro server virtuali.
 
Ma ti pare che uno per inserire un campo fondamentale in un server di posta, deve impiantarsi un server DNS proprio ?????
 
Questi secondo me, in questo caso, l’hanno fatta fuori dal vaso!!!
 
Per cui: tenete a mente che se dovete utilizzare per qualsivoglia motivo un record TXT nella gestione DNS che non sia il record SPF, lasciate perdere ARUBA.
 
JC
 

Connessione automatica di apparato bluetooth all’avvio di un Linux Debian/Ubuntu based

Non capiterà a molti, ma può succedere di avere un mouse o una tavoletta di puntamento collegati via bluetooth al vostro sistema Ubuntu, o Linux bastato su Debian/Ubuntu in generale.

Come avrete sperimentato, si deve: avviare il demone bluetooth a mano e fargli riconoscere e fare il paring la prima volta con l’apparecchio.
La cosa noiosa, è che ad ogni riavvio del sistema si deve
  1. partire con un mouse usb collegato
  2. attivare la connessione dell’apparecchio bluetooth a mano tramite l’icona in basso a destra
  3. scollegare il mouse usb.
 
Beh questo non è del tutto vero: esiste, come quasi sempre, una soluzione per automatizzare la connessione del vostro apparato bluetooth all’avvio del sistema, ed ora vediamo come.
Innanzi tutto ci serve che sia installato il pacchetto bluez-compat:possiamoinstallarlo sia dal gestore pacchetti o più velocemente, secondo me, dalla console lanciando il solito comando sudo apt-get install bluez-compat.
Fatto questo dobbiamo conoscere l’indirizzo MAC(1)dell’apparecchio che ci interessa. Se abbiamo già collegato una volta l’apparecchio in questione possiamo ricavarlo direttamente dal gestore bluetooth: aprendolo troviamo le informazioni riguardante l’apparecchio con incluso il suo indirizzo MAC(1)tipo 28:37:37:2B:0E:26. Attenzione: a volte l’indirizzo MAC(1)viene proposto come 28-37-37-2B-0E-26. Fosse anche sostituite, nel prossimo passaggio il carattere (meno) con il carattere (due punti)ed andrà benissimo.
Se non riusciamo a trovarloin questo modo possiamo farlo usando il comando hidddalla console, eseguite:
hidd –search
Che vi darà una lista degli apparati bluetooth collegati almeno una volta al sistema. Se non lo trovate nemmeno li cercatelo tramite il comando dmesgsempre da console.
A questo punto dobbiamo modificare il file /etc/rc.localperché questo file si occupa di caricare quello che indichiamo durante il boot del sistema.
 
Il file, se non lo avete mai modificato si presenterà così:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0” on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
 
Exit 0
 
Come dice la riga, nel file stesso questo scritp, così com’è non fa nulla, ma modificandolo aggiungendo la riga :
hidd –server –connect 28:37:37:2B:0E:26
PRIMAdella riga finale che riporta Exit 0farà esattamente quello che ci serve, ossia attiverà il nostro apparecchio bluetooth automaticamente: questo eviterà la noiosa procedura del dover avviare il nostro Linux con un mouse usb collegato, collegare a mano il nostro apparato bluetooth ed infine scollegare il mouse usb. Dopo la nostramodifica il file /etc/rc.local apparirà così:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0” on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
 
hidd –server –connect 28:37:37:2B:0E:26
 
exit 0
 
Come vedete l’unica, ma sostanziale, differenza è la riga in cui viene chiamato il comando hidd –server –connect xx:xx:xx:xx:xx:xx.
NOTA: l’indirizzo MAC(1)che ho usato, 28:37:37:2B:0E:26, è chiaramente quello del mio apparato; voi dovrete usare quello che avete rilevato dal vostro sistema in quanto collegato al vostro apparato.
E questo è tutto: da questo momento al riavvio, se l’apparato bluetooth sarà acceso, il sistema lo riconoscerà e di conseguenza lo renderà attivo e disponibile. 
JC
 

Configurazione scheda di rete con IP STATICO su KDE

Il problema fondamentale della configurazione di un IP statico in KDE è dovuto fondamentalmente a quel maledetto gestore di rete integrato, che per non so quale motivo, ed ho perso anche troppo tempo ad indagare, non si riesce a configurare come uno vorrebbe.
 
Di pagine su internet su come configurare un IP statico sotto debian/ubuntu ce ne sono a bizzeffe, ma purtroppo a causa proprio di quel maledetto gestore di rete integrato, non funzionano. La mia soluzione è stata aggiungere una riga alle istruzioni solite di configurazioni di ip statico per debian/ubuntu.
 
Vediamo adesso tutti i passi:
 
  • Prima di tutto dobbiamo eseguire in un terminale il comando ifconfig questo ci servirà dopo durante la configurazione;
  • DISABILITARE il gestore di rete per la parte che ci riguarda: nel mio caso la rete via cavo; ossia clicchiamo sul pulsante ‘Disconnetti’ a fianco alla chiave inglese sulla riga della nostra connessione;
  • apriamo il nostro bel terminale;
  • andiamo in utente root per non dare sudo ad ogni comando: su – root (nel caso non abbiamo configurato una password per root allora TUTTI i comandi che leggerete dovranno essere anticipati dalla parola sudo. Quindi se vedete un vi /etc/resolv.conf e non potete farlo da root direttamente scriverete sudo vi /etc/resolv.conf; chiarito questo, andiamo avanti).
  • prima di tutto configuriamo in maniera permanente il nostro DNS Server. Se, come di solito consigliato, modificate il file /etc/resolv.conf non otterrete nulla perché questo file viene riscritto, ad ogni avvio, da una quaterna di file che sono presenti in /etc/resolvconf/resolv.conf.d/ essi sono:base, head, original e tail. Quello che interessa noi è Head. Lo modifichiamo con il nostro editor preferito, io uso vi, ma qualunque editor che gestisca testo puro va benissimo, e lo modifichiamo mi questo modo:
          /etc/resolvconf/resolv.conf.d/head
  • la voce search se sapete cosa sia, compilatela, altrimenti non mettetecela proprio. L’ordine d’uso dei server DNS elencati e dall’alto verso il basso: se il primo incontrato non risponde viene interpellato il secondo e così via. 
  • Sistemato questo passiamo alla definizione di rete, per farlo dobbiamo modificare il file /etc/networks/interfaces; ricordate il comando ifconfig che abbiamo eseguito all’inizio ? Bene da li prendiamo il nome della nostra scheda di rete, nel mio caso eth0, e configuriamo il file in questo modo:
        /etc/network/interfaces
  • La parte che ci interessa è quella dalla riga auto eth0 in giù compresa; chiaramente modificate l’ip, la netmask, il gateway, la network, il broadcast e dns-servers a seconda delle vostre necessità. Nota per la riga dns-nameserver: potete mettere più di un server in coda usando la virgola tra i vari ip, ma tenete a mente che se aggiungete più di un server DNS DOVETE aggiungere una lettera s al comando dns-namserver. Quindi se decidete di usare i due server di OpenDNS la riga sarà dns-namservers 208.67.200.200,208.67.222.222 Occhio: se non mettete la S in caso di più server o la mettete con un solo server durante l’inizializzazione della scheda di rete vi darà un errore.
  • A questo punto tutti i manuali dicono che la cosa è fatta!! Riavviate e … non funziona !!! Da questo punto ci ho messo delle ore a trovare una soluzione, e l’unica che ho trovato è la seguente: dovrete aggiungere al file /etc/hosts una riga in cui assegnate al vostro ip statico il vostro hostname. Non farlo, come facevo io seguendo le mille guide trovate in internet vi farà perdere solo tempo e pazienza: non so perché questa cosa risolve il problema però funziona!! Quindi se nel file /etc/networks/interfaces avete dichiarato address 192.168.1.130 dovete aggiungere nel file /etc/hosts una riga, consiglio appena sotto quella dichiarativa di 127.0.0.1 che è presente sempre, la riga 192.168.1.130 il_vostro_hostname. Voi mi chiederete « e dove diavolo lo trovo il mio hostname?». Semplicissimo: nel terminale digitate il comando hostname -a il risultato sarà il vostro hostname che userete nel file /etc/hosts.
  • A questo punto, e solo ora, potrete riavviare il vostro sistema ed avere configurato l’ip statico come volevate voi!!!! Ricordatevi che se in futuro cambierete il vostro hostname dovrete aggiornarlo di conseguenza nel file /etc/hosts altrimenti sarete di nuovo senza rete.
  • Per quanto riguarda il maledetto gestore di rete KDE non vi preoccupate se al riavvio avrà un punto di domanda in baso a destraKde-networkmanager: è perché lui non ha più il comando: fregatevene!!!!
 
Questo è quanto: è l’unico workaround che sono riuscito a metter in piedi per gestire un IP statico usando KDE. Esisterà magari una soluzione più elegante, ma io non l’ho trovata: ho tentato di configurare il gestore di rete di KDE in tutti i modi possibili, ma non son mai riuscito a fargli fare quello che volevo io. Per cui questa è la mia soluzione. Se ne trovate una più elegante: ben venga!!
 
JC

ownCloud e nextCloud: Limite massimo dimensione file in upload

Dopo aver provato questo sistema di sharing su un mio server in internet, ho trovato un fastidioso problema: quando devo caricare file di dimensioni maggiori di 512Mb il sistema me lo impedisce.

Come prima cosa sono andato a verificare i limiti in /etc/phpX/apache2/php.ini (con X uguale a 5 o 7, dipende che versione usate di php) e per la precisione:

  1. che la variabile upload_max_filesize fosse maggiore di 512mb
  2. che la variabile post_max_size non fosse maggiore di 512mb, ed a dire il vero per un post direi che 128 sarebbero anche più che sufficienti
  3. che la variabile upload_tmp_dir fosse configurata a puntare una dir il cui file sytsem avesse spazio a sufficienza per caricare file delle dimensione massima nel caso in cui la /tmp di sistema non avesse spazio a sufficienza.

ATTENZIONE!!!

Nel configurare upload_max_filesize fate attenzione a NON superare il limite della ram a disposizione: in passato facendolo sono incappato in problemi di crash del sistema di cui non capivo il motivo, in quanto apparentemente non collegato a quel settaggio; ed in ogni caso il massimo consigliabile sarebbe la vostra ram installata diviso 2.

Ricaricato apache, con il classico service apache2 reload, il cambio del valore della variabile upload_max_filesize non sembrava aver risolto il problema:*Cloud continuava a darmi errore nella dimensione massima caricabile dal client: sia locale che da webclient. Dopo aver cercato a destra ed a manca, alla fine ho trovato l’impaccio: cercavo qualche configurazione specifica a 512Mb nella cartella di *Cloud ma non avevo verificato in .htaccess ed è proprio li che sta l’inghippo; apritelo e modificate il valore del settaggio di php_value upload_max_filesize 512M al valore che vi serve, nel mio caso php_value upload_max_filesize 1024M. 

Potete usare anche la notazione 1G come riportato qui: http://php.net/post-max-size.

 

Da questo momento in poi, ha accettato, senza problemi, file sino ad un gigabyte di dimensione direttamente dal client locale.

L’unico problema che non era ancora risolto, stava nel fatto che quando si passa il mouse sulla freccia di caricamento dal webclient continuava a segnalare che la dimensione massima caricabile era di 512MB; questo problema si risolve modificando, sempre in .htaccess, anche il valore di php_value post_max_sizea 1024M.

Non chiedetemi perché, visto che la variabile che determina la dimensione massima è upload_max_filesize: probabilmente un baco che proverò a segnalare a chi manutenziona il programma.

Do per scontato, che fosse chiaro che tutte le modifiche che ho segnalato vanno effettuate nel server dove il demone di onwCloud viene eseguito, e non sul sistema, Linux o Pc o Osx che sia su cui è installato il client 🙂

Sperando che possa essere di aiuto a qualcuno, vi auguro buona giornata.

JC

Licenza Creative Commons 
Quest’opera è stata rilasciata con licenza Creative Commons Attribuzione – Non commerciale – Condividi allo stesso modo 4.0 Internazionale. Per leggere una copia della licenza visita il sito web a questo URL.