domenica 30 agosto 2009

Perl: Upload su rapidshare da linea di comando


Potete eseguire upload su rapidshare.com direttamente da linea di comando con lo script perl che trovate all'URL:
http://images.rapidshare.com/software/rsapi.pl

sabato 29 agosto 2009

VIM: trasformare una parola da maiuscolo a minuscolo e viceversa

Analogamente a quanto detto nel post precedente, e' sufficiente posizionarsi sul primo carattere della parola da trasformare e digitare (per il minuscolo):
guw

oppure per il maiuscolo:
gUw

VI: maiuscolo e minuscolo

Per convertire tutto il file in minuscolo:
:%s/.*/\L&/

e in maiuscolo:
:%s/.*/\U&/
Ma ancora meglio, per il minuscolo (forse funziona solo su vim):
ggguG

e per il maiuscolo:
gggUG

Vediamo di dare qualche spiegazione:
gg: le prime due gg posizionano il cursore a inizio file
g: la terza g mette l'editor in una particolare modalita' di sostituzione
u: dice di trasformare in minuscolo
G: dice "fino alla fine del file"

Analogamente:
gg: le prime due gg posizionano il cursore a inizio file
g: la terza g mette l'editor in una particolare modalita' di sostituzione
U: dice di trasformare in maiuscolo
G: dice "fino alla fine del file"


venerdì 28 agosto 2009

Samba: montare uno share senza essere root

Si si si sembra facile...
lancio il comando:
smbmount //192.168.1.111/share /mnt/mountpoint -o user=username,pass=password

e ottengo:
mount error: permission denied or not superuser and mount.cifs not installed SUID

La man page di mount.cifs dice che il comando puo' essere impostato SUID root per consentire agli utenti di montare share remoti.
Andiamo a vedere...porka puzzola...mount.cifs e' gia' settato SUID root.
Trovo qualche indicazione aggiuntiva: il mount point deve essere scrivibile dall'utente che esegue il mount:
chmod 777 /mnt/mountpoint
smbmount //192.168.1.111/share /mnt/mountpoint -o user=username,pass=password

ma purtroppo ottengo ancora:
mount error: permission denied or not superuser and mount.cifs not installed SUID

Purtroppo quasi tutte le guide si fermano qui con un sacco di punti interrogativi e di invocazioni di sfere celesti.
Quello che si sono dimenticati quasi tutti di dire e' che non basta che il mount point sia scrivibile da parte dell'utente...l'utente deve anche esserne il proprietario:
chmod 777 /mnt/mountpoint
chown UTENTE_CHE_ESEGUE_IL_MOUNT /mnt/mountpoint
smbmount //192.168.1.111/share /mnt/mountpoint -o user=username,pass=password

L'operazione viene finalmente completata con successo.

bash: eliminare il carriage return da una stringa


Puo' capitare, ad esempio leggendo file di testo da ambienti Microsoft, di leggere una stringa ma di trovarvi poi alla fine un carattere "carriage return", o return, o \r (insomma ci siamo capiti).
Se per qualunque motivo quel caratteri vi desse fastidio (a voi personalmente o alla vostra procedura) provate a mandare la vostra stringa in pipe al comando:
tr -d '\r'

Gnome: cambiare wallpaper da linea di comando


wp=/path/assoluto/del/file/immagine/da/usare/come/wallpaper
gconftool-2 -s /desktop/gnome/background/picture_filename "$wp" -t string

ATTENZIONE!!!
Se invece del wallpaper vi appare il desktop in tinta unita avete sbagliato nome del file o avete dimenticato di inserirlo con il path assoluto.

Dibattito: raid1 o raid5


Un post un po' diverso dal solito, invece che spiegare qualcosa propongo un dibattito per approfondire un argomento di cui parlavo in questi giorni con alcuni amici e colleghi:

La situazione finale dovrebbe essere un piccolo file server, basato su una scheda Intel DG35EC, Debian Lenny e 1 terabyte di storage, dischi SATA II collegati al controller della scheda madre e raid gestito da md. La macchina dovrebbe mantenere un vmware server con relative VM e un po' di backup di altre macchine della rete.

Il problema su cui apro la discussione e' la seguente:

Conviene installare 2 dischi da 1TB in raid 1 o 3 dischi da 500 MB in raid5? La spesa per l'hardware sarebbe la stessa per entrambe le configurazioni.

