PERLE dalle GWN e non
1.Utilizzare un mirror rsync locale
Vediamo come sfruttare la nuova localizzazione in base ai continenti e
alle nazioni del round robin di rsync.
Il primo passo è controllare se la propria nazione possiede un round
robin proprio.
Esempio 1: Uso di host per determinare l'esistenza di round robin locali |
$ host rsync.no.gentoo.org
rsync.no.gentoo.org has address 80.239.42.138
|
Se la vostra nazione non ha ancora un round robin locale,
vedrete qualcosa del genere:
Esempio 2: Non tutti i paesi hanno ancora un mirror rsync |
$ host rsync.mx.gentoo.org
Host rsync.mx.gentoo.org not found: 3(NXDOMAIN)
|
Nota: Avete bisogno di emergere il pacchetto bind-tools per utilizzare host |
Nota: Non siete sicuri di quale sia la sigla della vostra nazione?
Qui
trovate la lista ufficiale. |
Un'alternativa è di utilizzare i round robin localizzati per continente.
Al momento esistono i seguenti indirizzi:
- rsync.namerica.gentoo.org -- America del Nord
- rsync.samerica.gentoo.org -- America del Sud
- rsync.europe.gentoo.org -- Europa
- rsync.asia.gentoo.org -- Asia
- rsync.au.gentoo.org -- Australia (uguale a quello per nazione)
Una volta identificato il mirror che intendete utilizzare, modificate
il vostro /etc/make.conf e inserite il nuovo indirizzo nella variabile SYNC.
Esempio 3: SYNC configurato per l'utilizzo di rsync.us.gentoo.org |
SYNC="rsync://rsync.us.gentoo.org"
|
2.Usare tmpfs
Questo tip vi mostra come utilizzare il tmpfs per rendere
più veloce l'accesso a piccoli file temporanei. Tmpfs simula
un filesystem con il supporto per le normali operazioni di
lettura/scrittura, ma i file sono conservati in memoria. Questo
rende gli accessi molto più veloci. Bisogna però ricordare che
i file salvati su tmpfs sono persi ad ogni reboot. Inoltre,
tmpfs è indicato solo per sistemi con grandi quantità di memoria.
Prima di tutto assicuratevi che tmpfs sia abilitato nel vostro kernel.
Esempio 4: Abilitare tmpfs nel kernel |
# cd /usr/src/linux
# make menuconfig
Enable File Systems -->
[*] Virtual memory system support
// (Enable this option)
# make dep && make clean bzImage
// Assicuratevi che /boot sia montata prima di questo passaggio
# cp /usr/src/linux/arch/i386/boot/bzImage /boot
|
/tmp è il luogo più comune dove mettere i file temporanei.
Useremo tmpfs per montare /tmp
Esempio 5: Montare /tmp con tmpfs |
# mount -t tmpfs tmpfs /tmp
|
Ora che /tmp è montato, tutto quello che dovete fare è
aggiungere la riga seguente al vostro /etc/fstab in modo che
venga caricata al boot.
Esempio 6: Aggiungete la seguente riga al vostro fstab |
tmpfs /tmp tmpfs defaults 0 0
|
3.Sincronizzare data/ora di sistema con rdate
Il tip di questa settimana mostra come sincronizzare data e
ora di sistema senza complicarsi la vista con NTP. Il comando
rdate permette di ottenere l'ora da un server su cui giri NTP
senza la necessità di avere installato sulla propria macchina NTP.
Innanzitutto, assicuratevi di avere rdate installato.
Esempio 7: Installare rdate |
# emerge rdate
|
Per sincronizzare l'orologio, lanciate rdate -s. Dovrete
probabilmente cambiare il servere da usare, in modo da non
sovraccaricarne uno in particolare. Qui c'è una lista dei server
pubblici che potete usare.
Esempio 8: Usare rdate |
# rdate -s ntp0.cornell.edu
|
Per mantenere la vostra macchina sincronizzata automaticamente,
potete utilizzare il crontab.
Esempio 9: Aggiungere rdate al crontab |
// Aggiungete la riga seguente a /etc/crontab per sincronizzare
l'orologio il primo giorno della settimana.
* * * * 0 rdate -s ntp0.cornell.edu
|
4.Cambiare gli attributi dei file
Questo tip spiega come usare chattr per mantenere sicuri
alcuni importanti file di sistema. Il comando "change attribute",
o chattr, può essere usato per aggiungere o cambiare gli attributi
dei file relativi a aggiornamenti sincroni, sicurezza dei file più
stretta, eccetera. Tuttavia, questo comando è disponibile solo su
partizioni ext2 e ext3.
Qui sotto è riportata una lista degli attributi più comuni, e i
relativi flag. Per una lista più completa leggete man chattr.
- (A) Non aggiornare atime
- (S) Aggiornamento sincrono
- (a) Solo concatenamento
- (d) No dump
- (i) 'Immutable'
- (j) Data journalling
- (t) No tail-merging
Nota: L'opzione 'j' può essere utilizzata solo con ext3. |
Nota: Le opzioni 'j', 'a' e 'i' sono utilizzabili solo dal superuser. |
Innanzitutto assicuratevi che chattr sia installato, emergendo e2fsprogs.
Esempio 10: Installazione dei file necessari |
# emerge e2fsprogs
|
Per settare gli attributi di un file, usate il comando chattr
mentre per visualizzare gli attributi, utilizzate il comando lsattr
Esempio 11: Esempio di utilizzo di chattr e lsattr |
// Imposta il bit 'immutable' su un file in modo che non possa essere né modificato né cancellato
# chattr +i myfile
# lsattr myfile
----i-------- myfile
// Testiamo il flag 'immutable' cercando di cancellare il file
# rm myfile
rm: cannot remove `myfile': Operation not permitted
// Impostiamo myfile in modalità 'solo concatenamento'
# chattr +a myfile
# lsattr myfile
-----a------- myfile
# echo testing > myfile
myfile: Operation not permitted
# echo testing >> myfile
// nessun errore - il file è stato concatenato
|
Questi attributi sono utili, ad esempio, per assicurarsi che
alcuni file importanti non siano accidentalmente candellati.
Ricordate che nemmeno root può cancellare un file con gli attributi
'immutable' o 'append-only' senza prima rimuovere esplicitamente
questi attributi. L'uso di questi flag sui file /etc/passwd o
/etc/shadow
li mette al sicuro da un accidentale rm -f e oltretutto assicura che
con un exploit non possano essere creati nuovi account. Mantere dei
file 'append-only' implica che, una volta scritti, i dati che
contengono non possono essere cancellati. I log sono ottimi candidati
a questo utilizzo, in modo che non possano essere alterati.
Con chattr e lsattr, avete dunque dei nuovi strumenti
per mantenere sicuro il vostro sistema.
5.Usare /dev/loop per visualizzare un'immagine CD
Il consiglio di questa settimana spiega come usare il loop
device per visualizzare o scambiare file da un'immagine CD o file ISO.
Innanzitutto assicuratevi di avere il supporo nel vostro kernel.
Può essere configurato come modulo, quindi non è necessario
riavviare se non avete il supporto.
Esempio 12: Installare il modulo kernel |
// configurate la seguente opzione
Block Devices
-> <M> Loopback device support
# make dep && make modules modules_install
# insmod loop
|
Per visualizzare il contenuto di un file ISO semplicemente
montate l'ISO in un loopback device. Ad esempio, qui montiamo
gentoo-basic-x86-1.4_rc4.iso in gentoo-1.4_rc4/.
Esempio 13: Montare un ISO in un loopback device |
# mount gentoo-basic-x86-1.4_rc4.iso gentoo-1.4_rc4 -o loop=/dev/loop1,blocksize=1024
|
Ora potete visualizzare la directory gentoo-1.4_rc4 come se
fosse parte del vostro file system regolare.
6.Prevenire il Reboot del Sistema con Ctrl-Alt-Del
Il "Saluto-delle-tre-dita" o, la combinazione Ctrl+Alt+Del è
tipicamente associata al comando /sbin/shutdown -r now.
In altre parole, riavvia il sistema. A volte questo potrebbe
essere un comportamento non voluto, quindi il consiglio di
questa settimana mostra come disabilitare o rimappare quella
combinazione di tasti.
Il file che dobbiamo editare è /etc/inittab.
Trovate la linea che dice ca:12345:ctrlaltdel:/sbin/shutdown -r now
e semplicemente commentatela mettendole un # in fronte.
O, se preferite, puoi cambiare la parte /sbin/shutdown -r now in
un altro comando.
Infine, dobbiamo avvertire il processo init di questi cambiamenti.
Esempio 14: Riavviare init |
# /sbin/init q
|
7.Separazione dei Privilegi in Portage
Un'interessante caratteristica di Portage è che puo
abbassare i suoi privilegi e compilare come utente meno privilegiato.
Puo anche usare la "sandbox" per molte fasi dell'installazione.
Il consiglio di qesta settimana mostra come abilitare queste
carattereistiche di Portage per aumentare la sicurezza del sistema.
Il primo passo è creare gli account di gruppo e utente portage.
Portage userà questi account quando eseguirà i suoi processi.
Esempio 15: Aggiungere il gruppo e utente portage |
# groupadd -g 250 portage
# useradd -u 250 -g 250 -s /bin/false portage
|
Il passo successivo è di fissare il possesso delle aree a
cui Portage avrà bisogno di accedere. Normalmente queste cartelle
sono /usr/portage, /var/tmp/portage.
Esempio 16: Fissare il possesso delle cartelle di Portage |
# chown -R portage:portage /usr/portage
# chown -R portage:portage /var/tmp/portage
|
Nota: Se avete specificato posti differenti in /etc/make.conf,
avrete bisogno di assicurarvi che Portage ha il possesso appropriato
di PORTAGE_TMPDIR, PORTDIR, DISTDIR,
PKGDIR, PORT_LOGDIR, and PORTDIR_OVERLAY.
|
Dopo che il possesso è stato impostato correttamente, bisogna
abilitare la caratteristica della separazione dei privilegi
in /etc/make.conf. Per fare questo, è necessario modificare
la linea FEATURES.
Esempio 17: /etc/make.conf FEATURES |
// FEATURES dovrebbe somigliare a qualcosa tipo la linea seguente
FEATURES="sandbox userpriv usersandbox"
|
Ora Portage è configurato per abbandonare i privilegi root
e compilare i pacchetti con l'account utente portage. Per
testarlo, usa il comando top. Quando avete top aperto, digitate
u per mostrare i processi di uno specifico utente, e digitate
portage al prompt per visualizzare i processi di portage.
Ora emergete qualcosa, e osservate come l'utente portage
appare il proprietario di tutti i comandi.
8.Aggiungere utenti con Superadduser
Aggiungere utenti ad un sistema può essere noioso.
Bisogna creare l'account, cambiare la password,
creare la home directory. Il tip di questa settimana
mostra come rendere la creazione degli utenti più semplice,
utilizzando superadduser.
Esempio 18: Installazione di superadduser da Portage |
# emerge app-admin/superadduser
|
Usare superadduser è molto semplice. Basta lanciare il comando
e seguire le istruzioni.
Esempio 19: Uso di superadduser |
// Sostituite gli esempi con le vostre informazioni
# superadduser
Login name for new user []: johndoe
User id for johndoe [ defaults to next available]:
Initial group for johndoe [users]:
Additional groups for johndoe (seperated
with commas, no spaces) []:
johndoe's home directory [/home/johndoe]:
johndoe's shell [/bin/bash]:
johndoe's account expiry date (YYYY-MM-DD) []:
OK, I'm about to make a new account. Here's what you entered so far:
New login name: johndoe
New UID: [Next available]
Initial group: users
Additional groups:
Home directory: /home/johndoe
Shell: /bin/bash
Expiry date: [no expiration]
This is it... if you want to bail out, hit Control-C. Otherwise, press
ENTER to go ahead and make the account.
ENTER
Making new account...
Changing the user information for johndoe
Enter the new value, or press ENTER for the default
Full Name []: John Doe
Room Number []:
Work Phone []:
Home Phone []:
Other []:
New UNIX password: user_password
Retype new UNIX password: user_password
Done...
|
9.Utilizzare l'Autogrouping di Fluxbox
Se utilizzate il window mangare FluxBox, l'autogrouping e i
tabs vi consentono di vedere i programmi come una finestra
raggruppata invece che come finestre separate. Questa tip
spiega questa feature facendo un esempio con Eterm
Innanzitutto è necessario editare i proprio file ~/.fluxbox/init.
Assicuratevi che sia definito il group file.
Esempio 20: ~/.fluxbox/init |
// Aggiungete la seguente linea
session.groupFile: ~/.fluxbox/groups
|
Nota: Assicuratevi che non ci siano segni di tabulazione o
spazi alla fine della linea o potrebbe non funzionare correttamente.
|
Il successivo file da modificare è ~/.fluxbox/groups.
Questo file specifica i programmi che si apriranno automaticamente
all'interno di un gruppo tabbed. Aggiungete semplicemente un programma
per ogni linea.
Esempio 21: ~/.fluxbox/groups |
// Per il nostro esempio con Eterm aggiungiamo questa linea
Eterm
|
Nota: Per sapere il nome esatto del comando da inserire nel fil
e utilizzate il comando xprop | grep '^WM_CLASS'
e incollate il nome nel file.
|
Adesso non appena aprirete sessioni di Eterm si apriranno
in un gruppo. Se desiderate che altri programmi seguano lo
stesso comportamento aggiungeteli al vostro file ~/.fluxbox/groups.
|