Pagina Principale/Comandi

Page last edited 1 860 giorni 20 ore fa
Da wiki.betaingegneria.it.

wget[modifica]

Potente programma per scaricare siti statici.

  wget -r -l8 --no-parent http://www.miosito.com/dir/

scarica tutta la directory dir e tutte le sottodirectory (-r recursive) fino a 8 gradi di ricorsione (-l levels) ma non le cartelle genitrici (--no-parent).

vi[modifica]

  1. con questo comando si tolgono i ^M da un file di testo con VI:
 :g/[CTRL-V][CTRL-m]/ s///g

find[modifica]

Per trovare file contenenti una determinata stringa:

  find . -name "*.h" -exec grep -H " socket (" {} \;
  find . -name "file_da_cercare*" -exec grep -H "stringa_da_cercare" {} \;
  find . -name "*" -exec grep -H "mysql" {} \;
  find . -name "*" -exec grep -H "navbar" {} \;

passwd[modifica]

Come cambiare la password al mio utente. Per prima cosa accedo al mio account, poi faccio così:

  marcob@jsbach:~$ passwd
  Enter current password:
  Enter new password:
  Retype new password:
  marcob@jsbach:~$

Nota bene: mentre batto sui tasti, Linux non mi ritorna nessun prompt (a terminale non vedo che sto scrivendo, per questioni di privacy)

Se tutto è andato liscio la password è stata modificata. Se invece è KO, le cose che possono essere andate storte sono:

1) se si sbaglia la password corrente occorre reimmetterla (saperla è prerequisito di tutto, se non la sai, come ci sei arrivato lì? il tipo ha lasciato la shell aperta, 'sto coglione...)

2) se la password è troppo banale Linux non esiterà a farcelo notare

3) se la password ripetuta nel retype non è uguale alla prima immissione dobbiamo reimmetterla giusta.

du[modifica]

Per vedere quanto pesa una directory DIR

  du -h -c DIR

grep[modifica]

gnu regular expression parser

  grep -v "^;" php_excalibur.ini | grep -v "^$" | sort > php_excalibur.ini.2


Come redirigere STDOUT/STDERR a NULL[modifica]

Q: I know in linux you would use that with a command to make any output by that command to be silent but I was just wondeing if anybody could explain the last part of this

  someprog > /dev/null 2>&1

It makes sense to me to use the > /dev/null so that the output goes to null and disappears, but what exactly does the 2>&1 do ? Thanks if anybody knows the answer.


A:

  • The first part, "> /dev/null" means send standard output to the 'bit bucket" or in other words, throw it away.
  • The second part, "2>&1" means "redirect standard error (2) to the same place as standard output (1.)

Eseguire ssh o scp senza dover digitare la password![modifica]

keywords: RSA (Rivest, Shamir, Adleman - algoritmo di crittografia a chiave asimmetrica), DSA (Digital Signature Algorithm)

Abstract[modifica]

Utile per far girare degli script che contengono ssh e/o scp che starebbero lì inchiodati ad aspettare la password. Si usa una feature interessante di SSH che consente l'autenticazione basata su RSA o DSA.

Istruzioni[modifica]

  1. nel proprio pc local, loggarsi col proprio utente (supponiamo mrossi):
  mrossi@local:~> ssh-keygen -t rsa

che produce il seguente trace: Generating public/private rsa key pair. Enter file in which to save the key (/home/mrossi/.ssh/id_rsa):<invio x default> Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/mrossi/.ssh/id_rsa. Your public key has been saved in /home/mrossi/.ssh/id_rsa.pub. The key fingerprint is: 2a:fa:4e:a5:1e:68:96:b3:b6:44:0c:f0:0b:17:9f:62 mrossi@local

Altri tipi di crittografia sono rsa1 (versione vecchia di rsa = rsa2) e dsa.

La generazione richiede l'inserimento (con conferma) di una passphrase (password lunga e con caratteri di punteggiatura). Questo se l'host remoto è particolarmente esposto ad attacchi.

Nota[modifica]