Non siate timidi, partecipate con i vostri consigli, le vostre esperienze, le vostre intuizioni e magari qualche sfrombolone, l'importante e' che i commenti siano in tema :)

(per ora saro' imparziale e non rivelero' come la penso)

giovedì 27 agosto 2009

Evolution: calendario festivita' italiane


Per inserire nel calendario di Evolution le festivita' italiane andate alla pagina seguente (non e' solo per Mac ;-):
http://www.apple.com/downloads/macosx/calendars/italianholidaycalendar.html

Cliccate su download, vi apparira' questa finestra(ignorate l'errore che vi verra' dato da firefox):

scegliete di aprire il file scaricato con:
evolution-webcal

Vi apparira' questa finestra:


Selezionate un colore e cliccate su subscribe

mercoledì 26 agosto 2009

Montare immagini ISO da Gnome


Simile ai daemon-tools che molti di voi avranno usato su Windows (quanti di voi NON si sono accorti che il piu' delle volte quel software e' pieno di trojani e schifezze varie?) su Gnome troviamo Gmount-ISO.

Lo possiamo installare con:
apt-get install gmountiso

Lo trovate nel menu System Tools

Convertire immagini da .UIF a .ISO

C'e' un formato per immagini di CD/DVD che e' sempre rimasto indigesto agli utenti linux: .uif
La maggior parte delle fonti consiglia di installare wine, installare tramite wine il programma per Windows MagicISO e con questo convertire l'immagine in formato ISO per poterla poi montare su linux.
E' come dire che per svitare una vite bisogna usare un paio di tenaglie. Noi preferiamo usare gli attrezzi giusti e cosi' abbiamo installato UIF2ISO, un programma che fa proprio quello che volevamo. Il programma e' stato scritto da Luigi Auriemma.

Vediamo come installarlo:

Installiamo alcuni pacchetti necessari:
sudo apt-get install zlib1g zlib1g-dev libssl-dev build-essential

Scarichiamo il programma dal sito dell'autore:
wget http://aluigi.altervista.org/mytoolz/uif2iso.zip

Scompattiamo il pacchetto scaricato:
unzip uif2iso.zip -d uif2iso

Compialiamo e installiamo il programma con i comandi seguenti:
cd uif2iso/src
make
sudo make install

L'uso del programma e' molto semplice, basta eseguire:
uif2iso example.uif output.iso

dove example.uif e' il file immagine in formato UIF e output.iso e l'immagine ISO che desideriamo ottenere.
L'immagine ISO puo' essere a quel punto masterizzata oppure montata con i seguenti comandi:
sudo modprobe loop
sudo mkdir DIRECTORY
sudo mount ISO_image DIRECTORY -t iso9660 -o loop

sostituendo DIRECTORY con un nome da assegnare al mount point, a ISO_image il nome dell'immagine ISO da montare.
Se non vi piace usare il terminale (shame on you!!!) potete installare il pacchetto gmountiso.

Cisco: resettare la chiave RSA del vostro Cisco PIX


Se avete una connettivita' internet intermittente, il vostro Cisco PIX potrebbe seccarsi e decidere di rendere un po' meno craccabili la/e sua/e chiave/i RSA per l'accesso remoto (molto simpatico non c'e' che dire....specialmente se siete separati da qualche migliaio di chilometri). Dovete rigenerare le chiavi RSA.

Se non riuscite ad accedere remotamente alla macchina dovete usare la console seriale (il cavo blu). Attaccate il cavo a una porta seriale di un PC e lanciate su questo l'emulatore di terminale.

Avviate il PIX.
Eseguite login ed entrate in modalita' configure terminal.
Digitate:
ca zeroize rsa
ca generate rsa key KEYSIZE
ca save all

Dove KEYSIZE e' la dimensione della chiave in bit, ad esempio 1024.

Riavviare il PIX con il comando:
reboot

Strumenti per Samba

Dannato grafico, mi sbaglia sempre le foto da pubblicare...prima o poi la samba la ballero' sulla sua testa (peppepeppeppeppe.....).

Ma torniamo in tema....ovviamente mi riferivo a strumenti comodi per la gestione e il troubleshooting in ambiente misto linux+samba / Windows.

