Manage your Blog

Create your blog now! Easy and Free

Linuxlandia
Diffondere la cultura del software libero è il nostro obiettivo. Avere un sistema operativo in grado di fare tutto spendendo nulla è possibile. Oggi più che mai ne abbiamo gli strumenti. Non più scuse. Oggi dipende tutto dalla nostra volontà.

Category: Tips & Tricks

07/06/2008 GMT 1

Qual è la differenza tra shell interattiva e non interattiva

linuxlandia @ 18:31

feed RSSIn tutti i sistemi Unix, GNU/Linux compreso, esistono due tipi di shell: interattiva e non interattiva.

Nel primo caso si tratta di una shell in cui l'utente interagisce con essa: questo è quello che accade, ad esempio, quando eseguiamo qualche comando.

Al contrario, quella non interattiva non richiede interventi da parte dell'utente: questo è il caso, ad esempio, dell'esecuzione di uno script.

 


Ma non finisce qui. Infatti, la shell interattiva si divide a sua volta in shell di login e shell normale. La prima è quella che si ottiene quando si effettua il login, mentre l'altra è quella che, ad esempio, avviamo in un secondo momento per eseguire qualche programma. Ad esempio, premendo le combinazioni di tasti da Ctrl+Alt+ F1... Ctrl+Alt+F6 si accede ad altrettante shell di login, ovviamente, solo dopo essersi autenticati con nome utente e password.

Come si gestiscono le variabili d'ambiente?
Le variabili d'ambiente (environment variable), dette anche variabili di sistema, sono delle stringhe di testo contenenti indicazioni sulla configurazione del sistema, alle quali i programmi, ma anche lo stesso sistema operativo, si appoggiano per svolgere le loro funzioni. All'interno dell'ambiente Unix, quindi GNU/Linux, sono identificate da un nome, preceduto dal simbolo $.

Un esempio di variabile di ambiente è $PATH, la quale contiene i percorsi (cioè le directory a partire da quella radice) dove sono posizionati gli eseguibili presenti nel sistema. Il sistema operativo contiene diverse variabili d'ambiente predefinite, ma è sempre possibile modificarle o crearne altre. Per visualizzare tutte le variabili d'ambiente presenti nel sistema bisogna utilizzare il comando printenv oppure set.

Per ottenere il valore di una variabile in particolare basta eseguire il comando echo seguito dal nome della variabile, ad esempio: echo $PATH. Nel caso in cui, invece, è necessario crearne una nuova, il comando diventa export NOME_VARIABILE=valore. Ecco un esempio di utilizzo di export: export HOSTNAME="`cat /etc/hostname`".

