Criteri di selezione:
-type
-name
-mtime
e -mmin
-user
, -group
e -perm
-print0
Parametri spciali:
-n1
-r
-0
-I replace-string
Espressioni regolari, vedere man page per grep(1)
e regex(7)
echo "tre civette sul como" | sed 's/civette/gufi/'
echo "23 civette sul como" | sed 's/\([0-9]\+\) civette/gufi \1/g'
Copia di una directory su server remoto senza creazione di file intermedio:
tar jcf - directory | ssh niccolo@paros.rigacci.org 'tar jxvf -'
Ispezionare il traffico con due clausole:
tcpdump -i eth0 -n 'not port 22 and host 74.125.43.100'
Salva il dump in un file:
tcpdump -w tcpdump.log -s0 -i eth0 -n 'port 80 and dst host 74.125.43.104'
Per vedere il contenuto di un dump:
strings tcpdump.log tcpdump -r tcpdump.log -n
Per vedere tutte le porte aperte:
netstat -n -a
Per entrare su un host remoto senza digitare la passowrd: si crea una chiave RSA (coppia di chiavi pubblica e privata) con il comando ssh-keygen
. La chiave pubblica .ssh/id_rsa.pub
deve essere aggiunta al file .ssh/authorized_keys
sull'host remoto.
Trasportare il protocollo X (display grafico) tramite un tunnel ssh e uso della variabile $DISPLAY
.
Primo caso: applicativo che gira in remoto, display locale. Il traffico X passa nel tunnel ssh attivato dall'opzione -X
:
ssh -X username@host.remoto echo $DISPLAY xclock
Secondo caso: applicativo che gira in locale (192.168.1.1), display remoto (192.168.1.2). Il traffico X transita in chiaro sulla rete locale.
Sul sistema remoto:
# Abilitare X all'uso del tcp configurando il login manager: vi /etc/gdm/gdm.conf # DisallowTCP=false xhost +192.168.1.1
Sul sitema locale:
export DISPLAY=192.168.1.2:0.0 xclock
Terzo caso: prendere possesso del display remoto. Si accede al display X tramite il protocollo VNC grazie al programma x11vnc
. Il traffico transita blandamente criptato dal protocollo VNC.
Si entra sulla macchina remota come root e si esegue x11vnc
con il parametro -auth
.
ssh root@192.168.1.2 ps uax | grep auth # Individuare il file -auth usato da X x11vnc -auth /var/lib/gdm/:0.Xauth
In alternativa si chiede all'utente remoto di eseguire x11vnc
, senza parametri.
Altra alternativa: si entra sulla macchina remota come utente che ha effettuato il login (che ha il possesso del display) e si esegue:
export DISPLAY=0:0 x11vnc
In tutti i casi il programma x11vnc
avvia un server VNC collegato al display X. In locale si esegue:
vncviewer 192.168.1.2
Tunnel di una porta TCP
Tunnel di una porta locale verso un host remoto:
ssh -L 8888:192.168.2.22:80 user@remotehost
Tunnel di una porta remota verso un host locale:
ssh -R 8888:192.168.1.11:80 user@remotehost
Il comando dump(8)
fornito dall'omonimo pacchetto, lavora a livello di intero filesystem, è compatibile con fs ext2 ed ext3. È in grado di salvare tutti gli oggetti del filesystem, compresi link, file speciali block e character (/dev/…), mantiene il numero di inode. È possibile fare il restore su un filesystem di dimensione differente.
Dump su file (deve stare su partizione diversa da quella interessata al dump):
dump -0 -b 64 -f /mnt/hda1.dump /dev/hda1
Dump su file su host remoto:
dump -0 -b 64 -f - /dev/hda1 | ssh niccolo@192.168.182.10 'cat > firesmall_hda1.dump'
Dump con restore contestuale remoto:
Sulla macchina che riceve il restore preparo la partizione (deve essere appena formattata):
fdisk /dev/sdd mkfs.ext3 -I 128 /dev/sdd1 mount /dev/sdd1 /mnt
Sulla macchina che contiene i dati eseguo:
dump -0 -b 64 -f - /dev/hda1 | ssh root@192.168.182.10 'cd /mnt && restore -r -b 64 -f -'
Al termine del restore il file restoresymtable può essere eliminato.
Come visualizzare interattivamente il contenuto di un dump ed effettuare il restore selettivo ad esempio di una directory:
restore -i -f /backup/argo/2007-01-26_md3.dump restore > cd directory restore > ls restore > add pippodir restore > extract You have not read any volumes yet. Unless you know which volume your file(s) are on you should start with the last volume and work towards the first. Specify next volume # (none if no more volumes): 1 set owner/mode for '.'? [yn] y restore > quit
dpkg --list
dpkg -L <package>
dpkg -S <file>
apt-cache search <string>
/etc/apt/sources.list
/var/lib/dpkg/info/<package>.*
Installazione da repository:
apt-get update apt-get upgrade apt-get install <pacchetto>
Installazione singolo file .deb:
dpkg -i <file.deb>
Rimozione di un pacchetto:
dpkg --remove <pacchetto> dpkg --purge <pacchetto>
DEBIAN/control
DEBIAN/md5sums
fakeroot dpkg-deb –build <directory>
debian/control
debian/rules
dpkg-buildpackage -rfakeroot
Scaricare i sorgenti di un pacchetto (scarica i sorgenti, li scompatta e applica le patch Debian):
apt-get source <package>
oppure si scaricano i tre componenti dei sorgenti:
wget http://....package.orig.tar.gz wget http://....package.diff wget http://....package.dsc
e si scompattano con:
dpkg-source -x package.dsc
register_globals
include()
system()
mail()
htmlentities()
Vedere anche: QEMU.
Creare l'immagine di un disco virtuale, creare l'immagine da un cdrom, avviare qemu facendo boot da cdrom:
qemu-img create -f raw rootfs_img.raw 2048M dd bs=4096 if=/dev/cdrom of=winxp.img qemu -hda rootfs_img.raw -cdrom cdrom_xp -boot d
Opzione utile -m megs
per assegnare la memoria alla macchina virtuale (128 default).
Occorre creare uno switch virtuale e collegare ad esso sia la macchina fisica che la macchina virtuale.
Configurare sulla macchina fisica l'interfaccia bridge br0:
bridge
sia installato
Questo il contenuto di /etc/network/interfaces
#interfaccia virtuale da attaccare all'interfaccia fisica, la eth non avrà l'indirizzo auto br0 iface br0 inet dhcp bridge_ports eth0 #Disable spanning tree protocol bridge_stp off #max wait for the bridge ports to get to the forwarding status bridge_maxwait 10
Facciamo partire qemu con:
sudo qemu -hda rootfs_img.raw -m 512 -net nic -net tap
Colleghiamo il cavetto virtuale allo switch virtuale con:
sudo brctl addif br0 tap0
Verificare che la CPU abbia il supporto vmx (Intel) oppure svm (AMD) guardando /prco/cpuinfo
. Potrebbe essere necessario attivarla anche da BIOS (VT technology).
Caricare il modulo kernel kvm_intel oppure kvm_amd.
Installare il pacchetto kvm.
Si usa il programma kvm
al posto di qemu
, con la stessa sintassi.
Si tratta di una collezione di utility e script per la gestione di macchine virtuali Qemu, KVM e Xen. Consente la creazione, avvio, stop, ecc. di macchine virtuali con comandi e sintassi uniforme nonostante possa usare tecnologie di virtualizzazioni diverse. La configurazione è in /etc/libvirt/
.
La shell di controllo (in modalità testo) è il programma virsh
. Per una console grafica su può installare virt-manager.
Vedere anche: Utilizzare GnuPG.
Creazione della nostra coppia di chiavi, elenco delle chiavi pubbliche e private nel nostro portachiavi:
gpg --gen-key gpg --list-keys gpg --list-secret-keys
Esportare una chiave in formato ASCII
gpg --armor --export 186F2F56 > keyfile.txt
Per importare una chiave dal formato ASCII
gpg -i --import keyfile.txt
Per importare una chiave da un keyserver:
gpg --recv-keys 111FA57C
gpg --encrypt <filename> gpg --decrypt <filename>.gpg
Per produrre un file criptato, ma in formato ASCII:
gpg --armor --encrypt <filename> gpg --decrypt <filename>.asc
Come firmare la chiave di qualcuno: GnuPG Keysigning Party HOWTO
gpg --sign-key <Key_ID> gpg --keyserver <keyserver> --send-key <Key_ID>