Questo spazio è dedicato a varie configurazioni di un sistema Debian e derivate
Indice
- 1 Conoscere la versione di Debian che stiamo utilizzando
- 2 Trovare il MAC address durante l’installazione
- 3 Aggiornamento automatico dell’orario
- 4 Aggiungere utenti a sudo
- 5 Eseguire comandi “root” da utente senza privilegi
- 6 Limitare i repository non ufficiali
- 7 Eseguire comandi all’avvio del sistema
- 8 Montare una risorsa samba in locale
- 9 Trovare l’UUID di una partizione
- 10 Aumentare lo spazio di /tmp
- 11 Montare al boot una periferica USB in una cartella univoca con UUID
- 12 Problema con più schede audio: impostare quella di default
- 13 Ripristinare la configurazione originale del pannello di Gnome
- 14 Password persa
- 15 Forzare il controllo del filesystem all’avvio
- 16 Configurazioni di SSH server
- 17 Visualizzare Man con Vim
- 18 Debian su iMac G5 con Xfce
Conoscere la versione di Debian che stiamo utilizzando
Per conoscere la versione basta guardare nei repository oppure nel file:
/etc/debian_version
oppure lanciare il comando:
lsb_release -c
Trovare il MAC address durante l’installazione
Spesso può servirci sapere il mac address di un PC per essere registrato sul DHCP e procedere con l’installazione via rete, ad esempio con “net install” dove è fondamentale che il computer sia connesso a internet. Per fare questo ci basta eseguire una shell dal menù principale dell’installatore e dare questo comando:
ip link show eth0
Nel caso in cui la nostra interfaccia sia eth0: per vedere l’interfaccia possiamo lanciare questo comando:
cat /etc/network/devnames
Aggiornamento automatico dell’orario
Per aggiornare automaticamente l’ora possiamo usare il servizio NTP, configurare appositamente il gestore grafico dell’ora se lo permette o usare il comando rdate dopo averlo installato. Ecco un esempio del suo utilizzo:
rdate time.ien.it
Attenzione che non tutti i server NTP supportano rdate dato che è dichiarato obsoleto rispetto a NTP: a volte però è da preferire in quanto più leggero. Possiamo inserire questo comando dentro al file /etc/rc.local in modo che all’avvio aggiorni l’ora:
rdate time.ien.it exit 0
Aggiungere utenti a sudo
Con questo comando abilitiamo l’utente pippo ad utilizzare sudo:
adduser pippo sudo
Possiamo anche semplicemente aggiungere l’utente nel file /etc/group a fianco della riga contenente sudo, come in questo esempio:
sudo:x:27:pippo
Eseguire comandi “root” da utente senza privilegi
Per eseguire comandi che necessitano dei privilegi di root si può utilizzare “sudo”. Da root installiamo il pacchetto necessario:
apt-get install sudo
dopodichè editiamo con il comando visudo il file /etc/sudoers. Nell’esempio sotto vogliamo abilitare l’utente “pippo” allo spegnimento del pc (cioè all’utilizzo del comando “halt”) e al suo aggiornamento (apt-get) senza dover inserire la password (questo è comodo negli script); alla fine del file scriveremo:
pippo ALL=NOPASSWD: /sbin/halt pippo ALL=NOPASSWD: /usr/bin/apt-get
Questa è solo una delle tante funzionalità di “sudo”. Per maggiorni informazioni si consiglia di leggere il manuale di “sudo”. Si possono anche dare privilegi totali all’utente previo inserimento della password:
pippo ALL=(ALL) ALL
NOTA: le regole inserite in /etc/sudoers hanno priorità diverse a seconda della loro posizione. Le regole vengono lette dal sistema nell’ordine in cui sono inserite. Una regola posta alla fine del file può pregiudicare tutte le precedenti.
Limitare i repository non ufficiali
Se abbiamo aggiunto uno o più repository non ufficiali, ma da questi vogliamo che qualche software particolare sia preso dai repository ufficiali Debian, basta scrivere nel file /etc/apt/preferences (se non c’è basta crearlo):
Package: libavcodec52 libavdevice52 libavformat52 libavutil50 libpostproc51 libswscale0 ffmpeg Pin: release o=Debian Pin-Priority: 990
in questo esempio si mantengono quei software multimediali ufficiali di Debian che permettono a vlc di funzionare e non quelli di debian-multimedia, senza però disabilitare quest’ultima risorsa che può servire per altri programmi. Questo caso è ripreso dal forum di Debianizzati[1]. Debianizzati ospita anche una guida più esauriente[2]
Eseguire comandi all’avvio del sistema
Per lanciare un programma o uno script all’avvio del sistema basta inserire alla fine del file /etc/init.d/bootmisc.sh dopo i “:” la stringa con il comando che dobbiamo avviare; ad esempio per far partire amuled allo startup del pc con l’utente “pippo” basta inserire:
su pippo -c "amuled &"
questo metodo è comodo perchè non richiede l’avvio della sessione grafica per far partire automaticamente i comandi.
Altro sistema è quello di scrivere il comando nel file /etc/rc.local:
/usr/local/bin/ntop -w 10000 -d -u pippo exit 0
con questa riga lanciamo, all’avvio del sistema, ntop sulla porta 10000 (-w 10000), come demone (-d), utlizzando l’utente pippo (-u pippo). Ricordarsi di terminare il file con exit 0.
Un altro metodo utile è reperibile nella seguente pagina web:
http://forum.ubuntu-it.org/index.php?topic=435195.0
ed anche in:
oppure in:
http://ciaolinux.myblog.it/archive/2008/09/25/eseguire-uno-script-all-avvio.html
Montare una risorsa samba in locale
Se vogliamo montare una risorsa samba in modo che diventi locale dobbiamo inserire in /etc/fstab con permessi root:
//192.168.1.1/share /media/share smbfs username=utente,password=segreta,uid=utente_locale,gid=gruppo_utente_locale 0 0
– //192.168.1.1/share lo sostituiremo con il percorso della nostra risorsa di rete
– /media/share sarà la cartella locale dove vogliamo montare la nostra risorsa; di solito in /media, creiamola utilizzando l’utente root
– smbfs è il tipo di filesystem che dobbiamo far riconoscere a mount: è necessario installare il pacchetto smbfs
– utente e segreta andranno sostituiti con le credenziali della risorsa di rete
– utente_locale e gruppo_utente_locale andranno sostituiti con il nostro utente locale e gruppo locale
salviamo il file e lanciamo da root:
mount -a
se tutto va a buon fine troveremo la risorsa montata in /media/share
Trovare l’UUID di una partizione
blkid /dev/sda1
dove al posto di sda1 metteremo la nostra partizione (blkid senza opzioni mostra tutte le partizioni), oppure:
ls -l /dev/disk/by-uuid/
Quest’ultimo in generale è più comodo perché non è necessario essere root e ls lo troviamo su qualsiasi distribuzione.
Aumentare lo spazio di /tmp
Con il nostro editor preferito andiamo ad aggiungere una riga in /etc/fstab simile a questa:
tmpfs /tmp tmpfs nodev,nosuid,size=4G 0 0
modificandola secondo le necessità, ad esempio aumentando o diminuendo lo spazio a disposizione, qui impostato a 4G.
Montare al boot una periferica USB in una cartella univoca con UUID
Per essere sicuri che all’avvio la nostra macchina monti un dispositivo USB sempre nello stesso mount point ci sono varie strade, ma in questo caso prendiamo in esame un metodo che utilizza UUID. Prima di tutto colleghiamo la nostra periferica al sistema e cerchiamo l’UUID della sua partizione. Consultare il paragrafo Configurazioni_di_un_sistema_Debian#Trovare l’UUID di una partizione. Supponiamo che il nostro UUID sia:
94b8d78c-5e22-47a1-8d5b-7af79c7bfa30
a questo punto possiamo inserire in fstab una riga del tipo:
UUID=94b8d78c-5e22-47a1-8d5b-7af79c7bfa30 /media/disco ext3 users,rw,noatime,noauto 0 0
dove /media/disco andrà sostituito con il percorso della cartella in cui vogliamo montare la nostra partizione, ext3 è il tipo di filesystem, users,rw,noatime,noauto e 0 0 sono opzioni particolari e per conoscere quelle migliori per il proprio caso si rimanda alla pagina di fstab. A questo punto incontriamo un problema: se la partizione inserita, come nell’esempio, è situata su un disco USB il nostro sistema all’avvio non riuscirà a montarla automaticamente perché quando andrà a leggere il file fstab non avrà ancora caricato i moduli USB e per lui il disco esterno non sarà ancora riconoscibile. Ovviamo a questo problema inserendo questa riga nel file /etc/rc.local prima di exit 0:
mount /media/disco
Salviamo, riavviamo e verifichiamo che il nostro disco venga montato.
Problema con più schede audio: impostare quella di default
Prove effettuate con Debian Weezy.
Una configurazione molto frequente è di avere due o più periferiche audio sullo stesso computer, ad esempio quando aggiungiamo una scheda PCI più performante alla nostra scheda audio integrata o quando, come nel caso descritto, installiamo una scheda video con modulo video/audio HDMI. In questi casi facilmente il sistema caricherà in modo arbitrario e alternato una scheda al posto di un’altra: in questo modo non avremo una scheda predefinita precisa e il risultato sarà che l’uscita audio cambierà continuamente.
Il sistema più veloce nel caso volessimo disabilitare la scheda audio integrata è di disattivarla nel bios ma se vogliamo mantenerla attiva, o nel caso della scheda HDMI bisogna procedere in modo diverso.
Nel nostro caso abbiamo due schede che possiamo trovare con il comando:
cat /proc/asound/cards
0 [ICH6 ]: ICH4 - Intel ICH6 Intel ICH6 with AD1981B at irq 21 1 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xf4200000 irq 17
che a seconda del riavvio vengono invertite:
0 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xf4200000 irq 17 1 [ICH6 ]: ICH4 - Intel ICH6 Intel ICH6 with AD1981B at irq 21
Per fare in modo di assegnare lo stesso indirizzo alla stessa scheda dobbiamo capire quali moduli audio vengono caricati all’avvio. Digitiamo:
lsmod | grep "snd"
nel caso presentato abbiamo:
snd_intel8x0 24218 0 snd_hda_intel 20019 0 snd_ac97_codec 99186 1 snd_intel8x0 snd_hda_codec 54244 1 snd_hda_intel ac97_bus 1086 1 snd_ac97_codec snd_hwdep 5380 1 snd_hda_codec snd_pcm 60503 4 snd_intel8x0,snd_hda_intel,snd_ac97_codec,snd_hda_codec snd_seq 42881 0 snd_timer 15582 2 snd_pcm,snd_seq snd_seq_device 4493 1 snd_seq snd 46446 9 snd_intel8x0,snd_hda_intel,snd_ac97_codec,snd_hda_codec,snd_hwdep,snd_pcm,snd_seq,snd_timer,snd_seq_device soundcore 4598 1 snd snd_page_alloc 6249 3 snd_intel8x0,snd_hda_intel,snd_pcm
Forse questa ricerca non è semplicissima ma aiutandoci con il comando lspci e conoscendo il nostro hardware possiamo arrivare a distinguere i moduli che vogliamo configurare:
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03) 00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03) 01:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 8400GS] (rev a2) 01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)
Confrontando i dati vediamo che è il modulo snd_intel8x0 che viene caricato per l’audio integrato e il modulo snd_hda_intel per il controller audio HD.
Se volessimo disabilitare definitivamente il modulo per l’audio HD basterebbe, con permessi root, scrivere nel file /etc/modprobe.d/alsa-base-blacklist.conf:
blacklist snd_hda_intel
e al riavvio successivo il modulo audio HD non verrebbe caricato.
Se invece vogliamo definire un ordine preciso di avvio scriviamo nel file /etc/modprobe.d/sound (crearlo se non esiste) quanto segue:
options snd_intel8x0 index=0 options snd_hda_intel index=1
In questo caso la scheda integrata verrà caricata come prima scheda (0) e la scheda HD come seconda (1).
Ogni utente poi può scegliere quali delle due caricare come scheda audio predefinita, basta creare nella home questo file:
vim ~/.asoundrc
e se vogliamo usare la scheda audio integrata inseriamo:
defaults.ctl.card 0 defaults.pcm.card 0
Se questa è la configurazione ottimale per il sistema possiamo copiare il file in /etc/skel così che ad ogni nuovo utente creato venga aggiunto il file in maniera automatica.
Ripristinare la configurazione originale del pannello di Gnome
Può capitare di voler ripristinare lo stato originale del pannello di Gnome. In questo caso utilizzando il nostro utente eliminiamo la cartella:
rm -fr ~/.gconf/apps/panel
e riavviamo la sessione grafica.
Password persa
Se abbiamo perso la password del nostro utente o dell’utente root per poterla resettare basta avere accesso al disco, ad esempio con una distribuzione live, editare il file /etc/passwd e nella riga che contiene il nostro nome togliere la x, come in questo caso:
alle:x:1000:1000:Alle,,,:/home/alle:/bin/bash
la riga diventerà:
alle::1000:1000:Alle,,,:/home/alle:/bin/bash
La “x” significa che la password cifrata è in “/etc/shadow”, togliendola il sistema non andrà a leggere quel file e l’utente potrà accedere senza password.
Esempio tratto da: http://www.debian.org/doc/manuals/debian-reference/ch04.it.html#_creating_encrypted_password
Forzare il controllo del filesystem all’avvio
Per fare in modo che all’avvio successivo il sistema controlli il file system basta aggiungere il file forcefsck in questo modo:
touch /forcefsck
Al successivo avvio dopo il controllo il file verrà automaticamente eliminato. Altro metodo è utilizzare shutdown con queste opzioni:
shutdown -rF now
Configurazioni di SSH server
Per installare il servizio ssh basta lanciare da riga di comando con privilegi root:
aptitude install openssh-server
A questo punto se vogliamo rendere più sicuro il nostro server bastano piccoli accorgimenti. Editiamo il file /etc/ssh/sshd_config modificando le seguenti linee:
PermitRootLogin no
La riga sopra non permette all’utente root di collegarsi utilizzando ssh: è comodo perché obbliga l’utilizzo di un altro utente, questo significa che bisogna conoscere il nome di un user valido; successivamente è poi possibile diventare root.
Port 2222
Buona norma è modificare la porta di default di ssh: sulla porta 22 spesso avvengono effettuati sugli IP pubblici svariati tentativi di connessioni utilizzando metodi brute force. Utilizzare una porta che non viene già utilizzata da altri servizi: è possibile anche consultare il file /etc/services.
Altra operazione quasi fondamentale, se è possibile, è quella di filtrare gli accessi a seconda degli IP. Basterà inserire in /etc/hosts.deny una riga simile a questa:
sshd: ALL EXCEPT 10.0.0.* 192.168.1.14
Nello specifico viene negato l’accesso al servizio ssh a tutti, tranne alla rete 10.0.0.0/24 e all’IP 192.168.1.14.
Dopo le modifiche è necessario riavviare il servizio:
service ssh restart
Visualizzare Man con Vim
Se vogliamo forzare il comando man ad utilizzare vim per mostrare la documentazione dei pacchetti possiamo aggiungere al file ~/.bashrc questa riga:
export MANPAGER='bash -c "vim -MRn -c \"set ft=man nomod nolist nospell nonu\" -c \"nm q :qa!<CR>\" -c \"nm <end> G\" -c \"nm <home> gg\"</dev/tty <(col -b)"'
Debian su iMac G5 con Xfce
Di seguito alcuni appunti per installare Debain Wheezy su iMac G5 scaricabile da qui.
Installazione
Come prima cosa dopo aver masterizzato l’immagine ISO di Wheezy, inseriamo il disco nel computer e avviamo utilizzando il tasto c per avviare da CD. L’installer grafico potrebbe non essere presente, niente paura, ci viene chiesto di scegliere tra due opzioni:
- install > per i 64 bit
- install32 > per i 32 bit
Scegliamo ad esempio il 64 e per installare direttamente Xfce digitiamo:
install desktop=xfce
Successivamente procediamo come se fosse una normalissima installazione personalizzandola come vogliamo, ma facendo attenzione a non deselezionare l’opzione “ambiente desktop Debian” dalla scelta dei pacchetti da installare (richiamabile poi con il comando tasksel).
Xorg
Se si riscontrano problemi con l’interfaccia grafica potrebbe essere un difetto di Xorg: apriamo un terminale e verifichiamo con il comando top, se il processo che appartiene a Xorg è praticamente sempre a 99% di CPU allora dobbiamo fare come segue. Con utente root fermiamo l’interfaccia grafica:
service lightdm stop
oppure se abbiamo installato un altro desktop manager sostituiamo il servizio. nel caso di Slim sarà:
service slim stop
A questo punto creiamo il file di xorg.conf e lo spostiamo all’interno di /etc/X11:
Xorg -configure cp -p /etc/X11/xorg.conf /etc/X11/xorg.conf.bck (questo passo è necessario solo se è già presente il file xorg.conf) mv /root/xorg.conf.new /etc/X11/xorg.conf
Editiamo il file decommentando la riga che ospita l’opzione per il DRI e aggiungendo il valore False:
Option "DRI" "False"
A questo punto riavviamo l’interfaccia grafica:
service lightdm start
oppure:
service slim start
Altri problemi grafici
Su un PowerMac G5 con scheda:
NVIDIA Corporation NV34 [GeForce FX 5200 Ultra]
sono stati riscontrati fastidiosi difetti grafici: avviando apllicazioni a schermo intero alcune parti non vengono visualizzate (righe vuote nel browser e nel terminale, immagini non complete nel visualizzatore, ecc). Ecco un esempio:
Le soluzioni è di decommentare, all’interno di /etc/X11/xorg.conf, la riga:
Option "NoAccel"
A questo punto riavviamo il servizio e proviamo. L’opzione però renderà meno fluido il movimento delle finestre.
Pannello Xfce
Al primo avvio noteremo che il desktop è abbastanza scarno e il pannello è di dimensioni ridotte, vuoto e inserito in mezzo alla scrivania. Col tasto destro possiamo editarlo, ingrandirlo, aggiungere i pulsanti che vogliamo e posizionarlo dove più ci fa comodo. Se vogliamo evitare questa operazione ecco a disposizione il file xfce4.tar.gz: basta scompattarlo e inserire la cartella xfce4 ottenuta con tutto il suo contenuto all’interno della cartella .config che troviamo all’interno della home dell’utente. Si avrà un desktop tipo questo:
Se vogliamo che un’impostazione, come questa del pannello, venga caricata di default per tutti i nuovo utenti basta mettere il file o la cartella dentro a /etc/skel ricostruendo il percorso utente. Ad esempio in questo caso la cartella delle impostazioni di Xfce4 è stata inserita in /etc/skel/.config/.
Wireless
Se come scheda wifi abbiamo questa (riconoscibile con il comando lspci):
Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
allora è necessario inserire il firmware proprietario. Se non l’abbiamo fatto prima, è necessario aggiungere alla fine delle line deb nel file /etc/apt/sources.list le parole contrib e non-free (quest’ultima permette l’installazione di pacchetti proprietari). Alla fine avremo righe simili a queste:
deb http://mi.mirror.garr.it/mirrors/debian/ wheezy main contrib non-free deb-src http://mi.mirror.garr.it/mirrors/debian/ wheezy main deb http://security.debian.org/ wheezy/updates main contrib non-free deb-src http://security.debian.org/ wheezy/updates main
Aggiorniamo la lista dei pacchetti con:
aptitude update
e installiamo il firmware:
aptitude install firmware-b43-installer
A questo punto aggiungiamo il caricamento del modulo all’avvio del sistema editando il file /etc/rc.local (aggiungere prima di exit 0):
modprobe b43 exit 0
Riavviamo e controlliamo il corretto funzionamento. Se preferiamo che all’avvio il wifi rimanga non attivo ma disponibile ad un’eventuale attivazione possiamo usare il comando rfkill. Per prima cosa installiamolo:
aptitude install rfkill
A questo punto editiamo nuovamente il file /etc/rc.local che diventerà:
rfkill block all modprobe b43 exit 0
rfkill si occupa di “accendere” o “spegnere” le interfacce senza fili come wifi o bluetooth: nell’esempio sopra blocca tutto (all) ma potremmo anche sostituire all con wifi o bluetooth. Ora per riattivare il wifi ci basterà andare sul nostro pannello, cliccare con il tasto destro sul gestore della rete e spuntare “Abilita rete senza fili”.
Audio
Se l’audio non funziona controlliamo che la scheda audio sia rilevata:
cat /proc/asound/cards
Se riceviamo:
--- no soundcards ---
allora qualcosa non va. Apriamo il file /etc/modprobe.d/blacklist.local.conf e decommentiamo queste linee con blacklist:
blacklist snd-aoa-codec-tas blacklist snd-aoa-fabric-layout blacklist snd-aoa-i2sbus blacklist snd-aoa-soundbus blacklist snd-aoa
Riavviamo e rilanciamo:
cat /proc/asound/cards
E vediamo se la scheda viene caricata:
0 [SoundByLayout ]: AppleOnbdAudio - SoundByLayout SoundByLayout