Spesso i problemi sulla rete windows sono causati da un uso troppo intensivo e complesso di sistemi di cache, quindi puo' capitare che un'attesa di qualche decina di minuti sia sufficiente per vederli scomparire.
Altre volte il problema puo' essere sul server. Vediamo gli strumenti da utilizzare in entrambi gli ambienti.

SERVER

Eseguire login sul server come utente root.

* net status sessions : visualizza le sessioni attive
* net status shares : visualizza gli share
* net rpc info : visualizza informazioni sul dominio
* net groupmap list : visualizza i mapping dei gruppi samba->win
* smbstatus -L : visualizza i file lockati
* smbstatus : visualizza utenti, share e file lockati
* smbstatus -u USERNAME : visualizza solo le informazioni relative all'utente
* nmblookup DOMAIN#1b : visualizza il master browser corrente
* nmblookup DOMAIN#1d : visualizza il domain controller corrente
* nmblookup DOMAIN#1c : visualizza il PDC e i BDC sul dominio

Il comando seguente visualizza gli utenti membri di un dato gruppo:
net rpc group MEMBERS nome_gruppo -U administrator -W nome_dominio


Potete visualizzare dinamicamente, dal vivo, l'output di questi comandi, digitate:
watch COMANDO

Per osservare l'output di COMANDO cambiare ogni 2 secondi.
Per esempio:
watch 'net status sessions'

o:
watch 'nmblookup MIODOMINIO#1b'

Gli apici sono opzionali sulla maggior parte dei comando, a parte le linee di comando piu' complesse o contenenti opzioni e parametri. Ad esempio per analizzare dinamicamente il log per le attivita' netbios della macchina 10.0.1.65 dovete usare il comando seguente:
watch 'tail /var/log/samba/nmbd.log | grep 192.168.1.165'

Questo comando non funzionerebbe senza gli apici.

CLIENT

Sui client Windows da prompt di DOS usate il comando:
nbtstat

Eseguendolo senza argomenti e opzioni otterrete una lista di comandi:


* nbtstat -a RemoteName : (adapter status) In base al nome specificato, elenca la tabella dei nomi del computer remoto
* nbtstat -A IP Address : (adapter status) In base all'indirizzo IP specificato, elenca la tabella dei nomi del computer remoto.
* nbtstat -c : (cache) Elenca la cache di NBT dei nomi e indirizzi delle macchine remote
* nbtstat - n : (names) Elenca i nomi NetBIOS locali
* nbtstat -r : (resolved) Elenca i nomi risolti mediante broadcast e WINS
* nbtstat -R : (Reload) Cancella il contenuto della tabella dei nomi cache remota e la ricarica
* nbtstat -S : (Sessions) Elenca la tabella delle sessioni con gli indirizzi IP di destinazione
* nbtstat -s : (sessions) Elenca la tabella delle sessioni che converte gli indirizzi IP di destinazione in nomi computer NETBIOS
* nbtstat -RR : (ReleaseRefresh) Invia pacchetti di rilascio di nomi a WINS e quindi avvia l'aggiornamento

Aggiungendo un numero n in coda ad ogni comando l'output viene rivisualizzato ogni n secondi. Premere CTRL-C per uscire. Ad esempio per visualizzare la cache ogni 5 secondi usate il comando:
nbtstat -c 5

ACL Posix: client windows su server samba

Il permesso full control viene ignorato, se impostato viene rimosso al momento della conferma.

la cancellazione (concessa solo dal permesso full control) viene quindi considerata da windows come non fattibile ma in realta' il file puo' essere cancellato in quanto su linux e' sufficiente il permesso di scrittura per cancellare.

WARNING: Your ClamAV installation is OUTDATED!

Se ricevete questo warning al momento di aggiornare le definizioni dei virus nell'antivirus Clamav verificate di aver installata solo una versione del prodotto.
Su Debian potete verificare con il comando:
dpkg -l | grep clamav

In caso sia tutto regolare significa che la versione installata e' evidentemente obsoleta. Per aggiornarla (continuo l'esempio per Debian e in particolare stable/etch, per altre distribuzioni fate riferimento al sito wiki.clamav.net) dovete aggiungere nel file /etc/apt/sources.list il repository Debian Volatile:
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free

Eseguite l'upgrade con il comando:
apt-get update; apt-get install clamav

Se usate anche clamd dovete eseguire anche il comando:
apt-get install clamav-daemon

