L'approccio a Linux Slackware

L'approccio a Linux Slackware

Una guida introduttiva alla distribuzione linux più minimale e più longeva di sempre: Slackware.

Conosciamo Slackware

Processo di avviamento di Linux Slackware

Linux Slackware ha una gestione dei moduli di avvio tutta particolare.

Il primo script che viene eseguito dopo il kernel, è init. Questo legge il file /etc/inittab per scegliere la modalità di avvio.

Subito dopo esegue lo script etc/rc.d/rc.S per preparare il sistema alla selezione del runlevel desiderato, abilitando la memoria virtuale, montando il filesytem, inizializzando le periferiche e caricando gli altri script.

Gli altri script a venire eseguiti, sono tutti presenti nella cartella /etc/rc.d/. I principali sono:

  • rc.modules: questo script è incaricato di caricare ed inizializzare i moduli necesari per il funzionamento del sistema e delle perifercihe.
  • rc.pcmcia: script utile soprattutto per gli utenti di pc portatili, infatti serve per configurare le periferiche PCMCIA
  • rc.serial script di configurazione per le porte seriali.

Finita l'inizializzazione del sistema, si procede con la selezione del runlevel selezionato.

Il compito dei runlevel è quello di stabilire il modo di avvio della macchina e i servizi da lanciare di conseguenza.
Ad esempio, in base al runlevel scelto, verrà impostata la modalità di login, se ad utente singolo o multiutente, se grafico o testuale etc.

Il runlevel predefinito (multiutente testuale su Slackware) è impostato nel file /etc/inittab, ed in particolare è impostato alla linea

id:3:initdefault.

Mentre gli script specifici di ogni livello sono contenuti /etc/rc.d/rc.* ma vediamoli nel dettaglio.

  • rc.0: script per l'arresto del sistema. (Il file che gestice il riavvio e lo spegnimento è rc.6, infatti questo è solo un link a tale file)
  • rc.4 script per l'avvio con impostazioni multiutente ma in ambiente grafico. Il login verrà effettuato all'interno del server X predefinito.
  • rc.6 come già detto questo + il file che gestice il riavvio del sistema
  • rc.K avvio in modalità utente singolo
  • rc.M avvio predefinito in Slackware Linux. Modalità multiutente con login in modalità testuale.

I runlevel rc.4 e rc.M richiamano e lanciano altri script per l'inizializzazione della rete, quali:

  • rc.inet1 questo file è il responsabile della configurazione di rete, infatti è stato creato con netconfig.
  • rc.inet2 Viene richiamato da rc.inet1 per lanciare i servizi di rete basilari.
  • rc.atalk script per l'avvio dei servizi AppleTalk
  • rc.httpd script per la gestione dell'avvio del web server Apache
  • rc.samba script di avvio del server di interfacciamento fra computer linux e windows
  • rc.news avvio del server news

Come avrete potuto notare, nella directory /etc/rc.d/ ci sono altri file oltre a quelli elencati, ad esempio:

  • rc.sysvinit cercherà ed eseguirà gli script system-v presenti nella directory rc.d. Il System V init è un sistema di gestione dei processi di avvio. Slackware invece utilizza lo stile BSD, ovvero ha uno script per ogni runlevel. Questo file è stato introdotto a partire da Slackware 7.0 Slackware per omologarsi con le altre distribuzioni che ne fanno già suo, e per le quali alcuni produttori di software proprietario creano programmi che necessitano di script system-v.
  • rc.gpm è uno script per l'esecuzione di GPM, un programma per l'utilizzo del "copia e incolla" nelle console di linux attravero il mouse.
  • rc.local è uno script (vuoto di default) che viene lanciato alla fine del processo di avvio e ti consente di far partire altri programmi utili sulla tua macchina.

Nella directory /etc/rc.d/ alcuni file non sono eseguibili (attributo x). Questo è dovuto al fatto che all'avvio vengono lanciati solo i file con permesso di esecuzione, quindi se volete che uno script non venga lanciato, basterà togliergli l'attributo di esecuzione con il comando:

chmod a-x rc.*****

Il Filesystem

Vediamo ora come è organizzato il filesystem di linux Slackware, directory per directory.

  • /bin contiene i comandi principali per l'esecuzione del sistema operativo.
  • /boot contiene i file necessari al boot loader (LILO di default)
  • /dev contiene la mappatura delle periferiche. Es. hda = periferica collegata su ide1 master, hdb = periferica collegata su ide1 slave...
  • /etc qui ci sono i file di configurazione del sistema.
  • /home la directory principale degli utenti (tranne root).
  • /lib contiene le librerie essenzili per il sistema.
  • /mnt contiene i punti di montaggio generici per le periferiche. Es: /mnt/cdrom indica il lettore CD.
  • /opt contiene i pacchetti opzionali installati da Slackware. Di solito solo KDE.
  • /proc punto di montaggio per l'interazione proc con il kernel di linux.
  • /root la directory principale per l'utente root.
  • /sbin qui sono immagazzinati i comandi di sistema eseguibili solo da root.
  • /tmp directory temporanea alla quale tutti hanno accesso sia in lettura che in scrittura.
  • /usr programmi a disposizione degli utenti.
  • /var contiene i log di sistema e tutti quei file gestiti dai processi del sistema.