In questo caso, la variabile d'ambiente $HOSTNAME sarà uguale al nome della macchina (hostname), valore ottenuto, nell'esempio, dal comando cat /etc/hostname. Ovviamente, il valore può essere espresso mediante un comando, come in questo caso (ricordate però, di racchiuderlo sempre tra due simboli `), da nomi, percorsi di directory, ecc.

A cosa serve la directory /etc/skel?
Ogni volta che si crea un nuovo utente, automaticamente viene creata, tra le altre cose, la sua directory personale, la quale può contenere cartelle e file predefiniti. La directory /etc/skel serve proprio a stabilire questo contenuto “extra” aggiunto di default. In pratica basta sistemare in questa particolare cartella tutto quello che si vuole aggiungere alla directory di ogni nuovo utente creato.

Nella directory /boot è presente il file initrd-x.x.xx.img. A cosa serve?
Il file initrd, o initial ramdisk (in italiano disco RAM iniziale) è un particolare tipo di file system, in genere contenuto all'interno di un file immagine .img, montato dal kernel Linux in RAM come RAM disk (ecco perché initial ramdisk).

Tale file viene fornito al kernel dal bootloader come sistema minimale per svolgere alcune funzioni fondamentali prima del caricamento del file system vero e proprio. Sostanzialmente, il file initrd contiene al suo interno i moduli necessari al supporto e all'attivazione del file system radice, più gli script necessari per caricarli.

Concluse queste operazioni di base, il disco RAM iniziale passa il controllo al file system principale. Ovviamente, è anche possibile fare a meno del file initrd, purché i moduli necessari al caricamento iniziale del sistema siano stati compilati direttamente nel kernel. Il vantaggio che ne consegue è ovvio.

La presenza del file initrd permette alle distribuzioni GNU/Linux di usare un kernel precompilato con tutte le funzionalità attive come moduli, quindi molto più leggero. È anche possibile creare un file initrd utilizzando il comando mkinitrd integrato nel pacchetto initrd-tools.

Nelle nuove distribuzioni questi tool sono stati sostituiti da initramfs e iniramfs-tools. Infine, nelle distribuzioni Debian GNU/Linux e derivate è presente il comando mkinitramfs-kpkg che automatizza la creazione di file initrd.

 

sky8_728x90.gif

 

 

Ultimi post pubblicati

RSTP (Raccomandati Se Ti Piacciono)


Come si installano i pacchetti TGZ per Slackware e le distribuzioni derivate da essa

linuxlandia @ 08:24

feed RSSCome si installano i pacchetti TGZ per Slackware e le distribuzioni derivate da essa?
Lo script explodepkg serve per estrarre gli archivi TGZ nella directory corrente.

explodepkg nome_pacchetto.tgz

installpkg gestisce l'installazione dei pacchetti Slackware:

installpkg [opzioni] archivio_slackware nome_pacchetto.tgz

sky8_468x60.gif

Le opzioni che è possibile passare sono:

-warn, non effettua l' installazione ma mostra i file e le directory che verrebbero creati.

-r , installa i pacchetti contenuti a partire dalla directory corrente

-m, serve per generare un archivio tar.gz ma con estensione .tgz costituito dal contenuto della directory corrente.

Per creare archivi TGZ secondo lo standard dei pacc

slackware-screenshot.jpg

hetti applicativi Slackware si utilizza

makepkg pacchetto_applicativo

Lo script removepkg si occupa della disinstallazione dei pacchetti

removepkg nome_pacchetto.tgz

Il tool di installazione standard utilizzato dalla distribuzione Slackware è

pkgtool

Il comando upgradepkg aggiorna un pacchetto, disinstallando prima il pacchetto già installato e inserendo dopo quello nuovo.

upgradepkg nome_pacchetto_vecchio [%nome_pacchetto_nuovo]

mondadori_cambia_faccia728x90.gif

Come si disinstalla GNU/Linux?
Per prima cosa è necessario eliminare le partizioni usate dal sistema operativo. Il metodo migliore consiste nell'utilizzare una delle tante distribuzioni “live” (Knoppix, SimplyMEPIS, Kanotix, ecc) ed eseguire i programma di partizionamento grafico QtParted. Dopo aver eliminato le partizioni è necessario eliminare il boot loader LILO o Grub e ripristinare il settore di avvio.
Da un sistema DOS Windows si può eseguire

fdisk /MBR

oppure, da un disco di ripristino di Windows o da una live Linux

fdisk /MBRo ancora sys c:

Direttamente da Linux si può eseguire il comando

lilo -U

È possibile ripristinare l'MBR utilizzando il tool dd e caricare il file di backup creato da LILO al momento dell'installazione

dd if=boot.xx of =/dev/hda bs=446 count=1

/dev/hda è il disco installato come master sul primo canale IDE, mentre boot.xx è il file da ripristinare, con xx che indica la versione di tale file. Da Windows XP in poi la procedura è diversa. Bisogna avviare il PC con il CD/DVD di Windows, premere F8 per accedere alla console di ripristino e poi usare i comandi fixboot o fixmbr. Il primo ripristina il settore di avvio della partizione di Windows XP, mentre il secondo si occupa dell'MBR (Master Boot Record), il settore di avvio del disco, reinstallando il bootloader del sistema Microsoft.

fonte: Linuxpedia & Webmin

subito728x90.gif

Come si modificano i permessi dei file?

chmod a+x file

assegna il permesso di esecuzione del file a tutti gli utenti del sistema;

chmod u+x file

assegna il permesso di esecuzione solo al proprietario del file;

chmod g+x file

assegna il permesso di esecuzione al gruppo;

chmod o+x file

assegna il permesso di esecuzione a tutti gli altri utenti;

Per i permessi di lettura sono valide le stesse indicazioni del permesso di esecuzione, ma in questo caso si sostituisce x con r.

chmod a+r file

permesso di lettura a tutti gli utenti del sistema;

chmod u+r file

permesso di lettura esclusivamente solo al proprietario del file;

chmod g+r file

permesso di lettura al gruppo;

chmod o+r file

permesso di lettura agli altri utenti;

Per il permesso di scrittura si sostituisce x o r con w.

chmod a+w file

permesso di scrittura a tutti gli utenti del sistema;

chmod u+w file

permesso di scrittura solo al proprietario del file;

chmod g+w file

permesso di scrittura al gruppo;

chmod o+w file

permesso di scrittura agli altri utenti.

Ovviamente è sempre possibile combinare i diversi tipi di permessi.

728x90_mol_bilancia.gif

È possibile avviare Linux utilizzando il boot manager di Windows XP (NT, 2000)?

Durante l'installazione di Linux è necessario installare il boot loader LILO sulla partizion edi avvio del sistema e non sul MBR, supponiamo per comodità
/dev/hda3). Successivamente è necessario creare il file bootsect.lin che contiene l'immagine del settore di avvio della partizione Linux:

dd if=/dev/hd3 of= /tmp/bootsect.lin bs=512 count=1

Il file bootsect.lin va copiato nella directory C: di Windows XP e va modificato il file boot.ini nel modo seguente:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
c:\bootsect.lin="Linux"

Per modificare il file clic con il destro su Risorse del computer e successivamente dalla scheda Avanzate selezionate Avvio e ripristino/Impostazioni/Modifica. È anche possibile modificare il file boot.ini direttamente in un qualsiasi editor di testi. Se decidete di modificare la configurazione dI LILO è necessario rigenerare il file immagine bootsect.lin e copiarlo nuovamente nella partizione di Windows.

Come faccio ad ottenere i privilegi di root senza riavviare la sessione?
Durante l'installazione del sistema, generalmente viene creato anche un utente comune ed consigliabile utilizzare il sistema sempre effettuando il login con questo utente. Quando è necessario effettuare operazioni che richiedono i privilegi di root, basta avviare la shell ed eseguire il comando su (switch user) seguito dalla password di amministratore.

trovolavoro_728x90.gif

Per caricare la shell con l'ambiente root completo basta aggiungere a su il simbolo -. Alcuni sistemi prevedono un solo utente con privilegi più estesi, ma per accedere alla shell di root vera e propria, è necessario utilizzare il comando sudo -s e inserire la password dello stesso utente comune con cui si effettuato il login.

17/05/2008 GMT 1

Posso assegnare a tutti gli utenti il permesso di montare un dispositivo?

linuxlandia @ 08:24

feed RSSGli hard disk, le singole partizioni e altri dispositivi di memorizzazione come lettori CD e DVD possono essere montati e smontati, cioè resi accessibili, anche all'avvio, tenendo conto delle impostazioni presenti nel file di configurazione /etc/fstab.

Prima dell'installazione

È qui, infatti, che si stabilisce l'associazione tra dispositivo (ad esempio /dev/hda1, /dev/hdb2, /dev/hdc1, ecc.) e punto di mount all'interno del file system, cioè la directory dove il contenuto di un hard disk o di una partizione diventerà disponibile.

sky8_468x60.gif

Inoltre, sempre attraverso /etc/fstab è possibile stabilisce il tipo di file system utilizzato per la formattazione del supporto (Ext3, ReiserFS, Xfs, ISO9660...) e i permessi di accesso: possibilità di montare e smontare il disco, anche in automatico, accesso in lettura e scrittura e molte altre opzioni.

kernel.png È chiaro, quindi, che per garantire a tutti gli utenti la possibilità di montare e smontare un supporto è necessario intervenire su questo file.

In particolare per questo tipo di operazioni bisogna utilizzare le opzioni user e users.

Nel primo caso, si concede a tutti il permesso di montare il supporto ma non di smontarlo, mentre la seconda direttiva attiva entrambi i permessi.

Supponiamo di voler montare all'avvio la terza partizione del primo disco, identificata dal file di dispositivo /dev/hda3, e permettere a tutti gli utenti di montarla e smontarla successivamente. In questo caso, il file /etc/fstab, con riferimento alla riga relativa a dev/hda3, va modificato nel modo seguente:

/dev/hda3 /mnt/backup ext3 ro,users,oauto 0 0

mondadori_cambia_faccia728x90.gif

In dettaglio, /dev/hda3 indica la partizione, /mnt/backup il punto di mount, ext3 il tipo di file system utilizzato in questo caso, ro (read only) l'accesso in lettura, users la possibilità per tutti gli utenti di montare e smontare la partizione e auto il montaggio automatico all'avvio.

I due zeri alla fine indicano che non si tratta di una partizione di avvio e di non effettuare il controllo durante il boot. La presenza di un numero 1 indica che si tratta di una partizione di avvio e che bisogna eseguire il controllo. In quest'ultimo caso, un 2 al posto dell'1 fa in modo che questo file system venga controllato solo dopo quello principale.

Altre opzioni di mount importanti sono nouser, che vieta agli utenti la possibilità di montare e smontare i dispositivi, noauto, per impedire il montaggio al boot. I comandi per montare e smontare una partizione o un altro dispositivo sono mount e umount, ma se /etc/fstab è configurato correttamente, è possibile farlo direttamente dal file manager o da altri programmi. Il loro uso è comunque molto semplice:

mount -t ext3 /dev/hda3 /mnt/backup
umount /mnt/backup

Il comando mount eseguito senza argomenti mostra tutti i file system montati in quel momento, elencati anche nel file /etc/mtab.

A cosa servono le directory /dev e /proc? È possibile cancellarle?
Assolutamente no! La directory /dev contiene i file, meglio noti come file di dispositivo, che consentono ai programmi, quindi a noi, di interagire con l'hardware: in pratica, una vera e propria interfaccia tra il kernel, le applicazioni e i componenti del PC. La directory /proc è il punto di mount per il file system virtuale omonimo, al cui interno sono presenti file creati direttamente dal kernel. Tali file e directory sono necessari ai programmi che hanno bisogno di accedere alle informazioni sul sistema.

Ho sentito parlare di demone? Di cosa si tratta?
Il termine daemon, italianizzato in demone, è utilizzato per indicare i processi (spesso si tratta di software server) eseguiti automaticamente all'avvio del computer (boot). Questi programmi restano attivi in background durante il normale utilizzo del PC in attesa di svolgere determinate funzioni a seguito di una richiesta. Ad esempio, sono demoni smbd (il server Samba), httpd (Apache), mysqld (MySQL) e syslogd (il sistema di logging). Spesso per indicare i demoni è utilizzato il termine servizio, proprio per sottolineare la loro caratteristica di software server.

lovelove468x60.jpg

Cosa contiene il file /etc/shadow?
Se presente, il file /etc/shadow indica che la distribuzione utilizza il sistema delle shadow password: una tecnica utilizzata per proteggere le password degli utenti. In pratica, tutte le parole chiave cifrate vengono tolte dal file /etc/passwd (responsabile della gestione degli utenti e, quindi, dei loro dati di accesso) e sostituite da una x, dopodiché vengono scritte in /etc/shadow sempre in modo cifrato (ecco perché shadow, termine che significa oscurare).

Oltre alle password, questo file, nei campi separati dal simbolo : (due punti), contiene il nome utente e informazioni sulla durata delle parole chiave:scadenza della password, l'ultima volta in cui è stata modificata, giorni di avviso prima della scadenza, ecc.

Ma perché è necessario questo file? Poiché il file /etc/passwd fornisce numerose informazioni indispensabili al funzionamento del sistema, non è possibile limitare oltre un certo “livello” gli accessi in lettura, cosa che rappresenta un pericolo per la sicurezza delle password. Al contrario, “isolando” le parole chiave in un file separato è possibile assegnare a questo permessi di accesso molto più restrittivi ottenendo maggiore sicurezza.

Inoltre, se il campo password di /etc/passwd contiene una x, significa che la password è presente in /etc/shadow, se contiene un simbolo * (asterisco), la password è nulla e l'utente disabilitato.

Esiste un programma per convertire i pacchetti in altri formati?
Certo che esiste, si chiama alien ed è scaricabile all'indirizzo http://kitenet.net/~joey/code/alien. Questo programma consente di convertire tra loro pacchetti software disponibili nei formati .rpm, .deb. .tgz (Slackware) e, l'oramai inutilizzato, .slp (Stampede).

sorgenia728x90_bk.jpg

L'uso di alien è semplicissimo. Ad esempio per convertire un pacchetto .rpm in .deb il comando da eseguire è:

alien --to-deb pacchetto.rpm

Mentre per quanto riguarda la conversione da .rpm a .deb, bisogna eseguire quanto segue:

alien --to-rpm pacchetto.deb

Purtroppo, questo non significa che il pacchetto convertito sia sicuramente installabile.

Molto, infatti, dipende dalla configurazione richiesta dal sistema sul quale si cerca di installarlo: spesso le distribuzioni coinvolte possono essere alquanto differenti. Pensate, ad esempio a Ubuntu (.deb) e Fedora (.rpm). Per ulteriori informazioni su questo particolare software è possibile consultare le relative pagine di manuale con man alien.

todomondo_papagallo_pirata728x90.gif


Ho cancellato un utente. Come faccio ad eliminare tutti i suoi file?
Cancellare un utente dal sistema, purtroppo, non significa eliminare anche tutti i file a lui appartenenti. Comandi come userdel nomeutente o deluser nomeutente, non eliminano proprio tutto.

Lo stesso effetto si ottiene utilizzando applicazioni grafiche come KUser, oppure, ancora, cancellando manualmente la cartella /home/nomeutente e le voci presenti nei file /etc/passwd, /etc/shadow e /etc/group. Ma, anche in questo caso, qualche cosa resta sempre. Fortunatamente esiste un rimedio. Per prima cosa controlliamo quali sono i file appartenenti all'utente che abbiamo eliminato e che, quindi, saranno cancellati, utilizando il comando seguente:

find / -user uid | less

Questo serve per verificare che non si elimino per errore file importanti per il funzionamento del sistema o di qualche applicazione in particolare. A questo punto, possiamo cancellarli con:

find / -user nomeutente -exec rm {} \;

o, in alternativa

find / -uid `id -u nomeutente` | xargs rm -f

Per scrivere il simbolo “ ` “ presente in quest'ultimo comando, bisogna utilizzare la combinazione di tasti Alt Gr + ' (apice).

fonte: Linuxpedia & Webmin

subito728x90.gif

 

Ultimi post pubblicati

RSTP (Raccomandati Se Ti Piacciono)

Archive | Create your blog now! Easy and Free