domenica 23 agosto 2009

Come cambiare l'editor predefinito in Debian

Per default, Debian fornisce l'editor 'nano'. Se per esempio volessimo usare 'vi' come editor di default dobbiamo seguire una delle seguenti procedure:
Gli amministratori che vogliono cambiare l'editor di default per tutti gli utenti del sistema, devono aggiornare il sistema delle alternative con il seguente comando:
# update-alternatives --config editor

e scegliere vi/vim

Gli utenti che volessero cambiare il loro editor di default, possono definire la variabile d'ambiente EDITOR, introducendo le linee seguenti nei loro profile personali:
EDITOR=vi
export EDITOR
alias editor=$EDITOR

sabato 22 agosto 2009

sane: lo scanner della multifunzione Epson SX400


Eseguire il comando seguente:
sane-find-scanner | grep 0x04b8

(0x04b8 e' il codice che identifica le periferiche Epson)
Dovreste ottenere qualcosa di simile:
found USB scanner (vendor=0x04b8, product=0x084a) at libusb:002:003

Aprire il file /etc/sane.d/epson.conf e cercare la linea:
usb

e sostituirla con
usb 0x04b8 0x084a

Salvare, uscire e provare se tutto funziona lanciando il comando:
xsane

venerdì 21 agosto 2009

Keyboard Indicator Applet: bandiere invece del nome


Dovendo utilizzare tastiere di diverse nazionalita' o scrivere testi in piu' lingue, e' molto utile l'applet gnome-keyboard-indicator che visualizza nel pannello di Gnome la configurazione attuale della tastiera, consentendo con un semplice click di switchare su tutte quelle disponibili e preimpostate dall'utente.
Normalmente l'applet visualizza il nome abbreviato della nazionalita' (ita, usa, ecc ecc) ma e' sicuramente meglio (oltreche' visivamente piu' piacevole) sostituire questo nome con la bandiera corrispondente.

Le immagini delle bandiere possono essere posizionate nella directory /usr/share/pixmaps/flags e come nome devono segure la sintassi xx.png dove xx deve essere sostituito dal codice ISO della nazione (it.png, us.png, ro.png, gb.png).

Ovviamente le immagini devono essere dimensionate per poter essere contenute nel pannello (pare che utilizzando il formato xx.svg il dimensionamento sia automatico ma al momento non mi e' stato possibile testare la cosa) io ho scelto la dimsione 30x20 (utilizzando un pannello alto 21 pixel)

Ora dobbiamo attivare la visualizzazione delle bandiere, lanciate il comando:
gconf-editor

e selezionate la voce:
/desktop/gnome/peripherals/keyboard/indicator/showFlags

Al prossimo logon su Gnome vedrete apparire le bandiere sul pannello.

Postfix: mascherare l'indirizzo di un mittente

Spesso i messaggi di alert di un server vengono inviati dall'utente root@host.dominio.local
Se i messaggi escono all'esterno della nostra rete, possono incontrare qualche server smtp "cativo" che li getta sentenziando che non esiste nessun dominio, pubblicamente conosciuto, con quel nome.
Essendo titolari del dominio (ad esempio): dominio.com, sarebbe carino che il mittente dei messaggi risultasse qualcosa di simile a root.host@dominio.com
In questo caso nessun smtp server avra' nulla da ridire e noi sapremo vedere anche solo dando una veloce occhiata che la segnalazione si riferisce a quel particolare host della nostra reta/dominio.

Vediamo come gestire la cosa con Postfix:
Editate il file /etc/postfix/main.cf e aggiungete la direttiva
smtp_generic_maps = hash:/etc/postfix/generic

Salvate e uscite dal file.
Create/aprite il file
/etc/postfix/generic e inserite la riga:
root@host.dominio.local root.host@dominio.com

o piu' in generale:

INDIRIZZO_UTENTE_MACCHINA_LOCALE INDIRIZZO_UTENTE_DOMINIO_PUBBLICO

Salvate, uscite dal file e compilatelo con il comando:
postmap /etc/postfix/generic

eseguite un restart di postfix per attivare la modifica:

/etc/init.d/postfix restart

Quando la mail e' invata a un host remoto tramite SMTP il server postfix si occupera' di sostituire l'indirizzo INDIRIZZO_UTENTE_MACCHINA_LOCALE con l'indirizzo INDIRIZZO_UTENTE_DOMINIO_PUBBLICO.


Postfix send error: queue file write error

Spedendo messaggi "corposi" e' possibile trovare nei log queste segnalazioni:
postdrop: warning: uid=1000: Illegal seek
sendmail: fatal: amit(1000): queue file write error

Cio' puo' essere causato dalle dimensioni del messaggio che superano il limite di default (dovrebbe essere impostato a 10MB)
Per consentire l'invio di messaggi piu' grossi, e' sufficiente inserire nel file /etc/postfix/main.cf la direttiva:
message_size_limit = 15000000

che imposta (ad esempio) il limite a circa 15MB, oppure:
message_size_limit = 0

che disabilita il limite di dimensioni sul singolo messaggio.

Blogger/Blogspot: sparizione della barra di navigazione

La barra di navigazione di Blogger e' la barra in cima ai blog di questa piattaforma da cui potete eseguire ricerche, passare al blog successivo, segnalare un blog come spam, agire sul blog se siete utenti autorizzati a farlo.

Da qualche giorno la barra di navigazione era sparita sui blog da me gestiti, ecco come appariva.

Pare che sia un problema nel css della barra, fortunatamente solo in quella di colore blu, e' stato sufficiente modificare il colore della navbar nella modifica del layout del blog per ottenere il risultato mostrato dall'immagine seguente.

mercoledì 19 agosto 2009

Blogger: inserire codice html nei vostri post

Mi ero stufato di inserire codice html nei miei post e di vederlo sparire o storpiare al momento della pubblicazione.
Ho trovato una bella estensione di Firefox "Quick paste code to Blogger" che vi risparmia tempo, fatica e arrabbiature. La potete trovare qui: https://addons.mozilla.org/it/firefox/addon/11911

Usare Fail2ban con Dovecot

Creare il file filtro /etc/fail2ban/filter.d/dovecot-pop3imap.conf:


[Definition]
failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
ignoreregex =


Aggiungere quanto segue al file /etc/fail2ban/jail.conf:


[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,imap", protocol=tcp]
logpath = /var/log/maillog
maxretry = 20
findtime = 1200
bantime = 1200

domenica 2 agosto 2009

Zenity senza fuoco

Se le finestre di dialogo create con zenity non riescono ad ottenere il focus al momento della loro creazione non temete, e' un bug gia' conosciuto e di facile soluzione:
Occorre modificare il file /usr/share/zenity/zenity.glade sostituendo in tutte le ricorrenze della linea contenente la clausola "focus_on_map" la parola False con la parola True.

Firefox: fallimento silenzioso installazione plugin

Normalmente installando un qualsiasi plugin di Firefox viene richiesta l'autorizzazione all'
installazione, poi il riavvio di Firefox dopodiche' viene notificata l'aggiunta del nuovo plugin.

Mi e' capitato che l'ultimo passo fosse saltato e contemporaneamente il plugin non risultava installato (about:plugins)

La soluzione consiste nel chiudere Firefox, andare nella directory ~/.mozilla/firefox/VOSTRO_PROFILO, cancellare (o al limite rinominare) i seguenti file:

extensions.cache
extensions.ini
extensions.rdf

Riavviate Firefox e rieseguite l'installazione del plugin

Soulseek client per Linux (nicotine+)


Grazie a un tweet di A_G ho riscoperto la rete Soulseek.

Per linux e' disponibile il client nicotine+, ecco come utilizzare la versione piu' recente:

(sul sistema deve essere installato il pacchetto subversion)

Scaricare i sorgenti di Nicotine nella directory nicotine+/

svn checkout http://nicotine-plus.org/svn/trunk/nicotine+ nicotine+

Spostarsi nella nuova directory nicotine+

cd nicotine+

Eseguire la versione di nicotine appena scaricata

./nicotine

Scaricare una release specifica di Nicotine+

svn checkout http://nicotine-plus.org/svn/tags/X.X.X/nicotine+ nicotine+

Sostituisci X.X.X con il numero di release richiesto

CORIMTEC su Twitter

Dopo un periodo di test, CORIMTEC ha adottato Twitter come canale di comunicazione "veloce"
Potete visualizzare gli aggiornamenti all'indirizzo:
http://twitter.com/CORIMTEC