Se mettiamo la passphrase perdiamo la comodità di non dover digitare la password perché dovremo, al collegamento, digitare la passphrase. Il `man ssh-keygen' dice:

   (host keys must have an empty passphrase)

Così possiamo fare la connessione senza digitare la password.

ssh-keygen genera una coppia di chiavi

  • una chiave privata che scrive nel file /home/mrossi/.ssh/id_rsa; questa chiave deve avere permessi 600 e deve rimanere rigorosamente nel proprio PC
  • una chiave pubblica che scrive nel file /home/mrossi/.ssh/id_rsa.pub

Nota[modifica]

  • Se si è scelto -t rsa1, la chiave si chiamerà identity;
  • se si è scelto -t dsa, la chiave si chiamerà id_dsa.
  1. cambiare i permessi a .ssh/id_rsa.pub a 600 (ssh lo consiglia quando lo si lancia).
  2. l'host remoto deve avere una entry nel nostro .ssh/known_hosts. Se non c'è l'utente mrossi in remote, occorre crearlo.
  3. aggiungere il contentuto della chiave pubblica nel file .ssh/authorized_keys nell'host remoto con un comando di SCP (in questa fase DOVREMO digitare la password come al solito). Per fare ciò si può prima copiare il file:
    1. mrossi@local:~> scp .ssh/id_rsa.pub mrossi@remote:.ssh/id_rsa.pub
    2. ssh mrossi@remote
    3. mrossi@remote:~> cat .ssh/id_rsa.pub | tee -a .ssh/authorized_keys.

A questo punto abbiamo aggiunto la nostra chiave pubblica all'host remoto. La chiave pubblica .ssh/id_rsa.pub in remoto si può anche cancellare.

  1. A questo punto se da local ci colleghiamo con ssh o copiamo con scp, non ci verrà più richiesta la password.

Nei vari tentativi ho visto che:

  • occorre copiare la chiave pubblica in remoto e la chiave privata deve rimanere nel local. Qualsiasi copia in ordine diverso porterà a non far funzionare ssh con questo metodo.
  • se qualche operazione non viene fatta bene, ssh o scp ci chiede cmq la password
  • se abbiamo digitato una passphrase non vuota essa ci viene chiesta al posto della password.
  • se si sbaglia qualcosa si possono cancellare le password
  mrossi@local:~> rm .ssh/id*

e rigenerarle con

  mrossi@local:~> ssh-kygen -t rsa

man ssh e man ssh-keygen sono molto chiari.

Quale versione della distro ho?[modifica]

  marcob@jsbach:~/www$ cat /etc/issue
  Ubuntu 10.10 \n \l

Altro comando, con più dettagli[modifica]

  $ lsb_release -a
  No LSB modules are available.
  Distributor ID:	Ubuntu
  Description:	Ubuntu 10.10
  Release:	10.10
  Codename:	maverick

Informazioni sul SO, sull'hardware, sul processore[modifica]

  user@host:/usr/local/lib> uname -a
  Linux bach 2.6.13-15.16-default #1 Fri Jun 8 15:35:39 UTC 2007 i686 i686 i386 GNU/Linux
  user@host:/usr/local/lib> uname --help
  Uso: uname [OPZIONE]...

Stampa alcune informazioni sul sistema. Senza una OPZIONE è come fosse -s.

 -a, --all                stampa tutte le informazioni, nel seguente ordine:
 -s, --kernel-name        stampa il nome del kernel
 -n, --nodename           stampa l'hostname del nodo di rete
 -r, --kernel-release     stampa la release del kernel
 -v, --kernel-version     stampa la versione del kernel
 -m, --machine            stampa il nome dell'hardware della macchina
 -p, --processor          stampa il tipo di processore
 -i, --hardware-platform  stampa la piattaforma hardware
 -o, --operating-system   stampa il sistema operativo
     --help     display this help and exit
     --version  stampa le informazioni sulla versione ed esce

Vedere quali dipositivi di memorizzazione sono attaccati al PC e mount points[modifica]

  user@host:~> su
  Password:
  bach:/home/marcob # mount
  /dev/hda3 on / type reiserfs (rw,acl,user_xattr)
  proc on /proc type proc (rw)
  sysfs on /sys type sysfs (rw)
  tmpfs on /dev/shm type tmpfs (rw)
  devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
  /dev/hda1 on /windows/C type ntfs (ro,noexec,nosuid,nodev,gid=100,umask=0002,nls=utf8)
  usbfs on /proc/bus/usb type usbfs (rw)
  none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
  /dev/sda1 on /media/usbdisk type subfs (rw,nosuid,nodev,sync,fs=floppyfss,procuid,iocharset=iso8859-15)
  bach:/home/marcob #

Disassembler per x86[modifica]

  $ objdump -d <nomefile>

verifica con md5 dei pacchetti scaricati da Internet[modifica]

Supponiamo di scaricare il file "gimp-2.4.1.tar.bz2" e la sua firma "gimp-2.4.1.tar.bz2.md5" Possiamo verificare che il file sia integro con due comandi:

  user@host:~> md5sum gimp-2.4.1.tar.bz2
  51edbadd77235837535a6882ad63d8fb  gimp-2.4.1.tar.bz2
  user@host:~> cat gimp-2.4.1.tar.bz2.md5
  51edbadd77235837535a6882ad63d8fb  gimp-2.4.1.tar.bz2
  user@host:~>

e controllare a occhio che le stringhe corrispondano.

C'è un modo più semplice che fa la verifica automaticamente con un solo comando dando in pasto la firma a md5sum:

  user@host:~> md5sum --check gimp-2.4.1.tar.bz2.md5
  gimp-2.4.1.tar.bz2: OK

Looping a command trough items[modifica]

Avevo un problema: ho una lista di file .ps da trasformare in .pdf. COME EVITARE DI fare a mano

  $ ps2pdf nomefile.ps

per tutti i 1000 file?

RISPOSTA:

  $ LISTA=`ls *.ps`
  $ for item in $LISTA; do ps2pdf "$item"; done

FINE :-)

Associazione tra signals e tasti della tastiera[modifica]

Ad esempio la combinazione di tasti CTRL+C invia al processo in foreground un segnale SIGINT (interrupt) (credo sia: sul processo nella finistra attiva). Qual è il tasto per lanciare un SIGQUIT (utile p.es. per visualizzare una statistica dei PING senza interromperne il conteggio e l'esecuzione) ? Questo è il comando:

  marcob@bach:~$ stty -a
  speed 38400 baud; rows 44; columns 179; line = 0;
  intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
  min = 1; time = 0;
  -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
  -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8
  opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
  isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
  marcob@bach:~$

Trasformare files eps in jpeg[modifica]

1 FILE:

  gs -sDEVICE=jpeg -dJPEGQ=100 -dNOPAUSE -dBATCH -dSAFER -r300 -sOutputFile=areeargomenti.jpg areeargomenti.eps

N FILES:

  for item in $LIST; do gs -sDEVICE=jpeg -dJPEGQ=100 -dNOPAUSE -dBATCH -dSAFER -r300 -sOutputFile=$item.jpg $item; done

nslookup[modifica]

 marcob@bach:~/Marco/Ricerca/informatica/protcols/exim$ nslookup betaingegneria.it
 Server:	83.224.70.61
 Address:	83.224.70.61#53
 Non-authoritative answer:
 Name:	betaingegneria.it
 Address: 217.64.198.227

sendmail[modifica]

Questo esempio insegna ad usare TELNET per invocare il protocollo di posta smtp e spedire una email

 $ telnet www.example.com 25
 $ telnet localhost 25

Questo comando apre una connessione a www.example.com sulla porta 25 di TCP.

S:  220 www.example.com ESMTP Postfix
C:  HELO mydomain.com
S:  250 Hello mydomain.com, pleased to meet you
C:  MAIL FROM: <sender@mydomain.com>
S:  250 sender@mydomain.com ... Sender ok
C:  RCPT TO: <friend@example.com>
S:  250 friend@example.com ... Recipient Ok
C:  DATA
S:  354 End data with "." on a line by itself
C:  Subject: messaggio di prova
C:  From: sender@mydomain.com
C:  To: friend@example.com
C:
C:  Ciao,
C:  questa è una prova.
C:  .
S:  250 Ok: queued as 12345
C:  QUIT
S:  221 Bye

netstat[modifica]

netstat è un potentissimo strumento per l'analisi della rete e consente di vedere tutti i "fili" che passano per la macchina nel quale viene eseguito.

Nella sua forma più semplice il comando è

 netstat -a | less

il pipe | less serve solo per limitare e controllare le righe stampate perché generalmente i socket aperti riempiono molte pagine. -a dice a netstat di stampare le connessioni di tutte le interfacce (nel mio pc sono lo - localhost - e eth0 - l'interfaccia ethernet). Se accendo anche il wireless ho anche

Un possibile output è il seguente

 Connessioni internet attive (senza server)
 Proto Recv-Q Send-Q Indirizzo locale        Indirizzo esterno       Stato      
 tcp        0      0 jsbach:60570            netzope.sanita.p:tproxy ESTABLISHED
 tcp        0      0 jsbach:34463            servizi.smartux.n:https ESTABLISHED
 tcp        0      0 jsbach:58200            netzope.sanita.p:tproxy ESTABLISHED
 tcp        0      0 jsbach:60547            netzope.sanita.p:tproxy ESTABLISHED
 tcp        0      0 jsbach:60525            netzope.sanita.p:tproxy ESTABLISHED
 tcp       15      0 jsbach:58237            172.18.13.7:ftp         CLOSE_WAIT 
 tcp        0      0 jsbach:60229            netzope.sanita.p:tproxy ESTABLISHED
 tcp        1      1 jsbach:49913            sjc-not8.sjc.dropbo:www LAST_ACK   
 tcp        0    540 jsbach:60517            netzope.sanita.p:tproxy ESTABLISHED
 tcp        0      0 jsbach:32944            netzope.sanita.p:tproxy ESTABLISHED
 tcp        1      0 jsbach:43191            199.59.241.247:www      CLOSE_WAIT 
 tcp       15      0 jsbach:51733            asoulss02.sanita.pa:ftp CLOSE_WAIT 
 tcp        0      0 jsbach:60526            netzope.sanita.p:tproxy ESTABLISHED
 tcp        0      0 jsbach:60549            netzope.sanita.p:tproxy ESTABLISHED
 tcp        0      0 localhost.localdo:mysql localhost.localdo:36960 ESTABLISHED
 tcp        1      0 jsbach:42650            38.102.136.138:www      CLOSE_WAIT 
 tcp        0      0 jsbach:60563            netzope.sanita.p:tproxy ESTABLISHED
 tcp        0      0 jsbach:56247            servizi.smartux.n:imap2 ESTABLISHED
 tcp        0      0 jsbach:38693            servizi.smartux.n:imap2 ESTABLISHED
 tcp        0      0 jsbach:56439            158.195.251.230:https   ESTABLISHED
 tcp        1      1 jsbach:43648            199.59.241.247:www      LAST_ACK   
 tcp        0      0 jsbach:60655            netzope.sanita.p:tproxy ESTABLISHED
 tcp        1      0 jsbach:49932            sjc-not8.sjc.dropbo:www CLOSE_WAIT 
 tcp        1      0 jsbach:42820            38.102.136.138:www      CLOSE_WAIT 
 tcp        0      0 localhost.localdo:36960 localhost.localdo:mysql ESTABLISHED
 tcp        1      1 jsbach:49925            sjc-not8.sjc.dropbo:www LAST_ACK   
 tcp        0      0 jsbach:45681            jsbach:www              FIN_WAIT2

Per imparare come leggere il tabellone vediamo una riga per volta.

Ogni riga è una connessione aperta, o socket. Per ogni riga:

  • la prima colonna definisce con quale protocollo è stato aperto il socket; nell'esempio visualizzato il protocollo è TCP/IP
  • salto la seconda e la terza
  • la quarta è l'indirizzo di origine della connessione, costituito da un nome, o da un'inidirzzo IP, seguito dalla porta
  • la quinta è la destinazione della connessione, con lo stesso formato
  • la sesta colonna riporta lo stato della connessione.

Nota che nel presente esempio, le porte standard vengono risolte con il nome del servizio tradizionalmente assegnato a queste porte; ad esempio:

  • 158.195.251.230:https è lo stesso di 158.195.251.230:443
  • 199.59.241.247:www è equivalente a 199.59.241.247:80
  • 172.18.13.7:ftp è equivalente a 172.18.13.7:21

eccetera.

Per le righe che descrivono socket udp ho soltanto la dicitura ESTABLISHED in quanto UDP è un protocollo senza stato (l'origine della connessione spedisce un messaggio senza sapere se arriverà a destinazione). Ad esempio:

 udp        0      0 jsbach:42718            10.196.82.254:5351      ESTABLISHED

Seguono poi i file socket, che sono le comunicazioni UNIX tra processi che comunicano tra di loro scrivendo su un file del local filesystem:

 Socket in dominio UNIX attivi (senza server)
 Proto RefCnt Flags       Type       State         I-Node   Percorso
 unix  16     [ ]         DGRAM                    7948     /dev/log
 unix  2      [ ]         DGRAM                    9615     /var/lib/samba/private/smbd.tmp/messaging/msg.0.0.0
 unix  2      [ ]         DGRAM                    9622     /var/lib/samba/private/smbd.tmp/messaging/msg.0.1619.0
 unix  2      [ ]         DGRAM                    9624     /var/lib/samba/private/smbd.tmp/messaging/msg.0.1622.0
 unix  2      [ ]         DGRAM                    9678     /var/lib/samba/private/smbd.tmp/messaging/msg.0.1620.0
 unix  2      [ ]         DGRAM                    6197     @/org/kernel/udev/udevd
 unix  2      [ ]         DGRAM                    9671     /var/lib/samba/private/smbd.tmp/messaging/msg.0.1628.0
 unix  2      [ ]         DGRAM                    9676     /var/lib/samba/private/smbd.tmp/messaging/msg.0.1630.0
 unix  3      [ ]         STREAM     CONNECTED     697680   @/tmp/dbus-upeEptpVyH
 unix  3      [ ]         STREAM     CONNECTED     697679   
 unix  3      [ ]         STREAM     CONNECTED     697665   @/tmp/dbus-upeEptpVyH
 unix  3      [ ]         STREAM     CONNECTED     697664   
 unix  3      [ ]         STREAM     CONNECTED     697663   /tmp/orbit-marcob/linc-1eca-0-6e607940d8062
 unix  3      [ ]         STREAM     CONNECTED     697662

Con il comando netstat -ta posso vedere tutte e sole le connessioni tcp:

 Connessioni internet attive (server e stabiliti)
 Proto Recv-Q Send-Q Indirizzo locale        Indirizzo esterno       Stato      
 tcp        0      0 *:loc-srv               *:*                     LISTEN     
 tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     
 tcp        0      0 *:netbios-ssn           *:*                     LISTEN     
 tcp        0      0 *:www                   *:*                     LISTEN     
 tcp        0      0 *:51413                 *:*                     LISTEN     
 tcp        0      0 *:ipp                   *:*                     LISTEN     
 tcp        0      0 localhost.localdom:smtp *:*                     LISTEN     
 tcp        0      0 *:https                 *:*                     LISTEN     
 tcp        0      0 *:17500                 *:*                     LISTEN     
 tcp        0      0 *:microsoft-ds          *:*                     LISTEN     
 tcp        0      0 *:7264                  *:*                     LISTEN     
 tcp        0      0 *:1024                  *:*                     LISTEN     
 tcp        0      0 *:ldap                  *:*                     LISTEN     
 tcp        0      0 jsbach:34743            servizi.smartux.n:https TIME_WAIT  
 tcp        0      0 jsbach:58200            netzope.sanita.p:tproxy ESTABLISHED
 tcp        0      0 jsbach:60547            netzope.sanita.p:tproxy ESTABLISHED
 tcp       15      0 jsbach:58237            172.18.13.7:ftp         CLOSE_WAIT 

le connessioni in stato LISTEN sono le connessioni in cui la mia interfaccia di rete eth0 è in ascolto, in sostanza sono tutte le mie porte aperte verso connessioni TCP/IP; il processo in TIME_WAIT è quello in cui il mio browser è in attesa sulla porta 443 (https) che è la mia webmail. Le due connessioni verso netzope sono quelle che a quel server si collegano tramite un mio proxy inverso locale (infatto sono marcate come tproxy) e sono connessioni attive; l'ultima riga invece è una connessione ad un server FTP che è andata in timeout (CLOSE_WAIT).

Tutti i possibili stati sono descritti in RFC-793. Questa RFC è stata scritta dal mitico Jon Postel (il papà di Internet), che con la consueta chiarezza spiega il funzionamento degli stati:

 A connection progresses through a series of states during its
 lifetime.  The states are:  LISTEN, SYN-SENT, SYN-RECEIVED,
 ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK,
 TIME-WAIT, and the fictional state CLOSED.  CLOSED is fictional
 because it represents the state when there is no TCB, and therefore,
 no connection.

Dunque ogni connessione ha una vita che si svolge attraverso gli stati che vanno in ordine da LISTEN a CLOSED.

Che versione di Ubuntu ho a bordo?[modifica]

 marcob@jsbach:~$ lsb_release -a
 No LSB modules are available.
 Distributor ID:	Ubuntu
 Description:	Ubuntu 10.10
 Release:	10.10
 Codename:	maverick
 marcob@jsbach:~$

Come aggiungere un repository[modifica]

APT sincronizza il sw a bordo di Ubuntu con le release aggiornate che si trovano nei repository ufficiali. Io, ad esempio, volevo aggiornare all'ultima versione Firefox che nella mia versione di Ubuntu (10.10) era ferma alla 3.5.

Attenzione a non trovarsi dietro ad un firewall per fare queste operazioni!

 marcob@jsbach:~$ sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa
 [sudo] password for marcob: 
 Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg 
   --primary-keyring/etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv B34505EA326FEAEA07E3618DEF4186FE247510BE
 gpg: richiesta della chiave 247510BE dal server hkp keyserver.ubuntu.com
 gpg: chiave 247510BE: "Launchpad PPA for Ubuntu Mozilla Daily Build Team" non cambiata
 gpg: Numero totale esaminato: 1
 gpg:              non modificate: 1
 marcob@jsbach:~$

Nel mio caso l'avevo già aggiunta... ;-)

Ora si può effettuare la sincronizzazione:

 $ sudo apt-get update

Come aggiungere un lanciatore alla scrivania[modifica]

 $ gnome-desktop-item-edit --create-new $HOME/Scrivania

Si apre il pannellino del lanciatore, si scrive il path dell'applicazione e si mette una descrizione. Alla fine premere OK e compare un nuovo lanciatore sul Desktop.

Upgrade di Thunderbird[modifica]

Questo non mi è riuscito di fare l'upgrade come con mozzila (attraverso i PPA). Ho trovato questo chiaro howto ed ha funzionato tutto. Ora però ho due versioni di Thunderbird vive non una sola...

Lanciare Nautilus come root[modifica]

Di solito lancio nautilus dalla docklet o dal menu proincipale, per in quel modo accedo alle cartelle come utente marcob. se devo fare delle operazioni conme superuser devo lavorare con la shell. Come si fa lanciare Nautilus da root?

  marcob@jsbach:~$ gksudo nautilus

Parte Nautilus su una finestra posizionata su /root

base64[modifica]

Il comando base64 codifica/decodifica una stringa in/da codifica base64.

Esempio: decodificare la stringa QWxhZGRpbjpvcGVuIHNlc2FtZQ==

 $ base64 -d -<INVIO>
 QWxhZGRpbjpvcGVuIHNlc2FtZQ==<INVIO><CTRL-D>
 Aladdin:open sesame$

Se si vuole utilizzare da Java, il package di riferimento è su Apache:

 org.apache.commons.codec.binary.Base64

Attenzione! non dare <INVIO>![modifica]

Apprendo oggi 25/10/2012 che se do invio, anche il carattere di invio verrà codificato con il resto della stringa!! Quindi fare così

 $ base64 -<INVIO>
 W5acsor<CTRL-D><CTRL-D>
 W5acsorVzVhY3Nvcg==
 $

Processi defunti[modifica]

Oggi ho il problema che la macchina rallenta. Guardo i processi e vedo un processo defunct. Google mi insegna che i processi defunct possono essere greedy.

"Lo ammazzo", penso. Mica così facile.

 $ kill -9 3462

ma il processo è ancora in piedi. Google mi insegna che se c'è un genitore del processo può essere che non riesco ad eliminare il figlio. Ma chi è il padre di 3462? NOn sapendo né leggere né scrivere faccio così

 $ ps -lax | grep 3462

ma scopro un metodo ancora più figo, l'albero dei processi

 $ pstree -p 
 init(1)─┬─GoogleTalkPlugi(3281)─┬─{GoogleTalkPlug}(3282)
       │                       ├─{GoogleTalkPlug}(3284)
       │                       ├─{GoogleTalkPlug}(3285)
       │                       └─{GoogleTalkPlug}(3286)
       ├─NetworkManager(1129)─┬─dhclient(2566)
       │                      └─{NetworkManager}(2567)
       ├─acpid(1338)
       ├─anacron(1336)───sh(3017)───run-parts(3019)───apt(3025)───apt-key(3428)───wget(3437)
       ├─apache2(1784)─┬─apache2(1807)
       │               ├─apache2(1810)
       │               ├─apache2(3146)
       │               ├─apache2(3168)
       │               ├─apache2(3171)
       │               ├─apache2(3250)
       │               ├─apache2(3347)
       │               ├─apache2(3494)
       │               ├─apache2(3564)
       │               └─apache2(3601)
       ├─atd(1356)
       ├─avahi-daemon(1127)───avahi-daemon(1128)
       ├─bonobo-activati(2869)─┬─{bonobo-activat}(2870)
       │                       └─{bonobo-activat}(2881)
       ├─clock-applet(2931)───{clock-applet}(2943)
       ├─console-kit-dae(1133)─┬─{console-kit-da}(1134)
       │                       ├─{console-kit-da}(1135)
       │                       ├─{console-kit-da}(1136)
       │                       ├─{console-kit-da}(1137)
       │                       ├─{console-kit-da}(1138)
       │                       ├─{console-kit-da}(1139)
       │                       ├─{console-kit-da}(1140)
       │                       ├─{console-kit-da}(1141)
       │                       ├─{console-kit-da}(1142)
       │                       ├─{console-kit-da}(1143)
       │                       ├─{console-kit-da}(1144)
       │                       ├─{console-kit-da}(1145)
       │                       ├─{console-kit-da}(1146)
       │                       ├─{console-kit-da}(1147)
       │                       ├─{console-kit-da}(1148)
       │                       ├─{console-kit-da}(1149)
       │                       ├─{console-kit-da}(1150)
       │                       ├─{console-kit-da}(1151)
       │                       ├─{console-kit-da}(1152)
       │                       ├─{console-kit-da}(1153)
       │                       ├─{console-kit-da}(1154)
       │                       ├─{console-kit-da}(1155)
       │                       ├─{console-kit-da}(1156)
       │                       ├─{console-kit-da}(1157)
       │                       ├─{console-kit-da}(1158)
       │                       ├─{console-kit-da}(1159)
       │                       ├─{console-kit-da}(1160)
       │                       ├─{console-kit-da}(1161)
       │                       ├─{console-kit-da}(1162)
       │                       ├─{console-kit-da}(1163)
       │                       ├─{console-kit-da}(1164)
       │                       ├─{console-kit-da}(1165)
       │                       ├─{console-kit-da}(1166)
       │                       ├─{console-kit-da}(1167)
       │                       ├─{console-kit-da}(1168)
       │                       ├─{console-kit-da}(1169)
       │                       ├─{console-kit-da}(1170)
       │                       ├─{console-kit-da}(1171)
       │                       ├─{console-kit-da}(1172)
       │                       ├─{console-kit-da}(1173)
       │                       ├─{console-kit-da}(1174)
       │                       ├─{console-kit-da}(1175)
       │                       ├─{console-kit-da}(1176)
       │                       ├─{console-kit-da}(1177)
       │                       ├─{console-kit-da}(1178)
       │                       ├─{console-kit-da}(1179)
       │                       ├─{console-kit-da}(1180)
       │                       ├─{console-kit-da}(1181)
       │                       ├─{console-kit-da}(1182)
       │                       ├─{console-kit-da}(1183)
       │                       ├─{console-kit-da}(1184)
       │                       ├─{console-kit-da}(1185)
       │                       ├─{console-kit-da}(1186)
       │                       ├─{console-kit-da}(1187)
       │                       ├─{console-kit-da}(1188)
       │                       ├─{console-kit-da}(1189)
       │                       ├─{console-kit-da}(1190)
       │                       ├─{console-kit-da}(1191)
       │                       ├─{console-kit-da}(1192)
       │                       ├─{console-kit-da}(1193)
       │                       ├─{console-kit-da}(1194)
       │                       ├─{console-kit-da}(1195)
       │                       └─{console-kit-da}(1248)
       ├─cpufreq-applet(2924)───{cpufreq-applet}(2937)
       ├─cron(1355)
       ├─cupsd(1299)
       ├─dbus-daemon(1110)
       ├─dbus-daemon(2687)
       ├─dbus-launch(1803)
       ├─dbus-launch(2686)
       ├─dropbox(2742)─┬─{dropbox}(2834)
       │               ├─{dropbox}(2871)
       │               └─{dropbox}(2878)
       ├─e-addressbook-f(2874)───{e-addressbook-}(2877)
       ├─e-calendar-fact(2838)───{e-calendar-fac}(2848)
       ├─exim4(1658)
       ├─firefox(3050)─┬─plugin-containe(3177)─┬─{plugin-contain}(3178)
       │               │                       ├─{plugin-contain}(3274)
       │               │                       ├─{plugin-contain}(3275)
       │               │                       ├─{plugin-contain}(3276)
       │               │                       ├─{plugin-contain}(3277)
       │               │                       └─{plugin-contain}(3283)
       │               ├─plugin-containe(3278)───{plugin-contain}(3279)
       │               ├─thunderbird-bin(3295)─┬─{thunderbird-bi}(3312)
       │               │                       ├─{thunderbird-bi}(3313)
       │               │                       ├─{thunderbird-bi}(3314)
       │               │                       ├─{thunderbird-bi}(3315)
       │               │                       ├─{thunderbird-bi}(3316)
       │               │                       ├─{thunderbird-bi}(3323)
       │               │                       ├─{thunderbird-bi}(3329)
       │               │                       ├─{thunderbird-bi}(3330)
       │               │                       ├─{thunderbird-bi}(3331)
       │               │                       ├─{thunderbird-bi}(3361)
       │               │                       ├─{thunderbird-bi}(3568)
       │               │                       └─{thunderbird-bi}(3571)
       │               ├─{firefox}(3057)
       │               ├─{firefox}(3061)
       │               ├─{firefox}(3062)
       │               ├─{firefox}(3063)
       │               ├─{firefox}(3064)
       │               ├─{firefox}(3065)
       │               ├─{firefox}(3066)
       │               ├─{firefox}(3068)
       │               ├─{firefox}(3111)
       │               ├─{firefox}(3112)
       │               ├─{firefox}(3113)
       │               ├─{firefox}(3114)
       │               ├─{firefox}(3115)
       │               ├─{firefox}(3119)
       │               ├─{firefox}(3123)
       │               ├─{firefox}(3124)
       │               ├─{firefox}(3126)
       │               ├─{firefox}(3128)
       │               ├─{firefox}(3147)
       │               ├─{firefox}(3173)
       │               ├─{firefox}(3176)
       │               ├─{firefox}(3294)
       │               ├─{firefox}(3296)
       │               ├─{firefox}(3465)
       │               ├─{firefox}(3466)
       │               └─{firefox}(3600)
       ├─gconfd-2(2692)
       ├─gdm-binary(1122)─┬─gdm-simple-slav(1260)─┬─Xorg(1372)
       │                  │                       ├─gdm-session-wor(1855)─┬─gnome-session(2653)─┬─alarmclock(2721)───{alarmclock}(2820)
       │                  │                       │                       │                     ├─applet.py(2996)
       │                  │                       │                       │                     ├─bluetooth-apple(2722)───{bluetooth-appl}(2736)
       │                  │                       │                       │                     ├─compiz(2735)─┬─sh(2954)───gtk-window-deco(2955)───{gtk-window-dec}(2957)
       │                  │                       │                       │                     │              └─{compiz}(2867)
       │                  │                       │                       │                     ├─docky(2723)─┬─gnome-system-mo(3272)───{gnome-system-m}(3273)
       │                  │                       │                       │                     │             ├─{docky}(2728)
       │                  │                       │                       │                     │             ├─{docky}(2729)
       │                  │                       │                       │                     │             ├─{docky}(2730)
       │                  │                       │                       │                     │             ├─{docky}(2731)
       │                  │                       │                       │                     │             ├─{docky}(2732)
       │                  │                       │                       │                     │             ├─{docky}(2766)
       │                  │                       │                       │                     │             ├─{docky}(2959)
       │                  │                       │                       │                     │             ├─{docky}(2970)
       │                  │                       │                       │                     │             ├─{docky}(2977)
       │                  │                       │                       │                     │             ├─{docky}(2978)
       │                  │                       │                       │                     │             ├─{docky}(2979)
       │                  │                       │                       │                     │             └─{docky}(2982)
       │                  │                       │                       │                     ├─evolution-alarm(2725)───{evolution-alar}(2740)
       │                  │                       │                       │                     ├─gdu-notificatio(2963)
       │                  │                       │                       │                     ├─gnome-panel(2717)───{gnome-panel}(2724)
       │                  │                       │                       │                     ├─gnome-power-man(2698)───{gnome-power-ma}(2703)
       │                  │                       │                       │                     ├─nautilus(2718)─┬─{nautilus}(2741)
       │                  │                       │                       │                     │                └─{nautilus}(2948)
       │                  │                       │                       │                     ├─nm-applet(2734)───{nm-applet}(2739)
       │                  │                       │                       │                     ├─polkit-gnome-au(2719)
       │                  │                       │                       │                     ├─ssh-agent(2683)
       │                  │                       │                       │                     ├─update-notifier(3001)───{update-notifie}(3002)
       │                  │                       │                       │                     ├─{gnome-session}(2690)
       │                  │                       │                       │                     └─{gnome-session}(2694)
       │                  │                       │                       └─{gdm-session-wo}(2654)
       │                  │                       └─{gdm-simple-sla}(1384)
       │                  └─{gdm-binary}(1342)
       ├─gedit(3442)───{gedit}(3443)
       ├─getty(1314)
       ├─getty(1318)
       ├─getty(1325)
       ├─getty(1326)
       ├─getty(1331)
       ├─getty(1827)
       ├─gnome-keyring-d(2634)─┬─{gnome-keyring-}(2635)
       │                       └─{gnome-keyring-}(2697)
       ├─gnome-screensav(2942)
       ├─gnome-settings-(2701)───{gnome-settings}(2702)
       ├─gnome-terminal(3496)─┬─bash(3500)───pstree(3619)
       │                      ├─gnome-pty-helpe(3499)
       │                      ├─{gnome-terminal}(3498)
       │                      └─{gnome-terminal}(3501)
       ├─gvfs-afc-volume(2795)───{gvfs-afc-volum}(2798)
       ├─gvfs-fuse-daemo(2710)─┬─{gvfs-fuse-daem}(2711)
       │                       ├─{gvfs-fuse-daem}(2712)
       │                       └─{gvfs-fuse-daem}(2713)
       ├─gvfs-gdu-volume(2773)
       ├─gvfs-gphoto2-vo(2790)
       ├─gvfsd(2705)
       ├─gvfsd-burn(2962)
       ├─gvfsd-metadata(2950)
       ├─gvfsd-trash(2908)
       ├─gweather-applet(2921)─┬─sh(3462)
       │                       ├─{gweather-apple}(2939)
       │                       └─{gweather-apple}(2975)
       ├─irqbalance(1350)
       ├─modem-manager(1131)
       ├─mysqld(1470)─┬─{mysqld}(1614)
       │              ├─{mysqld}(1615)
       │              ├─{mysqld}(1616)
       │              ├─{mysqld}(1617)
       │              ├─{mysqld}(1839)
       │              ├─{mysqld}(1840)
       │              ├─{mysqld}(1841)
       │              ├─{mysqld}(1846)
       │              ├─{mysqld}(1847)
       │              ├─{mysqld}(1873)
       │              └─{mysqld}(1912)
       ├─nmbd(2620)
       ├─notification-ar(2928)───{notification-a}(2938)
       ├─notify-osd(2905)───{notify-osd}(2906)
       ├─polkitd(1869)
       ├─pulseaudio(2716)─┬─gconf-helper(2808)───{gconf-helper}(2811)
       │                  ├─{pulseaudio}(2753)
       │                  ├─{pulseaudio}(2777)
       │                  └─{pulseaudio}(2802)
       ├─python(2925)───{python}(2958)
       ├─rsyslogd(1101)─┬─{rsyslogd}(1244)
       │                └─{rsyslogd}(1245)
       ├─rtkit-daemon(1863)─┬─{rtkit-daemon}(1866)
       │                    └─{rtkit-daemon}(1867)
       ├─samba(1679)─┬─samba(1703)
       │             ├─samba(1705)
       │             ├─samba(1712)
       │             └─samba(1714)
       ├─slapd(1365)───{slapd}(1368)
       ├─smbd(1093)───smbd(1243)
       ├─syndaemon(2876)
       ├─system-service-(3006)
       ├─trashapplet(2887)───{trashapplet}(2891)
       ├─udevd(457)─┬─udevd(704)
       │            └─udevd(706)
       ├─udisks-daemon(2775)─┬─udisks-daemon(2776)
       │                     └─{udisks-daemon}(2999)
       ├─upowerd(1865)
       ├─upstart-udev-br(453)
       ├─wnck-applet(2885)───{wnck-applet}(2892)
       └─wpa_supplicant(1383)


mmm troppo prolisso, meglio greppare:

 $ pstree -p | grep 3462
       |-gweather-applet(2921)-+-sh(3462)

ecco cos'era, il programmino della situazione meteo

 $ kill -9 2921

Così è sparito anche il defunct, e il computer tira un sospiro di sollievo.

Abilitare il compositing e riavviare Docky[modifica]

Ogni tanto Docky sballa il monitor e compare una colonna nera a sinistra. Compare anche un messaggio: di abilitare il compositing e riavviare Docky. Ho trovato questi due help che fanno al stessa cosa

1. (senza usare Gnome): da linea di comando:

  gconftool-2 -s --type bool /apps/metacity/general/compositing_manager false
  gconftool-2 -s --type bool /apps/metacity/general/compositing_manager true

questo risolve il problema. Oppure

2. (usando Gnome): Sistema -> Preferenze -> Aspetto Poi nella tab "Effetti Visivi" scegli "normale" o "extra". A questo punto il compositing è attivo.

Montare una partizione al boot[modifica]

 $ sudo vi /etc/fstab
   # Partizione root vecchio 10.04
   UUID=04f61a26-657b-446c-aa9c-225ee0e204df /disk1          ext4    errors=remount-ro 0       1

Ho aggiunto questa linea qui, guardo se funzia. http://ubuntuz.wordpress.com/2007/05/29/113/

Avviare il WiFi[modifica]

  $ sudo ifconfig eth1 up

Scansione dei trasmettitori WiFi[modifica]

  $ sudo iwlist eth1 scanning
  eth1      Scan completed :
         Cell 01 - Address: 00:0C:F6:ED:5C:60
                   ESSID:"SitecomED5C60"
                   Mode:Managed
                   Frequency:2.452 GHz (Channel 9)
                   Quality:4/5  Signal level:-61 dBm  Noise level:-98 dBm
                   IE: IEEE 802.11i/WPA2 Version 1
                       Group Cipher : CCMP
                       Pairwise Ciphers (1) : CCMP
                       Authentication Suites (1) : PSK
                   IE: Unknown:    DDA70050F204104A0001101044000102103B000103104700102880288028801880A880000CF6ED5C601021001852616C696E6B20546563686E6F6C6F67792C20436F72702E1023001C52616C696E6B20576972656C6573732041636365737320506F696E74102400065254323836301042000831323334353637381054000800060050F20400011011000952616C696E6B41505310080002210C103C0001011049000600372A000120
                   Encryption key:on
                   Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                             18 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 12 Mb/s
                             24 Mb/s; 48 Mb/s

Stato del wifi[modifica]

   $ cat /var/lib/NetworkManager/NetworkManager.state 
   [main]
   NetworkingEnabled=true
   WirelessEnabled=false
   WWANEnabled=true
   WimaxEnabled=true
   marcob@jsbach:~$ sudo lshw -C network
   *-network               
      description: Wireless interface
      product: BCM4313 802.11b/g/n Wireless LAN Controller
      vendor: Broadcom Corporation
      physical id: 0
      bus info: pci@0000:12:00.0
      logical name: eth1
      version: 01
      serial: c0:cb:38:7f:86:8c
      width: 64 bits
      clock: 33MHz
      capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
      configuration: broadcast=yes driver=wl0 driverversion=5.100.82.38 latency=0 multicast=yes wireless=IEEE 802.11
      resources: irq:17 memory:fb400000-fb403fff
   $ sudo rfkill list all
   0: dell-wifi: Wireless LAN
       Soft blocked: yes     <--- bloccata!
       Hard blocked: yes     <--- bloccata!
   1: brcmwl-0: Wireless LAN
       Soft blocked: no
       Hard blocked: no
   4: hci0: Bluetooth
       Soft blocked: no
       Hard blocked: no
   marcob@jsbach:~$ sudo rfkill unblock 0     <--- la sblocco
   marcob@jsbach:~$ sudo rfkill list all
   0: dell-wifi: Wireless LAN
       Soft blocked: no
       Hard blocked: no
   1: brcmwl-0: Wireless LAN
       Soft blocked: no
       Hard blocked: no
   4: hci0: Bluetooth
       Soft blocked: no
       Hard blocked: no

dopo aver sbloccato il wifi:

  marcob@jsbach:~$ sudo lshw -C network
  *-network               
      description: Wireless interface
      product: BCM4313 802.11b/g/n Wireless LAN Controller
      vendor: Broadcom Corporation
      physical id: 0
      bus info: pci@0000:12:00.0
      logical name: eth1
      version: 01
      serial: c0:cb:38:7f:86:8c
      width: 64 bits
      clock: 33MHz
      capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
      configuration: broadcast=yes driver=wl0 driverversion=5.100.82.38 latency=0 multicast=yes wireless=IEEE 802.11
      resources: irq:17 memory:fb400000-fb403fff


   $ sudo /etc/init.d/network-manager restart
   Rather than invoking init scripts through /etc/init.d, use the service(8)
   utility, e.g. service network-manager restart
   
   Since the script you are attempting to invoke has been converted to an
   Upstart job, you may also use the stop(8) and then start(8) utilities,
   e.g. stop network-manager ; start network-manager. The restart(8) utility is also available.
   network-manager stop/waiting
   network-manager start/running, process 3330
   $ sudo iwconfig eth1 essid SitecomED5C60 key s:xJBsu6Jr
   Error for wireless request "Set Encode" (8B2A) :
   SET failed on device eth1 ; Invalid argument.

Tasto destro sull'icona Network in alto, e qui si era sbloccata la voce "Abilita rete senza fili": abilitarla; poi cercare "Rete" con la Dash, aprire l'applicazione "Rete", cliccare su wireless, cliccare sau opzioni e salvare, solo in quel momento compare l'avviso che la rete è collegata...

Configurazione Modem Router[modifica]

http://192.168.0.1 admin/xJBsu6Jr

Modifico le impostazione del router

  • LAN settings / DHCP Address = 192.168.1.1
  • DHCP Settings / Start IP = 192.168.1.100

Accesso remoto senza login[modifica]

1) nel server LOCALE generare una chiave RSA (non digito alcuna passphrase)

  marcob@jsbach:~$ ssh-keygen -t rsa
  Generating public/private rsa key pair.
  Enter file in which to save the key (/home/marcob/.ssh/id_rsa): 
  Enter passphrase (empty for no passphrase): 
  Enter same passphrase again: 
  Your identification has been saved in /home/marcob/.ssh/id_rsa.
  Your public key has been saved in /home/marcob/.ssh/id_rsa.pub.
  The key fingerprint is:
  c0:1e:47:fa:bb:a4:04:f8:0f:40:01:85:8b:39:0f:d6 marcob@jsbach
  The key's randomart image is:
  +--[ RSA 2048]----+
  |.+o     .        |
  |.  . . o         |
  |.oo   = .        |
  |*o E . =         |
  |.+o . . S        |
  |  .o .   .       |
  |    o . o        |
  |     + o .       |
  |      o .        |
  +-----------------+

2) nel server REMOTO (con una sessione di login normale) creo la directory /home/webportal/.ssh (se c'è già, salta al passo 4)

  -bash-3.2$ mkdir -b /home/webportal/.ssh

3) del server REMOTO creo il /home/webportal/.ssh/authorized_keysfile (se c'è già, salta al passo 4)

  -bash-3.2$ touch /home/webportal/.ssh/authorized_keys

4) accodo a questo file la chiave appena generata:

  marcob@jsbach:~$ cat .ssh/id_rsa.pub | ssh webportal@netwebportal01.sanita.padova.it 'cat >> /home/webportal/.ssh/authorized_keys'
  webportal@netwebportal01.sanita.padova.it's password: 
  marcob@jsbach:~$

Dal prossimo ssh non si dovrà più ridigitare la password:

Nota bene[modifica]

Per collegarsi a più server dallo STESSO pc, non occorre eseguire il passo 1), bastano i punti dal 2) al 4)

Zeitgeist[modifica]

Seitgeist è una utility di indicizzazione che aiuta a cercare file nel disco, sincronizzazioni varie. Non lo uso e mi ciuccia molta memoria. Seguendo questa guida, eseguo questi comandi per spegnerlo:

   marcob@jsbach:~$ ps -ef |grep zeit <-- c'è zeitgeis-fs up & running?
   marcob    2879  2526  0 14:56 ?        00:00:00 zeitgeist-datahub
   marcob    2895     1  0 14:56 ?        00:00:01 /usr/bin/zeitgeist-daemon
   marcob    2957     1  0 14:56 ?        00:00:01 /usr/lib/zeitgeist/zeitgeist-fts
   marcob    3758  3698  0 15:08 pts/2    00:00:00 grep --color=auto zeit
   marcob@jsbach:~$ cd .local/share/zeitgeist/
   marcob@jsbach:~/.local/share/zeitgeist$ ll
   totale 59280
   drwx------  3 marcob marcob     4096 mag 15  2012 ./
   drwxr-xr-x 23 marcob marcob     4096 apr 11 13:55 ../
   -rw-------  1 marcob marcob 33301504 apr 11 12:42 activity.sqlite
   -rw-------  1 marcob marcob    32768 apr 11 15:08 activity.sqlite-shm
   -rw-------  1 marcob marcob 27341304 apr 11 15:08 activity.sqlite-wal
   drwxr-xr-x  2 marcob marcob     4096 apr 11 15:08 fts.index/
   marcob@jsbach:~/.local/share/zeitgeist$  chmod -rw ~/.local/share/zeitgeist/activity.sqlite <-- cambia i diritti di scrittura sul db
   marcob@jsbach:~/.local/share/zeitgeist$  zeitgeist-daemon --replace <-- arresta zeitgeist, in pratica 
   [13:12:11.404192 WARNING] Could not access the database file.
   Please check the permissions of file /home/marcob/.local/share/zeitgeist/activity.sqlite.
   marcob@jsbach:~/.local/share/zeitgeist$ ps -ef |grep zeit
   marcob    3816  3698  0 15:12 pts/2    00:00:00 grep --color=auto zeit
   marcob@jsbach:~/.local/share/zeitgeist$

Mount dei volumi logici dell'hard disk[modifica]

Tutte le mattina mi tocca montare a mano una partizione logica del disco, altrimenti Apache non vede wwwroot. Quando lo faccio, il syslog riporta:

  Apr 15 08:53:59 jsbach kernel: [  219.569876] EXT4-fs (sda2): warning: maximal mount count reached, running e2fsck is recommended
  Apr 15 08:53:59 jsbach kernel: [  219.574916] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)

I mount point, dopo che ho montato entrambe le partizioni sono queste

  marcob@jsbach:~$ mount
  ...
  /dev/sda2 on /media/04f61a26-657b-446c-aa9c-225ee0e204df type ext4 (rw,nosuid,nodev,uhelper=udisks)
  /dev/sda5 on /media/84d31ac2-2f02-4502-b638-e9c5ac334f38 type ext4 (rw,nosuid,nodev,uhelper=udisks)

Fonte e altra fonte.

Seguo questo howto:, una volta montate a mano tutte le partizioni (cliccando sull'icona della partizione su Nautilus)

  marcob@jsbach:~$ sudo cp /etc/fstab /etc/fstab.old         #importante: backup della tabella del filesystem!
  marcob@jsbach:~$ sudo blkid
  /dev/sda1: LABEL="RECOVERY" UUID="B24AD2DB4AD29B83" TYPE="ntfs" 
  /dev/sda2: UUID="04f61a26-657b-446c-aa9c-225ee0e204df" TYPE="ext4" 
  /dev/sda5: UUID="84d31ac2-2f02-4502-b638-e9c5ac334f38" TYPE="ext4" 
  /dev/sda6: UUID="a5564f2c-9886-43e8-a7f0-881ed70308c1" TYPE="swap" 
  /dev/sda7: UUID="efad6f51-8315-4b9b-af66-5fa9c8934e79" TYPE="ext4"

Per le variabili occorre fare attenzione, partizioni da montare sono /dev/sda2 e /dev/sda5, quindi:

  # /dev/sda2
  <uuid>=04f61a26-657b-446c-aa9c-225ee0e204df
  <pathtomount>=/home/marcob/data1/
  <file system>=ext4
  <userid>=1000
  <groupid>=1000
  
  # /dev/sda5
  <uuid>=84d31ac2-2f02-4502-b638-e9c5ac334f38
  <pathtomount>=/home/marcob/data2/
  <file system>=ext4
  <userid>=1000
  <groupid>=1000

Quindi il nuovo /etc/fstab si presenta così:

  # /etc/fstab: static file system information.
  #
  # Use 'blkid' to print the universally unique identifier for a
  # device; this may be used with UUID= as a more robust way to name devices
  # that works even if disks are added and removed. See fstab(5).
  #
  # <file system> <mount point>   <type>  <options>       <dump>  <pass>
  proc            /proc           proc    nodev,noexec,nosuid 0       0
  # / was on /dev/sda7 during installation
  UUID=efad6f51-8315-4b9b-af66-5fa9c8934e79 /               ext4    errors=remount-ro 0       1
  # swap was on /dev/sda6 during installation
  UUID=a5564f2c-9886-43e8-a7f0-881ed70308c1 none            swap    sw              0       0
  # Partizione root vecchio 10.04
  #UUID=04f61a26-657b-446c-aa9c-225ee0e204df /disk1          ext4    errors=remount-ro 0       1
  # Partizione / vecchio 10.04
  UUID=04f61a26-657b-446c-aa9c-225ee0e204df /home/marcob/data1/ ext4 uid=1000,gid=1000,umask=0022,sync,auto,rw 0 0
  # Partizione /home/marcob/ vecchio 10.04
  UUID=84d31ac2-2f02-4502-b638-e9c5ac334f38 /home/marcob/data2/ ext4 uid=1000,gid=1000,umask=0022,sync,auto,rw 0 0

In realtà questo file così scritto mi provoca un errore allo startup: l'opzione uid=1000,gid=1000,umask=0022,sync,auto,rw non viene riconosciuta. Potrei approfondire la questione, ma sulla scorta delle linee precedenti del file, modifico così quelle linee:

  UUID=04f61a26-657b-446c-aa9c-225ee0e204df /home/marcob/data1/ ext4 errors=remount-ro 0 0
  UUID=84d31ac2-2f02-4502-b638-e9c5ac334f38 /home/marcob/data2/ ext4 errors=remount-ro 0 0

Come conoscer il mio uid e gid?[modifica]

Semplice:

  marcob@jsbach:~$ id
  uid=1000(marcob) gid=1000(marcob) gruppi=1000(marcob),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare),1001(jupiter)