Gestione utenti

Buona regola è quella di non usare l'utente root nella normale fa se di utilizzo del sistema. Per fare questo occorre creare un nuovo utente. Vediamo come fare.

Aggiungere un utente

La creazione di un nuovo utente in Slackware è molto semplice. Basta infatti eseguire il comando adduser e seguire le istruzioni a video.

Una volta create l'utente ci sono alcuni comandi utili per gestirlo, quali:

  • passwd che permette di cambiare la password
  • chfn cambia le informazioni finger
  • chsh cambia la shell dell'utente

Rimuovere un utente

Anche per la creazione è prevista una procedura facilitata attraverso l'utilizzo del comando userdel.

Quello che viene eseguito dal comando, può essere fato anche a mano, editando alcuin file. Vediamo quali:

  1. etc/passwd: rimuovere la linea corrispondete all'account da eliminare [occorre essere root]
  2. etc/shadow: rimuovere la linea corrispondete all'account da eliminare [occorre essere root]
  3. etc/group: rimuovere il nome utente da tutti i gruppi in cui è presente [occorre essere root]
  4. Elimanre la carella /home/utente
  5. Cancellare il file dello spool della mail: /var/spool/mail/utente

Disabilitare un utente

Piuttosto di rimuovere un utente, a volte è meglio disabilitarlo. Per fare questo occorre usare il comando passwd con l'opzione -l e -u.

L'opzione -l, infatti, disabilita un account cambiando la password in un valore criptato che non coincida con nessun altro.

L'opzione -u invece, serve per riabilitare l'utente, ripristinando la password iniziale.

Gestione dei pacchetti di Slackware

Slackware utilizza un sistema di installazione a pacchetti (oovero file tar-gzip compressi) che hanno estenione .tgz e ne registra le installazioni e le rimozioni, rendendone facile l'aggiornamento o la rimozione.

Per gestirli si ha a disposizione un programma interattivo, pkgtool, che permette di vedere i pacchetti installati, di aggiungerne di nuovi o di rimuoverne di vecchi; oppure si possono usare i comandi specifici, vediamoli.

Installazione pacchetti

Per installare un singolo pacchetto, si può usare il comando:

installpkg nomepacchetto.tgz

Aggiornare pacchetti

Per aggiornare i pacchetti installati, se hanno lo stesso nome si userà semplicemente:

upgradepkg nomepacchetto.tgz

Invece se il nome è diverso, allora si dovrà specificare il nome precedente e quello nuovo nel seguente modo:

upgradepkg nomevecchio%nomenuovo.tgz

Rimuovere pacchetti

Per rimuovere un pacchetto, si può usare il comando:

removepkg nomepacchetto.tgz

Configurazioni varie

Configurare la lettura di partizioni NTFS

Se installate Linux Slackware come secondo sistema operativo, ed il primo utilizza un filesystem NTFS (Windows 2000 o XP), probabilmente vorrete avere la possibilità di accedere ai dati salvati.

Anche se è disponibile una versione sperimentale per la scrittura, purtroppo per ora il supporto al filesystem NTFS garantito è di sola lettura. Vediamo come procedere per far riconoscere la nostra partizione NTFS.

Dovete editare il file /etc/fstab ed aggiungere questa riga:

/dev/hda1	/win	ntfs	auto,user,ro	0  0

dove:

  • /dev/hda1 è la partizione che corrisponde alla tua partizione NTFS.
  • /win è la cartella (che dovrai crearti) dove vuoi che venga montato il filessytem
  • ntfs è il tipo di filessytem
  • auto indica che il filesystem viene montato all'avvio
  • user indica chi ha accesso a tale partizione
  • ro indica che si può accedere in modalità di sola lettura (read-only)

Configurare lo scroll del mouse sotto X

Editare il file /etc/X11/XF86Config e spostarsi alla sezione "Core Pointer's & Input Device". Modificare il protocollo da "PS/2" a "IMPS/2" e aggiungere queste due rige:

Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "no"

Salvare il file e riavviare X.

Power down automatico

Come avrete notato, con Linux Slackware il pc non si spegne da solo. Questo è dovuto al fatto che il supporto per la gestione dell'alimentazione è disabilitato.

Ovviamente si può risolvere il problema e anche abbastanza facilmente. Basta editare il fiel /etc/rc.d/rc.modules e cercare la riga ####### APM support #######.

Sotto questa riga, troverete un comando commentato (ovvero preceduto da un cancelletto), decommentatelo eliminando il cancelletto, salvate il file.

Dal prossimo riavvio il pc, all'halt, si spegnerà da solo.

Scheda audio AC97 integrata su piastra

Per configurare la suddetta scheda audio, editate il file /etc/rc.d/rc.modules e cercate la riga che inizia con ### Sound Support ### e aggiungete queste due righe:

echo "Carico i moduli per la scheda audio AC97"
/sbin/modprobe ac97_codec
/sbin/modprobe i810_audio

Salvate il file e lanciate X per provare l'audio.

Installare schede video nVidia

Le schede video nVidia offrono sul sito dei driver specifici per ogni modello.

Basterà quindi andare sul sito e scaricarsi i driver adatti. Di solito sono 2 file da scaricare:

  • NVIDIA_GLX-****.tar.gz
  • NVIDIA_kernel-****.tar.gz

Una volta scaricati procedete con la scompattazione dei file e la successiva configurazione:

tar xzf NVIDIA_kernel-****.tar.gz
tar xzf NVIDIA_GLX-****.tar.gz
cd NVIDIA_kernel-****
make install
cd ../NVIDIA_GLX-****
make install

Fatto questo, potrete eliminare i file sorgenti e le cartelle createsi con la scompattazionee.

Il passo successivo sarà quello di far sapere al server X della presenza di un nuovo driver.

Per fare questo, editate il file /etc/X11/XF86Config e spostatevi nella sezione "Module", qui decommentate la riga "Load glx" (se è già decommentata lasciatela così).
Fatto questo, spostatevi alla sezione "Graphic Device" e modificate il driver da "nv" a "nvidia".
Salvate il file e avviate X.

Configurare Apache (mi raccomando... si pronuncia "Apaci")

Per configurare Apache secondo le proprie esigenze, bisogna editare il file /etc/apache/httpd.conf

Per le configurazioni, o vi leggete i commenti oppure andate sul sito www.apache.org e troverete sicuramente tutte le informaioni sulle direttive del fiel di configurazione.

Configurare PHP

Per modificare le impostazioni di PHP, basta editare il file php.ini presente nella directory /etc/apache

Come per Apache, i commenti all'interno del file non mancano... decommentate e commentante a piacimento; ricordatevi però che per usare PHP, dovrete tornare nel file di configurazione di Apache e decommentare la riga che richiama il file mod_php.conf presente alla fine.

Configurare MySQL

Uno dei problemi più fastidiosi per chi è abbituato a lavorare con MySQL sotto Windows, è la configurazione iniziale.

Infatti occorrono alcuni comandi non proprio elementari per un neofita. Innanzitutto dovete rinominare il file my-****.cnf in my.cnf.

Gli asterischi stanno ad indicare la versione più adatta per il vostro computer. Di solito con un pc desktop con una buona quantità di RAM, my-large.cnf è l'ideale.

Spostatevi nella cartella /var/lib, guadagnatevi i diritti di root (con il comando "su") e cambiate l'owner per la directory mysql e tutte le sotto-directory con il comando:

chown -R mysql/mysql mysql

Adesso potete lanciare il server MySQL con il comando:

/usr/bin/safe_mysql &

Se volete che MySQL parta all'avvio del computer, dovete copiare il file mysql.server in /etc/rc.d/

Sicurezza

Controllare i servizi in esecuzione

Per ottenere una prima sicurezza di base, occorre innanzitutto controllare quali porte sono aperte sul nostro computer e da quale servizio sono gestite.

Per fare questo basterà lanciare il comando:

netstat -l

che fornirà un elenco di porte aperte sul nostro sistema.

Chiudere le porte che non servono

Dopo aver visto che servizi sono in esecuzione sulla nostra macchina, procediamo con il fermare quelli che non ci servono.

I primi servizi che è consigliabile chiudere sono quelli lanciati dal super demone inetd. Per fare questo dobbiamo editare il file /etc/inetd.conf e commentare (inserire un cancelletto # all'inizio della riga) tutti i servizi che non ci servono.

Se non avete esigenze particolari, potete commentare tutto TRANNE il servizio di autenticazione AUTH.

A questo punto potete riavviare il pc e controllare di nuovo le porte rimaste aperte.

Ovviamente non è solo inet ad aprire le porte, ma anche altri demoni, che se non ci sono di nessuna utilità, possiamo tranquillamente arrestare.

Ricontrollando con netstat le porte ancora aperte, procediamo ad identificare il servizio che le usa. PEr fare questo si usa il comando fuser, vediamo:

fuser -v porta/protocollo
es:
	fuser -v 22/tcp
	22/tcp root 23424 ... sshd

Come potrete immaginare, sshd è il nome del processo che ha aperto la porta 22, mentre 23424 è l'identificatore del processo (pid) che ci permette di rintracciare il processo.

Se vogliamo arrestare il demone sshd dovremmo eseguire il seguente comando:

kill -9 23424

Così facendo, ovviamente, arrestate il servizio solo fino al prossimo riavvio. Se volete che tale demone non venga più eseguito, dovrete andarlo a ricercare nei file di configurazione nella cartella etc/rc.d/.

Ultima modifica: sabato 10 ottobre 2020

Ancora nessun commento presente

Che ne dici di essere il primo?

Aggiungi il tuo commento

Iscriviti alla mia newsletter

Resterai informato sugli ultimi post, appena verranno pubblicati